様々な方法は、ファイルのVCD、VPD、SHM、生成されたFSDBを波形

      IC設計のシミュレーションが欠かせない重要なステップである、一般的に詳細な分析と研究のためのポストシミュレーション波形ファイルを記録する必要があります。:いくつかの波がWLF(ウェーブログファイル)、VCD(バリューチェンジダンプ)ファイル、fsdbは(高速信号データベース)ファイル、SHM、VPDのファイルについての話

      WLF波形ログファイルの場合は、限り、我々はModelSimのを使用して、あなたはすべて理解しておく必要があります。WLF(ウェーブログファイル)がメンター・グラフィックスのModelSimの波形ファイルによってサポートされています。私たちは* .wlfファイルを生成しますシミュレーションの終了時に、波形の波形ウィンドウを観察する際には(デフォルトはvsim.wlfです)。次回は、私たちはModelSimのを介して直接保存された波形を開くことができます。VSIM -view vsim.wlf -do run.do run.do信号波形の内容を見ることにします。それは、このWLFファイルが唯一のModelSimによって生成することができることが強調される、唯一のModelSimで表示することができます。ではない一般的なファイル形式。

      VCD(バリューチェンジダンプ)は、共通のフォーマットです。VCDファイルはASCIIファイルIEEE1364標準(のVerilog HDL言語の標準)が定義されています。これは主にヘッダ情報を含み、変更情報変数は、値を事前定義します。それは全体のシミュレーションのための同等の情報を記録された情報信号の変化を、含まれているため、それは正確で、我々はそれが波形を表示することができ、シミュレーションを再現するために、このファイルを使用することができます。VCDはすべてのverilogシミュレータは、この機能を実現することができるはずですので、Verilog HDLの言語標準の一部ですが、また、ダンプVCDファイルシステム機能へのverilogコードをユーザーに許可するので。我々は、波形が一定の所定のデータモジュールと、我々はシミュレーションパラメータをdumpvars信号抽出にダンプファイルによって生成されたVerilog HDL波形ダンプファイルシステム機能によって生成されてもよいです。

      特に注目すべきは、からこそ、情報信号における完全な変更のVCD記録を、私たちはVCDファイルによって、デザインの消費電力を推定することができる、つまり、これは他のwaveファイルが利用できないです。出会いとプライムタイムPX(プライムパワー)は、電力解析を達成するために、シミュレーション後に生成されたVCDファイルとネットリストファイル、ライブラリ、および消費電力情報が入力することができます。

      VCDは、Verilog HDLの言語標準の一部であるため、すべてのverilogシミュレータは、この機能を実現することができなければならないので。我々はVerilogのコードでdumpVCDファイルシステムの機能をできるようにします。また、当社は、VHDLにまで拡張することができますModelSimのコマンドにより、VCDファイルをダンプすることができます。特定のコマンド:VCDファイルmyfile.vcd

      VCDの追加/テスト/ DUT / *これは、すべてのDUT信号に関する情報を含むVCDデータを生成します。

      私たちが使用してシミュレートする必要がありVSIM -vcdstim myfile.com

      テスト; / *波を追加します。-all実行します。

またはでテストベンチに参加します:

初期

ベギン

$ダンプファイル( "* VCD。");

$ Dumpvars(0 **)。

終わり

      FSDB(高速信号データベース)は、一般的に小さな春ソフト(ノバス)会社ドビュッシー/ヴェルディ波ファイルのサポートで、より広く使用され、そのようmodlesimなどNCSIM、などのシミュレーションツールの残りの部分は、PLIヴェルディの(通常のインストールディレクトリに配置によってロードすることができます下の共有/ PLIディレクトリ)を直接fsdbはファイルをダンプします。ヴェルディFSDBファイルVCDと同様の独自のデータフォーマットを使用することであるが、それはシミュレーション信号中に提示のみ有用な情報であり、VCDに冗長な情報を削除し、VCDデータは、ハフマン符号化のようであること。したがって、少量のデータFSDBが、それは、シミュレーション速度が向上します。PLIを達成するためにVerilogのインターフェイスですFSDB私たちは、Verilogの組み込みのシステム機能を実現するために使用してVCDファイルを知っています。fsdbDumpfile、fsdbDumpfile、fsdbDumpvarsなど

  テストベンチを追加しました:

  初期

 ベギン

 $ fsdbDumpfile( "* FSDB。");

 $ FsdbDumpvars(0 **)。

 終わり

       残りの波形ファイルはそう、ファイルの種類サポートされるさまざまなエミュレーションやデバッグツールとは異なり、そしてないGMを行うが、ちょうどシミュレーションデバッグに必要なデータを取るための基本は、実際にはVCDファイル(VCDファイルの要約版から変換することができますファイルサイズ)は、元のVCDファイルよりもはるかに小さい、そしていくつかはまた、VCDファイル変換機能との相互運用性を提供します。

       SHMは.shmが実際に2つのファイルが.dsnと.TRN含むディレクトリ、である、波形ファイルのケイデンスのNC VerilogおよびSimvisionサポートです。

       VPDは、波形ファイルのシノプシスのVCS DVEサポートが$ vcdplusonで生成することが可能です。

       同じ条件にCadence社NC Verilogのテストケースの比較と同じ波形ダンプ、最短のSHMファイル生成時間(ナンセンス、元々会社)を使用して、生成されたVCDファイルは、複数の時間及びSHMのFSDB時間を生成します。VCDファイルのサイズが数GBになりますしながら、私がテストした例では、FSDBファイルは、MBの数十の十MB、SHMファイルとして生成されました。

  ************************************************** ******************************

 いくつかの使用法をFSDB:

 (1)以下は、我々は1をGoogleにすることができ、様々な、特定のコンテンツfsdbは使用可能性を示唆し、リストであり、それらはすべて出てきました。

