”
SignalTapⅡを使ってみる2(SignalTapⅡをやってみたがエラーで悩む)”で、SignalTapⅡの波形をキャプチャすることができたので、VCDファイルを出力して、Veritakでシミュレーション波形と比べてみることにした。
Veritakの波形比較機能については、”
Veritak 3.68AのChipScopeとシミュレーションの波形比較機能”を参照。
まずはSignalTapⅡからVCDファイルを出力しよう。FileメニューからExport... を選択する。

Exportダイアログが開く。File name: を設定して、Export format: をValue Change Dump - (*.vcd) にする。SignalTapⅡではClock Period が入力できた。これは40ns に設定する。

QuartusⅡのダイアログが表示されるのでOKをクリックする。

CharDispCtrlerTest1.vcd が出力された。

さてこれで、SignalTapⅡでのVCDファイルの出力は終了したので、Veritak-Basic Version3.71Cでシミュレーションを行う。
Veritakでプロジェクトを作成して、シミュレーションを行う。その際に、AlteraのIPを使用しているので、90sp1/quartus/eda/sim_lib/220model.v と90sp1/quartus/eda/sim_lib/altera_mf.v をプロジェクトに追加した。(たっくさん、教えていただいてありがとうございました)

本当はVGA_VSYNCが出るところまで、20ms程度シミュレーションしたかったのだが、ディスク容量の関係で無理なので、40us シミュレーションてみた。(下の図、disp_timing_inst のすべての信号をWaveform Viewer 1に入れてある)

先ほど出力したCharDispCtrlerTest1.vcd をプロジェクトに入れて、プロジェクトを再ロードし、シミュレーションを行う。

Scope Tree ViewウインドウからVCDファイルのdisp_timing_inst を選択した状態で、右クリックして、”信号をWaveform Viewerに追加する”から”波形比較用の信号をこの階層以下から自動選択し追加する”を選択する。

シミュレーション波形の下にSignalTapⅡの該当するVCD波形(水色の波形)が挿入される。

ユーティリティメニューから”VCD波形のスタート時刻を変更する”を選択し、VCD Timestart Shift Dialog を表示する。これでシミュレーション波形の位置とVCDファイルの波形の位置を合わせてみた。

AlteraのVCDファイルはバスの信号のビットの並びが逆順になっているようだ。よってバスは比較が難しいが、1ビットの信号同士は比較ができた。
2009/07/24 追記
Veritakの作者のたっくさんに、Veritakを使いやすいように修正していただきました。Veritakのバージョンは3.72Aです。このVeritak Version 3.72Aを使用してもう一度書いてみます。
SignalTapⅡのVCDファイルの信号のうちh_point[0:10] を左クリックし選択し、その上で右クリックして、右クリックメニューから”グループ化”-”選択した信号のビットを逆順にする”を選択する。

すると、h_point[10:0]に変わって、赤い部分(違っている部分)がなくなった。同様にv_pointも同様の操作を行った。

v_pointが赤くなっているのは、SignalTapⅡのキャプチャした波形が最初のh_sync_pulse とは限らないからだ。SignalTapⅡのトリガ条件にv_pointがオール0という条件を加えて波形をキャプチャすればv_pointの値も合うものと思われる。
そういえば、以前Spartan3 Stater Kit での”
キャラクタ・ディスプレイ・コントローラのシミュレーション”よりも大幅にシミュレーション時間が延びて、使用するディスク容量が増えた。これは、たっくさんの回答によると、
”PLL(DCM)が入ると浮動小数演算と時間分解能の関係で、どのシミュレータも、遅くなります。特にVeritakの波形圧縮方法だとメモリも食います。この点は、Xilinxも同じことが言えます。(Alteraの方がより食うのかもしれませんが比較したことはありません)”
とのことだった。
そういえば、Spartan3 Stater Kit での”
キャラクタ・ディスプレイ・コントローラのシミュレーション”はDCMを使用していない。
- 2009年07月23日 05:09 |
- SignalTapⅡ
-
| トラックバック:0
-
| コメント:2
前回、”
SignalTapⅡを使ってみる1(TalkBack機能をONにしてSignalTapⅡを起動)”でSignalTapⅡは起動できた。
さてこれから、観測信号を追加して観測する。
”
Tutorial for Quartus’ SignalTap II Logic Analyzer”を参考にしながら、SignalTapⅡを設定していった。(実際には左の真ん中のSetupタブの白い部分でダブルクリックするとNode Finderが起動するので、そこで観測する信号を選らんだ。後は右の真ん中でクロックを設定した)
一応設定が終了して、Run Analysis アイコンをクリックしてコンパイルした。

