FPGA/CPLD ホーム 製品・サービス ソフトウェア メンター・グラフィックス 機能検証 ModelSim® DE に搭載された検証機能【4】−エンハンスド・データフロー−

ModelSim® DE に搭載された検証機能【4】−エンハンスド・データフロー−

はじめに

メンター・グラフィックスの ModelSim DE は、検証に便利な機能を豊富に備えています。

今回はその検証機能の1つである 『エンハンスド・データフロー』 についてご紹介します。


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


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

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

【3】波形比較とは

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


『エンハンスド・データフロー』の機能

皆さんは、論理シミュレーションの出力波形に不具合を見つけた時に、どのように不具合原因の探索を行っていますか?回路規模が大きくなると、論理段数や分岐が多くなるので、不具合原因の探索に時間がかかりますね。このような時は、『エンハンスド・データフロー』を使用されると便利です。


『エンハンスド・データフロー』は実際の解析フローに沿って紹介すると分かりやすいので、今回は出力ピンが“ X (不定)”時の解析例で説明します。


(1) 波形ウィンンドウの表示

まず、シミュレーションを走らせて波形ウィンドウを表示します。

図1.の波形を確認すると、信号 “t_out” が “X(不定)” になっています。この原因箇所を探索してみましょう。


図1.波形ウィンドウ


(2) データフロー・ウィンドウの表示

図1.の矢印の波形が “X” になっています。この波形をダブル・クリックすると RTL から自動的に、図2.のように該当する回路図と信号だけの波形がすぐに現れます。これが、データフロー・ウィンドウです。

該当する回路図だけを表示するので分かりやすいですね。



図2.データフロー・ウィンドウ


(3) データフロー・ウィンドウの回路図と波形のリンク

波形と回路図上の信号値はリンクされています。

図2.の下の波形にある黄色のボーダを左右に移動させると、図2.のように回路図上の信号値も同時に変化します。出力ピンの変化がどの入力ピンによる影響なのか分かるので、時間のトレースバックによる原因特定に便利な機能です。


(4) 回路図のバックトレース

この NAND セルの出力ピンが “X” 時には、入力ピンの片方が “X” になっています。その入力信号をクリックしていくと、更に回路図が展開されて図3.の回路図になります。階層を経由しても、自動的に階層間を探索します。このように、データフロー・ウィンドウは、デザインの物理的な接続関係を調べるために使います。 プロセスからプロセスへと表示を展開していくことによって、接続が確認できます。


図3.データフロー・ウィンドウの回路図


(5) 不具合原因の特定

図3.の NOR セルの入力ピンの“HiZ”まで展開すると、この先へは回路図を展開しませんので、この NOR セルを調べます。


(6) RTL 記述の確認

回路図上の NOR セルをクリックすると、自動的に RTL のウィンドウが開かれて、該当する行が示されます。回路図で “Z” になっている “test_in” ピンが浮いていることが RTL の解析で判明します。これで、信号 “t_out” の “X” の原因が “test_in” ピンが浮いていることだと分かります。


図4.自動的に検索された RTL ファイル


(7) ChaseX 機能

上記はマニュアルで “X” の原因を探索しましたが、自動的に “X” の原因箇所まで探索する機能があります。NAND セルの出力ピン “X” を選択して、『 ChaseX 』を実行すると自動的に信号経路を探索して、NAND セルから NOR セルまでの回路図だけを展開します。不要な信号経路の回路図は表示されませんので視認性の高い回路図です。


上記『エンハンスド・データフロー』の主な機能をまとめると下記になります。

・RTL から該当する信号周辺の回路図を自動生成

・波形⇔回路図⇔RTL の相互リンク

・時間のトレースバックによる原因の特定

・不定値 X のバックトレース機能


『 その他の便利なデバッグ機能

ModelSim DE には、『エンハンスド・データフロー』以外にも便利なデバッグ機能があります。


(1) アサーション・ベース検証

複雑な回路のデバッグに便利なのが、アサーション・ベース検証です。不具合信号の上流となるブロックに、後からアサーション制約を追加して不具合原因を探索します。不具合原因を見つけたら、該当する機能の RTL 記述へはアサーション制約を入れることを社内の設計基準に追加すると社内の設計品質が高まります。


(2) Signal Spy

Verilog デザインではテストベンチからあらゆる階層の信号に柔軟にアクセスできますが、VHDL または Mixed-HDL デザインでは、階層下のVHDL 中の内部信号へアクセスするために、中間階層にもポートを追加するなどの処理が必要になります。このようなデザインについては、Signal Spy 機能を利用することで、デザインのソースコードを変更することなく、あらゆる階層の信号のモニタや、その信号に対して値を与えることが可能になります。


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

 ModelSim の詳細はコチラ 

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

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

【3】波形比較とは

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