Chipscope

なお、Chipscope Proの基本的な使い方に関しては、fpga-lab.orgさんの”ChipScope™ Proの使い方”に詳しく書 かれていますので、そちらを参照されると良いと思います。

Chipscopeについて
(Chipscopeの概要について)
Chipscope7.1iの使用法について
(Chipscope7.1は何かおかしいという記事。ちなみにChipscope9.1は問 題ない)
Chipscopeのクロックの配置について
(ChipscopeもFPGAの回路の一部なので、BUFGMUXを十分に使わせてあげない と、動作がおかしくなる。それを回避する方法。キャプチャ図解説付き)
Chipscopeの観測する信号をつなぎ直す
(Chipscopeは非常に便利なツールだが通常は少なくともネットリストに Chipscope回路を付加するので再度インプリメントしなくてはならない。FPGA Editorでお手軽につなぎなおす方法を解説。キャプチャ図解説付き)
ChipscopeのXカーソル、Oカーソルの移動
(こんなことも知らなくてお恥ずかしいが。。。ChipscopeのXカーソル、Oカーソルの 移動方法を解説。キャプチャ図解説付き)
ChipScopeの波形保存とModelSimでの表示方法
(ChipScopeでVCDで保存した波形をvcd2wlf.exe でwlfファイルに変換してModelSimで表示する方法。キャプチャ図解説付き)

 ISE10.1i のChipscope Proチュートリアル1 (Verilog版DDR SDRAMコントローラのテスト回路)
(ISE10.1iでのChipscopeの使い方のチュートリアル。Verilog版DDR SDRAMコントローラのテスト回路を題材にしている。 1回目は、ISEからChipscopeのファイルを生成して、ChipScope Pro Core Inserter が起動するまで)
 ISE10.1i のChipscope Proチュートリアル2 (Verilog版DDR SDRAMコントローラのテスト回路)
(ISE10.1iでのChipscopeの使い方のチュートリアル。Verilog版DDR SDRAMコントローラのテスト回路を題材にしている。2回目は、ChipScope Pro Core Inserter でクロックとトリガ信号とデータ信号を選択して.cdc ファイルにセーブし、ISEに戻るまで)
 ISE10.1i のChipscope Proチュートリアル3 (Verilog版DDR SDRAMコントローラのテスト回路) 
(ISE10.1iでのChipscopeの使い方のチュートリアル。Verilog版DDR SDRAMコントローラのテスト回路を 題材にしている。3回目は、ChipScope Pro Analyzer を立ち上げて、.cdc ファイルをロードすることで信号名をロードする。バスのデータを指定する。トリガをかけて波形を観測する。今までの設定をプロジェクトとしてセーブする。 以上の作業を書いている)

ChipScope Pro 11.1
(Spartan3A Starter KitのDDR2 SDRAMコントローラだが、やはりどうして動作しないかわからないので、ChipScope Pro 11.1の評価版をダウンロードして使用してみた。
ChipScope Pro 11.1の評価版を使ってみたところ、ビットファイルをコンフィギュレーションするときにCDCファイルも指定出来て、自動的にバスを作るオプションもあった。便利になっ た。)

ChipScope Pro11.2からVCDファイルをExport
(ChipScopeからVCDファイルをExportするやり方を書いておく。)
ChipScope を入れたらERROR:Pack:311 - Unable to resolve the conflicts... のエラー発生
(ISE10.1iSP3 にChipScopeのIPを入れたら、”ERROR:Pack:311 - Unable to resolve the conflicts between two or more collections of symbols which have restrictive placement or routing requirements.”のエラーが発生。)