fsdbDumplimit - FSDBファイルサイズの上限はどのように使用するには?

$ fsdbDumpvars([<レベル>]、<スコープ|信号> *)

fsdbDumpfile - 指定FSDBファイル名

$ fsdbDumpfile(「<FSDB名>」)

fsdbDumpvars - 指定されたダンプ変数

fsdbDumpSingle - ダンプ指定された信号

fsdbDumpvariable - ダンプ指定された変数のVHDL

fsdbSwitchDumpFileは - 別のファイルに切り替わります投棄FSDB

$ fsdbSwitchDumpFile(「<新しいFSDB名>」)

fsdbAutoSwitchDumpfile - ファイルのサイズを制限し、自動的にデータのオーバーロードの新しいFSDBファイルを作成します

$ fsdbAutoSwitchDumpfile(<ファイルサイズ>、「<FSDB名>」、<ファイル数>)

fsdbDumpflush - フォースFSDBファイルに結果をダンプします

fsdbDumpMem - 指定されたメモリの内容をダンプ

$ fsdbDumpMem(<REG名>、[<スタートADDR>、[<サイズ>]])

$ FsdbDumpon - オープンFSDBダンピング

$ FsdbDumpoff - 閉じるFSDBダンピング

(1)スイッチ方式からなるFSDB

時には、あなたは長い時間のためにシミュレーションを実行したいが、関心の波が、ちょうど短いです。波形を切り替える方法を今回は、ファイルが大きすぎることもないのだろうか?ここでは方法が記載されています。参照のための例としては唯一、我々は種々の変更へのより実用的なアプリケーションを作成することができます。

 初期は始まります

$ TIMEFORMAT(...);

$ fsdbAutoSwitchDumpfile(...);

$ FsdbDumpvars(...);

//条件式1

FsdbDumpoffを$。

//条件式2

FsdbDumponを$。

終わり

(2)、我々は、より一般的に一般的に使用されているだけでなく、中にtest_topで、このタスクをvaluevalueplusargs:

valuevalueplusargs( "casename =%S"、casename)

実行時に渡されたスクリプトcasenameことで(:+ casename = $ Testcase_name.fsdb VCS / NC SIM_ARGへ)

他はスキップする開始時間である一方、テストケースを容易にしつつ、実行時に複数のdumpfsdb可能性がある場合

ダンプ(SIM_ARG:+時間= $のstart_time)

valuevalueplusargs( "時間=%dの"、スキップ)

#スキップ

頻繁にダンプtest_topを修正するために、関係するすべての人(3)異なるモジュールプロジェクトは、一般的にDUMPLISTの内容をダンプする必要があります。

ファイルが実装されています

$ fsdbDumpvarsToFile( "dump.list");

コメントの例えばdump.listコンテンツ#)

0 test_top

#1 test_top

#0 test_top.dut

#0 test_top.dut.m1

#0 test_top.dut.m2

使用する場合、通常はtest_top.vに関連するステートメントを追加します。

REG [100:0] casename。

整数私は、スキップ。

初期は始まります

(testtestplusargs( "dumpfsdb"))であれば開始

(valuevalueplusargs( "時間=%dの"、スキップ))の場合

#スキップ;

IF(valuevalueplusargs( "casename =%S"、casename))

$ FsdbAutoSwitchDumpfile(300、casename、30)。

そうしないと

$ fsdbAutoSwitchDumpfile(300、 "./ test_top.fsdb"、40);

$ fsdbDumpvarsToFile( "dump.list");

終わり

終わり

 ときにシミュレーションの実行を、VCS / NCパラメータ、開始ダンプ波形に対応5000ns(関連単位時間スケールルート)からのIF

+ dumpfsdb +時間= 5000 + casename = testcase1.fsdb

一般的にどのtestcase1、我々はケース名の仲間が続くスクリプトに対処します、それは5000からスタートダンプした後、次のように終了します

testcase1_000.fsdb、このようなtestcase1_001.fsdb、

2.またdump.list(名前簡単に取ることができます)ダンプのように、いつものセットレベルの設定内のセットを

レベルパス名

0 test_top.dut.m1

例:

// =================

//ダンプFSDB波

interger start_dump;

stop_dump整数;

finish_timeに整数;

結果整数。

REG [8 * 30 * -1:0] waveform_name。

開始当初:fsdb_dump

start_dump = 0;

finish_timeに= 0;

waveform_name = "debussy.fsdb"。

(testtestplusargs( "FSDB"))の場合

    ベギン

      もし(testtestplusargs( "dump_fileに"))

         結果= valuevalueplusargs( "dump_fileに=%S"、waveform_name)。

         $ fsdbAutoSwitchDumpfile(150、waveform_name、100);

         $ fsdbDumpflush;

         #start_dump;

//選択ダンプ信号

$ fsdbDumpvars(0、xx_tb)。

    終わり

終わり

リリース1012元の記事 ウォンの賞賛520 ビュー1270万+

おすすめ

転載: blog.csdn.net/Augusdi/article/details/104955826