目次
I.はじめに
VCS を起動する Makefile を例に、コマンド パラメータの使用方法を説明します。VCS コンパイル済みファイルではパラメータが多すぎます。VCS を実行するたびにターミナルにパラメータを入力しすぎると効率が非常に低いことは明らかです。そのため、操作指示を簡素化するためにスクリプト言語でパラメータを格納する必要があるため、Makefile が役立ちます。
通常、パラメータを Makefile に記述し、スクリプトを介してコマンドを make run_vcs に簡略化し、VCS のコンパイル、接続、操作を 1 ステップで完了します。これはワンステップ方式と呼ばれます (最初のパラメータは vcs)。
2. VCSの共通コマンドパラメータ
コマンドパラメータ | 意味 | 補充する |
ビデオブログ | verilog ファイルを分析し (VHDL ファイルを分析する場合、同様の命令は vhdlan)、一般的に使用されるコンパイル | 3 ステップ法で使用されます (下記を参照) |
VC | vcs を使用してファイルをコンパイルする | 1 ステップまたは 2 ステップの方法で使用します (下記を参照) |
-sverilog | コンパイルされたファイルには sv 構文が含まれており、sv ファイルをコンパイルするときにこの項目を追加する必要があります | vcs -sverilog tb.sv tb.sv ファイルをコンパイルする |
-full64 | 64 ビット モードでコンパイルし、エミュレーション用の 64 ビット実行可能ファイルを作成します。 | 64 ビット オペレーティング システムの場合は、以下を追加する必要があります |
-l コンパイル.ログ | コンパイルされたコンテンツをcompile.logファイルに書き込みます。 | |
+v2k(-v2k) | Verilog 1364-2001 標準の使用 | 広く使用されている標準 |
-f | コンパイルは .v ファイルとパスを含むファイルをオーバーライドします | vcs -f ram.lst RAM の最初のファイルをコンパイルします。このファイルには、/home/host/rtl/ram.v などのパスが含まれる場合があります。 |
-タイムスケール=1ns/1ps | シミュレーションの時間単位を 1ns として定義し、精度は 1ps です。 | timescale コンパイラ ディレクティブが含まれていないファイルに timetable を指定し、timetable を含むファイルの前に timetable を指定します。 |
+plusarg_save | パラメータ受け渡し機能を有効にすると、シミュレーション中に特定の値を渡すことができます | |
-ntb_opts | コンパイル時にいくつかのオプションを追加する | -ntb_opts uvm1.2 は、uvm1.2 ライブラリ ファイルをロードすることを意味します |
+incdir+<ディレクトリ> | `include コンパイラ ディレクティブを使用して指定されたファイルを含むディレクトリを指定します。各パス名を + 文字で区切って、複数のディレクトリを指定できます。 | |
-debug_all | すべてのデバッグ機能を開始します。 -debug デバッグの一部、-debug_access+<option> (VCS2014 バージョン以降に追加されたデバッグ オプション機能) | |
-nc | シノプシスの著作権情報を印刷しないでください | 追加しても追加しなくてもシミュレーションには影響しません |
-R | コンパイル後すぐにシミュレーションを開始する | ワンステップ方式 |
-はい_res | 時間分解能を有効にする |
注: incdir ファイルの場合、フォルダーの下にあるファイルのみを含めることができ、下位レベルのフォルダーの内容は含めることはできません (下位レベルのフォルダーの内容を含める場合は、+incdir+uvm/{test, test/basic_test} と記述する必要があります。これには、uvm の下のテスト ファイル内のファイルが含まれ、uvm の下のテストの下の Basic_test のファイルも含まれます)。
2.1. ワンステップ法
VCS を使用して設計/検証ファイルをコンパイルおよびチェックする場合、いくつかの簡単な VCS 命令だけで実現できます。次の操作は、シミュレーションが関与せず、現在書き込まれているファイルにエラーがあるかどうかを確認するためだけに使用するのに適しています。
注文 | 結果 |
vcs +v2k -full64 file1.v file2.v | Verilog ファイルをコンパイルする |
vcs +v2k -full64 -sverilog file1.v file2.v file3.sv file4.sv | SV 構文を含む可能性のあるファイルをコンパイルする |
vcs +v2k -full64 -f file1.lst | パスのファイル情報が含まれる lst ファイルをコンパイルします。 |
コンパイル後にシミュレーションを開始する必要がある場合 (前提条件: 検証環境があること)、ファイル数が多く、さらに制御パラメータを追加する必要がある場合は、Makefile を使用する必要があります。以下はワンステップの Makefile 記述例です。
ワンステップの Makefile 作成例:
-R オプションを使用してコンパイル操作とシミュレーション操作を組み合わせて、ワンステップ方式を実現します。
2.2. 2 段階の方法
コンパイルとシミュレーションを分割する場合もあり、コンパイルが完了して simv ファイルが生成された後、シミュレーションを実行して simv ファイルを実行する、2 ステップ方式と呼ばれます。
2 ステップの Makefile の作成例:
1 ステップの方法と比較して、-R パラメーターを使用せずに 2 つのステップに分割します。
補足: -gui パラメータはオプションです。グラフィカル インターフェイスを開くように制御します。verdi または dve を開くことができます。dve は vcs のネイティブであり、verdi は広く使用されています。
2.3. 3 段階の方法
2 ステップ法と比較して、3 ステップ法はコンパイルを分析とリファインメントに分割し、通常、複数のファイル タイプ (verilog や VHDL など) をコンパイルする場合に使用されます。実際には、これは VCS の実際の動作プロセスに応じていくつかのステップに分かれており、VCS の動作プロセスは、コンパイルされたファイルを一時的に保存し、実行可能ファイル simv に洗練し、最後に .simv ファイルを実行することでファイルのコンパイルとシミュレーションを完了します。
まず Makefile に解析コマンドを実装し (最初のパラメータは vlogan または vhdlan、verilog ファイルと VHDL ファイルをそれぞれコンパイルします。an は解析の略語です)、次にリファインメント コマンド (最初のパラメータは vcs) を実装し、最後にシミュレーション コマンドを実装します。
3 ステップの Makefile コンパイルの例
3. よくあるエラー
vcs コンパイラが見つかりません
Makefile を使用してコンパイルしない場合は、使用するコンパイル パラメーターが少なくなることが多く、たとえば、-full64 がないと、vcs コンパイラーが見つからないと報告されます。また、sv ファイルをコンパイルする場合、-sverilog を付けないと構文エラー (syntax error) が報告されます。
4. 参考文献
VCS シミュレーションの詳細なプロセスについて:
VCS シミュレーション プロセス_A6B のブログ - CSDN blog_vcs vlogan
Makefileの詳細な記述例:
[デジタル IC クイック スタート] Makefile スクリプトの理解_Thomas-w のブログ-CSDN ブログ_makefile スクリプト
Makefile での =、:=、+= の使用法
Makefile_keep_forward のブログ - CSDN blog_in makefile:= における =、=、?=、+= の意味
デバッグオプション
Synopsys VCS でコンパイルする場合、デバッグ オプションを有効にする - XtremeDV ブログ - CSDN ブログ