首頁  >  文章  >  開發工具  >  VSCode怎麼配置verilog環境?程式碼提示+自動例化+格式化外掛分享

VSCode怎麼配置verilog環境?程式碼提示+自動例化+格式化外掛分享

青灯夜游
青灯夜游轉載
2022-11-28 20:19:444717瀏覽

VSCode怎麼配置verilog環境?以下這篇文章給大家推薦三個插件,讓VSCode流暢編寫verilog,三個插件可實現程式碼提示 自動例化 格式化。

VSCode怎麼配置verilog環境?程式碼提示+自動例化+格式化外掛分享

【推薦學習:vscode教學程式設計影片

##Verilog-HDL/ SystemVerilog/Bluespec SystemVerilog



#可實作功能:

VSCode怎麼配置verilog環境?程式碼提示+自動例化+格式化外掛分享

    語法高亮
  • 自動例化程式碼提示與跳轉

  • #自動補全
  • 外掛程式設定

  • 如Verilog HDL/SystemVerilog外掛程式歡迎頁的說明,支援Ctags功能:

##設定步驟:

下載最新版

ctags

,舊版的有些功能不夠齊全;windows可選x64版本;

將ctags.exe的路徑設定到系統環境變數中;
  • 外掛程式設定中配置ctags路徑;
  • ##重啟VSCode即可;



## 可以選擇不同的編譯器

# 包含:
  • iverilog

xvlog(vivado)

modelsim

#功能展示

##支援verilog、 SV等語法高亮。

shift ctrl p輸入verilog,可以直接自動範例模組。

滑鼠放在訊號上,就會有聲明顯示在懸浮框中。 Ctrl 左鍵,點選訊號名,自動跳到聲明處。遊標放在訊號處,右鍵選擇查看定義(快捷鍵可自行綁定),可以在此處展開聲明處的程式碼,用於修改聲明十分方便,就不用再來回跳轉了。 Verilog_Testbench

  • #可實現功能:


################################################## ###自動產生testbench ################## shift ctrl p輸入testbench,可以直接產生tb。然後在終端複製即可。 ##################SystemVerilog and Verilog Formatter###############這款工具由Google推出,同時支援Verilog和System Verilog ,###效果非常好###,支援自訂的格式化參數也很豐富。個人認為比verilog format好用。 ############可實現功能############### 自動格式化檔案######自動格式化選取內容#### ##自訂格式###############自訂參數設定表################verible-verilog-format: usage: bazel- bin/verilog/tools/formatter/verible-verilog-format [options] []### To pipe from stdin, use '-' as .## #

  來自common/formatting/basic_format_style_init.cc 的標誌:
    --column_limit (格式化時要保持的目標行長度限制。);
      預設:100;
    --indentation_spaces --縮排等級 增加這麼多空格。);
      預設值:2;
    --line_break_penalty (針對每個引入的行
      中斷新增至解決方案中的懲罰。);預設值:2;
    --over_column_limit_penalty (對於懲罰最小化,這表示超出列限制的基準懲罰值。超過此限制的每個字元都會產生 1 的額外懲罰);預設值:100;
    --wrap_spaces (每個換行等級新增這麼多空格。這適用於開放群組部分後的
      換行時的情況。否則,
      群組
      運算子的位置。);預設值:4;

