メンターの ModelSim DE は、検証に便利な機能を豊富に備えています。今回は、その検証機能の1つである 波形比較 についてご紹介します。

ModelSim DE に搭載された検証機能

 

 

 

【1】アサーション検証とは

【2】コードカバレッジとは

【3】波形比較とは

【4】エンハンスド・データフローとは

 

波形比較の機能

波形比較 は、論理確認済みの基準データと調査対象のシミュレーション結果とを比較します。


(1) 2種類の比較モードをサポートします。

 ・ 連続モード

   選択した信号の変化時にその信号の値を比較します。
   信号にトレランス(許容)時間を与えて幅を持たせたり、Enable 時だけ波形比較する等の比較条件を設定することができます。

 ・ クロックモード

   基準クロックのエッジに合わせて比較します。
   基準クロックにオフセット時間を与えることができます。

(2) 階層間や信号名が異なる信号波形の比較ができます。

「階層的な RTL デザイン」と「論理合成されたフラットなデザイン」を比べると、階層や信号名の不一致やバスが分割されるので単純に波形を比較できませんがModelSim の波形比較は、比較対象となる基準デザインの階層変更、信号名追加、分解されたバス信号の自動再構築を行えます。

(3) 比較する信号強度のマッチング・ルールを設定できます。

マッチ条件には、”0”、1”、X”、”Z”の4種類がありますが、そのマッチする信号強度を各々に設定できます。

波形比較の使用例

波形比較機能を使った使用例を紹介します。

(1) FPGA 実機のデバッグ

インテルの Quartus Prime の Signal Tap Logic Analyzer を使用すると、実動作中の FPGA 内部動作を確認できます。その波形データを変換して ModelSim の 波形比較 に取り込めば、FPGA の実動作の波形とシミュレーション波形を比較検証できます。ModelSim の卓越したデバッグ機能(エンハンスド・データフローやアサーションベース検証)を用いて不具合箇所や修正後の確認を迅速に行えます。

(2) RTLとネットリストの論理比較

論理合成後のネットリストや手修正したネットリストと、元の RTL との論理比較を行えます。テスト用回路の削除、回路面積の縮小、パフォーマンス向上、見やすさ等のために RTL を手修正した際に使用されると便利です。

(3) 異デバイス間の論理比較

試作用の FPGA ネットリストと量産用の ASIC ネットリストの論理比較、他社 FPGA デザインから ALTERA FPGA デザインへ変更した際の論理比較に利用できます。

(4) 一部ブロックの修正後に他ブロックの自動検証

しかも、影響しない信号は変わらないとの先入観から目視確認はバグを見落とすケースが多くなります。回路修正に影響しない信号Aの波形は自動で確認しましょう。

(5) チップレベルとブロック単体のシミュレーション結果の比較

単体ブロックの論理検証では問題ないのに、各ブロックと各テストベクタを統合したチップレベルでのシミュレーションではミスマッチすることがあります。

  (a) 該当するブロック用のテストベンチでエラー

ブロック単体とチップレベルでのシミュレーション結果を 波形比較 で比較すると便利です。ModelSim DE の 波形比較 は階層やピン名が異なっていても対応できます。

  (b) 該当するブロック以外のテストベンチでエラー

この場合は、『波形比較』よりも『アサーションベース検証』 を使用されるのが便利です。ModelSim DE には アサーションベース検証 機能が標準で搭載されています。

(6) 同じデザイン内で個別信号間の比較個別信号間で比較することができます。

信号経路が異なる信号間の検証に便利です。

(7) 流用ブロックの不要機能削除

流用したブロックから使用しない回路(機能)を省いてエリアを縮小することがあります。 不要回路の削除が他に影響が無いことを『波形比較』 を使って確認できます。

上記内容についてのお問い合わせやご質問がございましたら、お気軽に弊社までご連絡ください。

 ModelSim の詳細はコチラ 

 

【1】アサーション検証とは

【2】コードカバレッジとは

【3】波形比較とは

【4】エンハンスド・データフローとは