Rumah >alat pembangunan >VSCode >Bagaimana untuk mengkonfigurasi persekitaran verilog dalam VSCode? Petua kod, instantiasi automatik, pemformatan perkongsian pemalam

Bagaimana untuk mengkonfigurasi persekitaran verilog dalam VSCode? Petua kod, instantiasi automatik, pemformatan perkongsian pemalam

青灯夜游
青灯夜游ke hadapan
2022-11-28 20:19:444857semak imbas

VSCodeBagaimana untuk mengkonfigurasi persekitaran verilog? Artikel berikut mengesyorkan tiga pemalam untuk semua orang membenarkan VSCode menulis verilog dengan lancar Ketiga-tiga pemalam itu boleh merealisasikan gesaan kod, instantiasi automatik dan pemformatan.

Bagaimana untuk mengkonfigurasi persekitaran verilog dalam VSCode? Petua kod, instantiasi automatik, pemformatan perkongsian pemalam

[Pembelajaran yang disyorkan: Tutorial vskod, Video pengaturcaraan]

Verilog-HDL/ SystemVerilog/Bluespec SystemVerilog



Fungsi yang tersedia:

  • Penyertaan sintaks
  • Auto instantiasi
  • Kod gesaan dan lompatan
  • Auto selesai

Konfigurasi pemalam

Seperti yang diterangkan pada halaman alu-aluan pemalam Verilog HDL/SystemVerilog, fungsi Ctags disokong:

Bagaimana untuk mengkonfigurasi persekitaran verilog dalam VSCode? Petua kod, instantiasi automatik, pemformatan perkongsian pemalam

Langkah konfigurasi:

  • Muat turun versi terkini ctags, sesetengah fungsi versi lama tidak cukup lengkap; Windows boleh memilih versi x64;

    Tukar ctags.exe Tetapkan laluan kepada pembolehubah persekitaran sistem; > Mulakan semula VSCode;
  • Anda boleh memilih penyusun berbeza

  • termasuk:

iverilog

xvlog(vivado)

modelsim

Paparan fungsi
  • Sokongan verilog, SV dan penyerlahan sintaks lain.