# 來自external/com_google_absl/absl/flags/parse.cc 的標誌:

    --flagfile (以逗號分隔的檔案列表,用於從中載入標誌) ;預設值:;
    --fromenv (從環境中設定的以逗號分隔的標誌清單 [use
      'export FLAGS_flag1=value']);預設值:;
    --tryfromenv (嘗試從
      環境設定的以逗號分隔的標誌清單(如果存在);預設值:;
    --undefok (以逗號分隔的標誌名稱列表,可以在命令列上指定,即使程式沒有使用該名稱定義標誌);預設: ;


  來自 verilog/formatting/format_style_init.cc 的標誌:
    --assignment_statement_alignment (格式化各種賦值:
      {align,flush-left,preserve,infer});預設值:infer;
    --case_items_alignment (格式化案例項目:
      {align,flush-left,preserve,infer});預設值:infer;
    --class_member_variable_alignment (格式化類別成員變數:
      {align,flush-left,preserve,infer});預設值:infer;
    --compact_indexing_and_selections(在
      索引/位元選擇運算子中使用緊密的二進位表達式);預設值: true;
    --distribution_items_alignment (對齊分佈項:
      {align,flush-left,preserve,infer});預設值:infer;
    --enum_assignment_statement_alignment (使用枚舉格式化賦值:
      {align,flush-left,preserve,infer});預設值:infer;
    --expand_coverpoints(如果為 true,則始終擴展覆蓋點。);預設值: false;
    --formal_parameters_alignment (格式形參:
      {align,flush-left,preserve,infer});預設值:infer;
    --formal_parameters_indentation (縮排形式參數:{indent,wrap});
      預設值:wrap;
    --ule_net_variable_alignment (格式網路/變數宣告: ,flush-左、保留、推斷});預設值:infer;
    --named_pa​​rameter_alignment (命名實際參數的格式:
      {align,flush-left,preserve,infer});預設值:infer;
    --named_pa​​rameter_indentation (縮排命名參數賦值:
      {indent,wrap});預設值:wrap;
    --named_port_alignment (命名連接埠連線格式:
      {align,flush-left,preserve,infer});預設:infer;
    --named_port_indentation (縮排命名連接埠連線:{indent,wrap});
      預設:wrap;
    --port_declarations_alignment (格式連接埠宣告:##     --port_declarations_alignment (格式連接埠宣告:## c left ,保留,推斷});預設值:infer;
    --port_declarations_indentation (縮排埠宣告:{indent,wrap});
      預設值:wrap;
    --port_declarations_right_align_packed_dimension## Packed
      尺寸為向右對齊。);
      預設值: false;
    --port_declarations_right_align_unpacked_dimensions (如果為true,則啟用對齊的上下文中的未打包 #  
      預設值: false;
    --struct_union_members_alignment (格式化結構/共同成員:
      {align,flush-left,preserve,infer});預設值:infer;
    --try_wrap_long_lines (如果為true,則讓格式化程式嘗試在需要換行的地方最佳化行
      換行決策,否則不格式化。
     這是降低風險的短期措施-的傷害。);預設值: false;


# 來自 verilog/parser/verilog_parser.cc 的標誌:

    --verilog_trace_parser (追蹤 verilog 解析器);預設值:假;


  來自verilog/tools/formatter/verilog_format.cc 的標誌:
    --failsafe_success (如果為true,則始終以0 狀態退出,即使存在
      輸入錯誤或內部錯誤。在錯誤中條件下,始終保留原始
      文字。這在部署服務時非常有用,其中
      故障安全行為應視為成功。);預設值:true;
    --inplace (如果為true,則在成功的情況下覆寫輸入檔案。);
      預設值:false;
    --lines (要格式化的特定行,預設值:false;
    --lines (要格式化的特定行,預設值從1 開始,以逗號分隔,包含 N-M
      範圍,N 是 N-N 的縮寫。預設情況下,不指定,所有行都啟用格式設定。(可重複,累積));預設值:;
    --max_search_states (限制行
      換行最佳化期間探索的搜尋狀態的數量。);預設值:100000;
    --show_equally_optimal_wrappings (如果為true,則在找到多個最佳解決方案時列印(stderr),但繼續正常運作。);
      預設值:false; -show_inter_token_info (如果為true,則與show_token_partition_tree 一起,
      包含令牌間資訊,例如間距和中斷懲罰。);
      預設: false;
  命令 --showshowgest   --showgest  to_part,則列印指令 0Pken_lar牌分區,然後
      退出而不格式化輸出。);預設值:0;
    --show_token_partition_tree (如果為 true,則在 token
      分區後列印診斷訊息,然後退出而不格式化輸出。);預設值: false;
    --stdin_name (當使用'-' 從stdin 讀取時,這會給出一個備用
      名稱以用於診斷目的。否則將被忽略。);
      預設值:“; ";
    --verbose(更詳細。);預設值: false;
    --verify_convergence (如果為true,且不使用
      --lines 進行增量格式化,請驗證重新格式化格式化輸出不會產生進一步的
      更改,即格式是收斂的。);預設值:true;

嘗試--helpfull 取得所有標誌的清單或--help=substring 顯示

標誌的幫助,這些標誌在名稱或描述中或

中包含指定的子字串path.

#外掛程式配置

##如果是windows,systemverilogFormatter. veribleBuild設定為win64

systemverilogFormatter.commandLineArguments 可以自訂格式化參數,下面放上我自己用的參數,可以實作大部分常用程式碼段實作對齊。

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

如何使用?如何格式化?

和vscode內建格式化一樣,直接shift ctrl f就可以格式化文件,ctrl k可以格式化選定的內容。

意思是,由於這個外掛也是在完善中,還是有部分問題的。

例如else不會換行。

例如,存在語法問題

,或是無法辨識語法的時候,刪除會用不了。這裡我將最後一個連接埠加上","就不能刪除了。


更更多關於VSCode的相關知識,請造訪:###vscode基礎教學###!#######

以上是VSCode怎麼配置verilog環境?程式碼提示+自動例化+格式化外掛分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除