Veritakの最もユニークな機能です。.
ドライバの記述に飛んでいく機能です。WaveformView "エディタ ドライバ記述へ飛ぶ"で、ドライバ記述.に飛びます。
これには、Trace Debug Mode でコンパイルする必要があります。
例で見ていきましょう。
Load Project "124test1.vtakprj"
Select [3:0] a, 右クリック => エディタ ドライバ記述へ飛ぶ
するとT1カーソル時のドライバに飛んでいきます。.
飛んできましたが、ここは、宣言箇所で、ドライバではありません。
この時点T1 cursor time (294215ps)では、代入記述が未だされていない為です。
そこで、少しT1カーソルをずらしてもう一度やってみます。
今度は、いいみたいです。(ライン37)
もう一つの例です。. エディタ ドライバ記述へ飛ぶ [480:1] str .
確かに飛んできました。
Multiple Destination
"[1:0] resolve_source"で、エディタ ドライバ記述へ飛ぶ. をやってみると、ビット展開してください
すると 飛び先が分かれている。。 と言われますので、ビット展開して、resolve_source[0].を指定します。
.結果が下ですが、確かに1が代入された箇所に飛んでいます。
Multiple Driver
今度は "[1:0] resolve_wire"でやってみます。飛び先が分かれている。。 複数のドライバがある。。の後、.
Resolver7[1] と Resolve_source[0]で飛んでみます。
resolve_source[0]の結果です。確かに1が代入された箇所に飛んでいます。.
Verilog-HDLでは、複数のドライバの衝突は、次の関数で解決しています。
この関数は、LRMで定義されており、strengthが同じなら次のテーブルになります。
この例では、定数 1 と resolve_source[0]が Resolverの入力だったことになります。.
このようにVeritak のtrace modeはResolverの入力表示機能を有しています。
もう一つの例
[7:0] counter valueが8'h0c=>8'h16にジャンプしていますが、どうしてこれが起きたかを解析してみましょう。.
エディタ ドライバ記述へ飛ぶ [7:0] counter Line 189に飛んできました。.
bcounter をダブルクリックしてtool-tipを出します。.
8'h17.になっています。
.
そこで、 "bcounter" を WaveformView.に追加します。
WaveformViewから、,[7:0] counter は、[7:0] bcounterを at line 189 Non-Blocking statementでロードした結果であることが分かります。
Trace Mode と Debug Mode の違い
Debug Modeとの違いをまとめると、下表になります。
Debug Mode | Trace Mode | |
EditorTooltip 時刻 |
シミュレーションエンジンが生きている間の現在値を指します。シミュレーションエンジンが終了するとToolTipはでません。 | T1カーソルの時刻を指します。シミュレーションエンジンが終了していてもOKですが、T1カーソルが出ていないと時刻が指定されないため、Tooltipはでません。 |
インスタンス | ScopeTreeViewと連動していません。ファイル名と行番号から推定されるインスタンス全部を表示、追加になります。 | ScopeTreeViewと連動しています。インスタンスが一つに限定されるため、波形追加もインスタンスを指定した形で限定的に行え、よりトレースしやすくなります。ただし、選択されていないScopeのソースを指定しても無視されます。従いViewからEditorに行くようにしてください。 |
速度 | 1とします。 | 2-3倍に遅くなります。RTL記述によります。 |
メモリ消費量 | 1とします。 | 2-3倍になります。RTL記述によります。 |
SDF | 小規模なら、可能です。 | 内部でトレースモードはDisableされます。 |
付加Scope | ありません。 | Resolve_Scopeという名前のScopeが、TreeViewに表示されます。 これは、Veritak内部で使用しているもので、無視してください。 |
Tips:: Trace Mode1,2を使った解析例が、下記Section5にあります。
http://www.sugawara-systems.com/opencores/yacc/index.htm