そうすると、一旦QuartusⅡに戻ってコンパイルするが、エラー発生。どうもライセンスがないのに、incremental compilation しているということらしい。

どうも、incremental compilation しているつもりはないのだが。。。
いろいろ検索してみて、良くわからなかったのだが、”
Error: SignalTap and incremental compilation”を見つけた。
それによると、CharDispCtrlerTest.qsf に
set_global_assignment -name INCREMENTAL_COMPILATION OFF
を追加すると、incremental compilation をしなくなるらしい。追加してQuartusⅡでコンパイルすると、今度はその部分はコンパイルが通ったが、今度はメモリを使いすぎたようだ。

SignalTapⅡに入れる信号を減らすことにした。上から3つの信号を削除して、もう一度QuartusⅡでコンパイルするとコンパイルが通った。

SignalTapⅡでトリガーを設定した。トリガーは一番下のv_sync_node が1の時とした。

これで、一番前の図で行ったRun Analysis アイコンをクリックするがなにも反応しない。どうもコンフィギュレーションされていないようだった。それではということで、QuartusⅡに戻ってProgrammer を起動して、コンフィギュレーションした。

その後、もう一度、Run Analysis アイコンをクリックすると信号のキャプチャが行われて、信号が表示された。

h_sync_pulse でトリガするとこんな感じの波形になる。

これでやっと波形をキャプチャすることができた。結構ハードルがあった気がする。ネットでもSignalTapⅡで検索しても、あまり情報は出てこなかったし、おまじないをする必要があるし、皆さん、あまりSignalTapⅡを使っていないのだろうか?
やはり、QuartusⅡのWeb Edition だと、インクリメンタル・コンパイルに対応していないので、.qsfファイルに”set_global_assignment -name INCREMENTAL_COMPILATION OFF”を書く必要があるのが面倒だ。。。
追記: SignalTapⅡからコンフィギュレーション
くりさんに教えていただいたSignalTapⅡからのコンフィギュレーション方法をやってみた。
右上のSOF Managerのところの... ボタンをクリックする。

Select Programming File ダイアログが開く。CharDispCtrlerTest.sof を選択し、”開く”ボタンをクリックする。

これで... ボタンの右の四角にCharDispCtrlerTest.sof が入ったので、Program Device アイコンをクリックして、FPGAにダウンロードする。

これでFPGAにコンフィグデータがダウンロードされ、SignalTapⅡで波形をキャプチャできる準備が整った。
- 2009年07月20日 04:22 |
- SignalTapⅡ
-
| トラックバック:0
-
| コメント:2
"
QuartusⅡでSignalTapⅡを試してみるまでの準備7(実際に動作させてみた)”で、キャラクタ・ディスプレイ・コントローラが動作したので、いよいよSignalTapⅡを試してみることにした。
QuartusⅡのToolsメニューからSignalTap ⅡLoginc Analyzer を選択する。

SignalTapⅡが立ち上がると思ったが、エラーのダイアログが出た。

TalkBackをONにしないとSignalTapⅡは起動できないようだ。TalkBackは似たようなのがXilinxにもあるが、どんなプロジェクトをコンパイルしたかというのを統計を取るのが目的のようだ。
TalkBackをONにしてみる。
ToolsメニューからOptions... を選択する。

Options ダイアログが表示される。General の下のInternat Connectivity を選択する。右側にTalkBack Options... ボタンがあるので、それをクリックする。

TalkBack Options ダイアログが開く。
Enable タグでTurn on the QuartusⅡ software TalkBack feature にチェックを入れてOKボタンをクリックする。

Options ダイアログに戻るので、OKボタンをクリックする。これでTalkBackをONに出来たので、もう一度、SignalTapⅡを起動してみよう。
一度、QuartusⅡを閉じて、もう一度起動する。その後、QuartusⅡのToolsメニューからSignalTap ⅡLoginc Analyzer を選択する。
今度はSignalTapⅡが起動した。

TalkBackをONにしても、QuartusⅡを再起動しないと、SignalTapⅡは起動しなかった。これでSignalTapⅡを使うことができる。
- 2009年07月18日 21:06 |
- SignalTapⅡ
-
| トラックバック:0
-
| コメント:0