ModelSimでVerilogコードをシミュレートするスクリプトの作成と実行

画像



みなさんこんにちは! 皆さんが良い休日を過ごして、新たな活力でFPGA開発の高みを征服する準備ができていることを願っています。







今日、GUIを使用せずにModelSimVerilog / SystemVerilogでテストベンチを実行するための小さなガイドを書きたいと思います。







計画は次のとおりです。







  1. PATHでModelSimへのパスを追加します。
  2. コマンドを説明するスクリプトを作成します。
  3. 記述されたスクリプトを実行してModelSimを実行します。


行こう! 開始するには、次のものが必要です。









例として、 HappyNYプロジェクトを検討します。







それでは始めましょう。







1. PATHへのmodelsim実行可能ファイルへのパスの追加



これを行う必要があるかどうかを簡単に確認できます。コマンドラインで「modelsim」と入力し、その後ModelSimが起動した場合は、現在のアイテムをスキップできます。 それ以外の場合、Windowsの場合、これは次のように行われます。コマンドラインが開き、コマンドが書き込まれます







 set PATH=%PATH%; C:\Progs\ModelSim10_5\win64
      
      





modelsim実行可能ファイルへのパスを指定します(後。実行可能ファイルへのパスを指定する必要があります)。 コマンドの実行後、この段落の最初に示されているチェックを実行し、何か問題がある場合は、段落を繰り返します。







2.実行するスクリプトを書く



ModelSimには、シミュレーションを実行および制御するためのさまざまなコマンドを入力できるコマンドラインがあります。 コマンドに関するかなり詳細なガイドは、 ここまたはここにあります 。 ModelSimスクリプトの場合、* .doファイル形式が受け入れられます。 任意のテキストエディター(メモ帳、崇高なテキスト、vim、メモ帳++、 BUT NOT WORD !!! )で指定された拡張子を持つファイルを作成し、そこに次のコマンドを記述します。







 transcript on vlib work
      
      





このスクリプトを分析してみましょう。







on



フラグ付きのtranscript



コマンドはecho



と同じです。 このコマンドを指定した後、ModelSimコマンドラインで実行すると、スクリプトで指定されたすべての後続コマンドが印刷されます。 どのコマンドが実行されたときに、どのコマンドでエラーが発生したかが明確になります(存在する場合)。







vlib



チームはvlib



というプロジェクトライブラリを作成します。







私たちは続けます:







 vlog -sv +incdir+./ ./happyNY.sv vlog -sv +incdir+./ ./tb.sv
      
      





フラグ付きのvlog



コマンドは、Verilogコンパイラの呼び出しです。







-sv



-sv



フラグは、SystemVerilog標準を使用するようコンパイラーに指示します。 Quartusなどとは異なり、ファイルはすべて独立してコンパイルされるため、たとえばpackage



一部をimport



する場合は、使用する各ファイルで行うか、 package



を含むファイル内で行う必要がありpackage



(提供しない場合は、Quartus包含の保護者は、この場合エラーをスローします)。







+incdir+../



フラグは、コンパイラがインクルードファイル(つまり、 `include



ディレクティブでコードで指定されたファイル)を検索する場所を示します。







次はコンパイルされたファイルの名前です。







私たちは続けます:







 vsim -t 1ns -voptargs="+acc" tb
      
      





vsim



コマンドは、シミュレーションを実行します。







-t



フラグは、時間グリッドの精度を設定します。

-voptargsフラグは、voptオプティマイザーの後続の自動呼び出しの引数を受け取ります。 vopt + accが呼び出されます。 このフラグは、プロジェクト内のさまざまなオブジェクトの最適化を有効にし、シミュレーターでこれらのオブジェクトの可視性を含めます。 詳細については、154ページを参照してください。

最後は最上位のテストベンチの名前です。この例では、ファイル名と一致しています。







そして最後に、スクリプトの最後の部分:







 add wave /tb/clk add wave /tb/rst add wave -radix ASCII /tb/symbol configure wave -timelineunits us run -all wave zoom full
      
      





まず、 add wave



コマンドを使用して、必要な信号をWave Windowフォームにadd wave



ます。 信号の1つは、 -radix ASCII



フラグを使用して文字に表示形式が変更されていることに注意してください。







次に、時間スケールの単位を設定します。 テストベンチに記述されたスクリプトに従ってシミュレーションを開始します。 ウィンドウのサイズに正確に合うように、Wave Windowで画像を拡大(または圧縮)します。







3.スクリプトを実行してModelSimを実行する



まず、コマンドラインまたはターミナルを開いて、スクリプトファイルとプロジェクトファイルがあるディレクトリに移動する必要があります。 次に、この場合、 -do <script_name>



を使用して-do <script_name>



実行可能ファイルを実行する必要があり-do <script_name>









 modelsim -do happyNY.do
      
      





他に何もする必要はありません。 何らかの理由でModelSimへのパスを環境変数に追加できなかった場合、modelsimの代わりに実行可能ファイルへのフルパスを指定できます。 これが機能しなかった場合、ModelSimを手動で起動すると、ModelSimコマンドラインのプロジェクトディレクトリに移動し、次のコマンドでスクリプトを実行できます。







 do happyNY.do
      
      





説明したすべての手順の後、次の図が表示されます。







画像







幸運を祈ります!








All Articles