CoreGen からChipScope Proを使用する1(ICONコアの生成)
CoreGen(CORE Genarator) からChipScope Pro(以下、ChipScope)コアを生成してDDR3 SDRAMをテストしたので、これをやってみたいと思っていた。疑問だったCDCファイル(信号名を記述したファイル)の対処方法もわかったのでブログに 備忘録を書いておこうと思う。
CoreGenでICONコアを生成する。
CoreGen からChipScope Proを使用する2(ILAコアの生成)
前回、CoreGen(CORE Generator)で、ICONコアを生成した。今回はILAコアを生成して、トップモジュールのVerilogソースを変更して、ICONコアとILAコアをインスタ ンスして、ILAコアに観測したい信号を接続する。
CoreGen からChipScope Proを使用する3(ChipScope Analyzerで波形を観察)
今 回は、ChipScope Analyzer で波形を観察する。だが、その前に、信号名を波形に反映させる必要がある。これをChipScope Analyzer のDataport に信号名をいちいち入れたのでは面倒だ。そこで調べてみるとFPGA EditorのILAダイアログで、ILAのデータポートにネット名を関連付けて、それをCDCファイルとしてエクスポートできることがわかった。その CDCファイルをChipScope Analyzer でimportすれば、信号名をwaveform ウインドウで使用することができるはずだ。

Chipscope Pro Core Inserterを入れる際の便利なオプション
XST のプロパティの -netlist_hierarchyの値をAs OptimizedからRebuiltに変更すると、階層が再構築されてネットが見やすくなる。ChipScopeがかけやすくなる。これは、 ChipScopeを入れなくてもRebuiltに変更した方が良い。

 ChipScope ProのVIOを使う1
ChipScope ProのVIO (Virtual Input/Output core)について書いておこうと思う。VIOは、ChipScopeで、VirtualなI/Oを実現できる。基板にスイッチやLCD,LEDがなくて も、値を入力できたり、値を出力して目で見ることができる。スイッチや表示器が実装されていない基板で、便利に使用することができる。
 ChipScope ProのVIOを使う2
今度は、生成したICON, VIO, ILAコアを接続していく。前回のvio_aをクリックして、View HDL Instantiaion Template をダブルクリックすると、component文とインスタンスの例が出るので、それを参考にする。
 ChipScope ProのVIOをtclスクリプトで制御
”ChipScope ProのVIOを使う1”と”ChipScope ProのVIOを使う2”で、ChipScopeのVIOを使って、アドレスを入力してデータをChipScope Analyzer上に表示する方法を書いた。
今回は、ChipScopeのVIOをtclスクリプトから制御して、プログラムでアドレスを連続に入力しながら、出力されたデータをファイルに書き出す方法 を書こうと思う。使用したISEのバージョンは12.1。

 XPSで ChipScope Proコアを追加してデバック1 
Spartan3シリーズでは、BSCANユニットが1個しか入っていないため、 MicroBlazeでMDMユニットが入っているとChipScope Pro Inserter でChipScope Proを挿入することができなかった。
EDKでは、XPS上でChipScope ProのコアをAdd IPすることによって、ChipScope Proを使用することができるようなので、やったみた。
 XPSで ChipScope Proコアを追加してデバック2 
XPSでChipScopeコアを追加して、ChipScope Pro Analyzerを立ち上げSpartan3シリーズのEDKでChipscopeでデバックすることができた。

 ChipScope AXI Monitor を試してみた 
今回は、ChipScope AXI Monitor を試してみることにした。AXIバスのすべての信号をChipScopeで観察できる。

 ChipScope Analyzer でステートマシンのステートを表示する方法
ChipScope Analyzer でステートマシンのステートを表示させると通常は16進数しか表示しない。ChipScope Analyzer でステートマシンのステート名を表示する方法を試してみる。

ISE14.5以降の ISE で SDK と ChipScope Pro の協調デバックをする方法
”ZedBoard AXI4 Lite Slave 演習3(実機テスト)”でSDKとChipScope Pro(以下、ChipScope)を同時に使えなかった。以前は同時に使えたと思ったのだが。。。(ISE14.7を使用している)
そこで、検索してみたところ、Xilinx User Community Forums の”[14.6] SDK and Chipscope do not work together”がヒットした。
それによると、ISE14.4にロールバックして使っているとか。。。どうやらISE14.5からダメになったようだ。
そのページからリンクされたWordファイル、”Launch SDK and Chipscope.docx ‏”にやり方が書いてあったので、実際に確かめてみることにした。


ほかのカテゴリでのChipscopeの記事
あるパソコンでのPCIマスタアクセス波形
(XeonプロセッサのパソコンのPCI66MHz,64bitボードからパソコンのメモリへ PCIマスタリードしたときのChipscope波形。ChipScopeで信号をまとめてバスとして表示する方法)
inserted by FC2 system