anjakan ctrl p input verilog, anda boleh terus instantiate modul secara automatik. Letakkan tetikus pada isyarat dan kenyataan akan dipaparkan dalam kotak terapung. Ctrl klik kiri dan klik pada nama isyarat untuk melompat ke pengisytiharan secara automatik. Letakkan kursor pada isyarat, klik kanan dan pilih Lihat Definisi (kekunci pintasan boleh diikat sendiri Anda boleh mengembangkan kod pada pengisytiharan di sini. Sangat mudah untuk mengubah suai perisytiharan tanpa perlu melompat ke sana ke mari .

Verilog_Testbench

Fungsi yang tersedia:


Menjana testbench secara automatik

shift ctrl p input testbench, anda boleh terus menjana tb. Kemudian salinnya di terminal.

  • SystemVerilog and Verilog Formatter

Alat ini dilancarkan oleh Google dan menyokong Verilog dan System Verilog ,

Kesannya sangat baik

, dan ia juga menyokong pelbagai parameter pemformatan tersuai. Secara peribadi, saya fikir ia lebih mudah digunakan daripada format verilog.

Fungsi tersedia


Format fail secara automatikFormatkan kandungan yang dipilih secara automatik

Format tersuai

Jadual tetapan parameter tersuai
  • verible-verilog-format: penggunaan: bazel- bin/verilog/tools/ formatter/verible-verilog-format [pilihan] []
  • Untuk paip dari stdin, gunakan '-' sebagai .
  •   Bendera daripada common/formatting/basic_format_style_init.cc:
        --column_limit (Had panjang baris sasaran untuk kekal di bawah semasa memformat.);
          lalai: 100;
        --tambahan aras lekukan ini banyak ruang.);
          lalai: 2;
        --line_break_penalty (Penalti ditambahkan pada penyelesaian untuk setiap baris yang diperkenalkan
          break.); lalai: 2;
        --over_column_limit_penalty (Untuk meminimumkan penalti, ini mewakili
          nilai penalti garis dasar melebihi had lajur. Penalti tambahan
          daripada 1 ditanggung untuk setiap aksara melebihi had ini); lalai: 100;
        --wrap_spaces (Setiap tahap balut menambah banyak ruang ini. Ini terpakai apabila
          elemen pertama selepas bahagian kumpulan terbuka dibalut. Jika tidak, tahap lekukan
          ditetapkan pada lajur kedudukan pengendali kumpulan terbuka
         .); lalai: 4;


      Bendera daripada external/com_google_absl/absl/flags/parse.cc:
        --flagfile (senarai fail yang dipisahkan koma untuk memuatkan bendera); lalai: ;
        --fromenv (senarai bendera yang dipisahkan koma untuk ditetapkan daripada persekitaran [gunakan
          'eksport FLAGS_flag1=value']); lalai: ;
        --tryfromenv (senarai bendera yang dipisahkan koma untuk cuba ditetapkan daripada persekitaran
          jika ada); lalai: ;
        --undefok (senarai nama bendera yang dipisahkan koma yang boleh ditentukan pada
          baris arahan walaupun program tidak mentakrifkan bendera dengan nama itu
         ); lalai: ;


      Benderakan daripada verilog/formatting/format_style_init.cc:
        --assignment_statement_alignment (Formatkan pelbagai tugasan:
          {align,flush-left,preserve,infer}); lalai: infer;
        --case_items_alignment (Formatkan item kes:
          {align,flush-left,preserve,infer}); lalai: infer;
        --class_member_variable_alignment (Formatkan pembolehubah ahli kelas:
          {align,flush-left,preserve,infer}); lalai: infer;
        --compact_indexing_and_selections (Gunakan ungkapan binari padat di dalam
          pengendali pengindeksan / pemilihan bit); lalai: benar;
        --distribution_items_alignment (Item pengedaran Algh:
          {align,flush-left,preserve,infer}); lalai: infer;
        --enum_assignment_statement_alignment (Formatkan tugasan dengan enum:
          {align,flush-left,preserve,infer}); lalai: infer;
        --expand_coverpoints (Jika benar, sentiasa kembangkan coverpoints.); lalai: palsu;
        --formal_parameters_alignment (Formatkan parameter formal:
          {align,flush-left,preserve,infer}); lalai: infer;
        --formal_parameters_indentation (Indent parameter formal: {indent,wrap});
          lalai: wrap;
        --module_net_variable_alignment (Format net/pengisytiharan pembolehubah: kiri, pelihara, simpulkan}); lalai: infer;
        --named_parameter_alignment (Format dinamakan parameter sebenar:
          {align,flush-left,preserve,infer}); lalai: infer;
        --named_parameter_indentation (Indent name parameter assignments:
          {indent,wrap}); lalai: bungkus;
        --named_port_alignment (Format bernama sambungan port:
          {align,flush-left,preserve,infer}); lalai: infer;
        --named_port_indentation (Indent bernama sambungan port: {indent,wrap});
          lalai: wrap;
        --port_declarations_alignment (Formatkan pengisytiharan port:
    {align       ,pelihara, simpulkan}); lalai: infer;
        --port_declarations_indentation (Indent port declarations: {indent,wrap});
          lalai: wrap;
        --port_declarations_right_align_packed_dimensions (Jika benar, dimasukkan dalam konteks             lalai dalam konteks dijajarkan ke kanan.);
          lalai: false;
        --port_declarations_right_align_unpacked_dimensions (Jika benar, unpacked
          dimensi dalam konteks dengan penjajaran didayakan dijajarkan ke kanan. > lalai.);     --struct_union_members_alignment (Formatkan struct/anggota kesatuan:
          {align,flush-left,preserve,infer}); lalai: infer;
        --try_wrap_long_lines (Jika benar, biarkan pemformat cuba mengoptimumkan baris
          keputusan pembalut di mana pembalut diperlukan, jika tidak, biarkan mereka tidak diformatkan.
          Ini adalah langkah jangka pendek untuk mengurangkan risiko- kemudaratan.); lalai: false;


      Bendera daripada verilog/parser/verilog_parser.cc:
        --verilog_trace_parser (Jejak verilog parser); lalai: palsu;


      Benderakan daripada verilog/tools/formatter/verilog_format.cc:
        --failsafe_success (Jika benar, sentiasa keluar dengan status 0, walaupun terdapat
          ralat input atau ralat dalaman. Dalam semua ralat syarat, teks
          asal sentiasa dikekalkan Ini berguna dalam melaksanakan perkhidmatan di mana
          gelagat selamat gagal harus dianggap berjaya.); lalai: benar;
        --inplace (Jika benar, tulis ganti fail input pada keadaan yang berjaya.);
          lalai: false;
        --lines (Barisan khusus untuk diformat, berasaskan 1, dipisahkan koma , termasuk julat N-M
         , N adalah singkatan untuk N-N Secara lalai, dibiarkan tidak ditentukan, semua baris
          didayakan untuk pemformatan (boleh berulang, terkumpul)); lalai: ;
        --max_search_states (Menghadkan bilangan keadaan carian yang diterokai semasa baris
          pengoptimuman bungkus.); lalai: 100000;
        --show_equally_optimum_wrappings (Jika benar, cetak apabila berbilang penyelesaian optimum
          ditemui (stderr), tetapi terus beroperasi seperti biasa.);
          lalai: false;       sertakan maklumat antara token seperti jarak dan penalti putus.);
          lalai: false;
        --show_largest_token_partitions (Jika > 0, cetak token kemudian
          keluar tanpa memformat output.); lalai: 0;
        --show_token_partition_tree (Jika benar, cetak diagnostik selepas token
          pembahagian dan kemudian keluar tanpa memformat output.); lalai: palsu;
        --stdin_name (Apabila menggunakan '-' untuk membaca daripada stdin, ini memberikan nama alternatif
          untuk tujuan diagnostik. Jika tidak, ini diabaikan.);
          lalai: " ";
        --verbose (Jadilah lebih bertele-tele.); lalai: false;
        --verify_convergence (Jika benar, dan tidak memformat secara berperingkat dengan
          --lines, sahkan bahawa memformat semula output yang diformatkan tidak menghasilkan perubahan lagi
         , iaitu pemformatan adalah menumpu.); lalai: true;

    Cuba --helpfull untuk mendapatkan senarai semua bendera atau --help=substring menunjukkan bantuan untuk

    bendera yang menyertakan subrentetan yang ditentukan sama ada dalam nama, atau perihalan atau
    laluan.

    插件配置

    如果是windows,systemveriblelog丮设

    systemverilogFormatter.commandLineArguments可以自定义格式化参数,下面放上我自己用的参数,可以定定码段实现对齐。

    --indentation_spaces=4 --named_port_alignment=align  --ort_declarations_alignment=align --module_net_variable_alignment=align

    如何使用?如何格式化?

    和vscode内置格式化一样,直接shift ctrl,小小可以格式化选定内容。

    值得注意的是,由于这个插件也是在完善中,还是存在部分问题的。

    比如,存在

    语法问题

    ,或者不能识别语法的时候,格式化会使用不了。这里我将最后将最后与,"丱后与能格式化了。

    更多关于VSCode的相关知识,请访问:vscode基础教程

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi persekitaran verilog dalam VSCode? Petua kod, instantiasi automatik, pemformatan perkongsian pemalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam