VSCodeVerilog 環境を構成するにはどうすればよいですか?次の記事では、VSCode で Verilog をスムーズに記述するための、コード プロンプト、自動インスタンス化、およびフォーマットを実現できる 3 つのプラグインを推奨しています。
[推奨学習: vscode チュートリアル 、プログラミング ビデオ ]
#実現可能な機能:
プラグイン設定
Verilog HDL/SystemVerilog プラグインのウェルカム ページで説明されているように、Ctags 機能をサポートします: 設定手順:
iverilog
Verilog、SV、およびその他の構文の強調表示をサポートします。
shift ctrl p input verilog を使用すると、モジュールを直接自動的にインスタンス化できます。
マウスを信号上に置くと、フローティング ボックスにステートメントが表示されます。 Ctrl キーを押しながら信号名をクリックすると、宣言に自動的にジャンプします。信号にカーソルを置き、右クリックして [定義の表示] を選択します (ショートカット キーは自分でバインドできます)。ここで宣言のコードを展開できます。前後にジャンプすることなく宣言を変更するのに非常に便利です。 。
Verilog_Testbench
##実現可能な機能:
テストベンチを自動的に生成
SystemVerilog と Verilog Formatter
#実現可能な機能
ファイルの自動フォーマット#選択したコンテンツの自動フォーマット#カスタムフォーマット
common/formatting/basic_format_style_init.cc からのフラグ:
--column_limit (書式設定時に維持するターゲット行の長さ制限。);
デフォルト: 100;
--indentation_spaces (インデントレベルごとに追加されます)この数のスペース。);
デフォルト: 2;
--line_break_penalty (導入された行
Break ごとにソリューションにペナルティが追加されます。);デフォルト: 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;
--module_net_variable_alignment (ネット/変数宣言のフォーマット:
{align,flush-左、保存、推測});デフォルト: infer;
--named_parameter_alignment (形式名付き実際のパラメータ:
{align,flush-left,preserve,infer});デフォルト: infer;
--named_parameter_indentation (名前付きパラメータ割り当てのインデント:
{indent,wrap});デフォルト: Wrap;
--named_port_alignment (名前付きポート接続の形式:
{align,flush-left,preserve,infer});デフォルト: infer;
--named_port_indentation (名前付きポート接続のインデント: {indent,wrap});
デフォルト: Wrap;
--port_declarations_alignment (ポート宣言のフォーマット:
{align,flush-left 、保存、推測});デフォルト: infer;
--port_declarations_indentation (ポート宣言のインデント: {indent,wrap});
デフォルト: Wrap;
--port_declarations_right_align_packed_dimensions (true の場合、アライメントが有効になっているコンテキスト内のパック
ディメンションは右揃え。);
デフォルト: false;
--port_declarations_right_align_unpacked_dimensions (true の場合、配置が有効になっているコンテキスト内の unpacked
ディメンションは右揃えになります。);
デフォルト: 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 パーサー);デフォルト: false;
verilog/tools/formatter/verilog_format.cc からのフラグ:
--failsafe_success (true の場合、
入力エラーまたは内部エラーがあった場合でも、常に 0 ステータスで終了します。すべてのエラーでこの条件では、元の
テキストは常に保持されます。これは、
フェールセーフ動作が成功とみなされる必要があるサービスを展開する場合に役立ちます。);デフォルト: true;
--inplace (true の場合、成功した場合に入力ファイルを上書きします。);
デフォルト: 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;
--show_largest_token_partitions (> 0 の場合、トークンのパーティション分割を出力し、
出力をフォーマットせずに終了します。);デフォルト: 0;
--show_token_partition_tree (true の場合、token
パーティショニング後に診断を出力し、出力をフォーマットせずに終了します。);デフォルト: false;
--stdin_name (「-」を使用して標準入力から読み取る場合、診断目的で代替の
名前が与えられます。それ以外の場合、これは無視されます。);
デフォルト: "
--verbose (より冗長になります。);デフォルト: false;
--verify_convergence (true で、
--lines による増分フォーマットではない場合、フォーマットされた出力を再フォーマットしてもそれ以上の変更が生じないこと、つまりフォーマットが収束していることを検証します。);デフォルト: true;
に指定された部分文字列が含まれる
フラグのヘルプが表示されます。 path.
ファイル構成
Windows の場合、systemverilogFormatter.veribleBuild は win64 に設定されますsystemverilogFormatter.commandLineArguments は、形式化パラメータを自由に指定でき、次に私が使用するパラメータを使用して、常用コード セグメントの大部分を実現できます。# と vscode 内置形式化、直接 shift ctrl f でファイルを形式化できます、ctrl k で指定した内容を形式化できます。 ## このソフトウェアも完全に動作しているため、部分的に問題が存在することに注意してください。 そうしないと動作しません。 、または会話法を認識できない場合、形式化は使用されません。ここでは最後のポートを追加します。","就は形式化できません。
詳細VSCode の関連知識、访藮:vscode ベース教程
!以上がVSCode で Verilog 環境を構成するにはどうすればよいですか?コードプロンプト + 自動インスタンス化 + フォーマットプラグインの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。