FC2カウンター FPGAの部屋 2008年04月01日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ISE10.1iのChipscope Proチュートリアル2 (Verilog版DDR SDRAMコントローラのテスト回路)

ISE10.1iのChipscope Proチュートリアル1 (Verilog版DDR SDRAMコントローラのテスト回路)の続き。

次にウインドウに行く。
Chipscope_tutorial_7_080330.png

ここでは何も触らずに、Next> ボタンをクリック。
Trigger Parametersタブが選択されたウインドウが開く。ここではトリガ条件を設定する。
Chipscope_tutorial_8_080330.png

いろいろ設定するところはあるのだが、Trigger Width がトリガビットの数を決めるので4ビットにした。今回はトリガポイントを移動して、何回目のエラーポイントを見たいという要求が合ったので、Counter Width を4とした。これはAnalyzerでそのカウンタの幅だけ遅延したトリガポイントを見ることができる。これで設定は終了したので、Next> ボタンをクリック。
次はCapture Parmeters を設定するウインドウが開く。
Chipscope_tutorial_9_080330.png

最初は Data Same As Trigger にチェックが入っていると思う。これだとデータとトリガは同じビットということになるので、データを指定する必要がない。つまり前に Trigger Width を4ビットとしたら、データ幅も4ビットとなる。見るデータが少なければそれでも良いが、今回はデータを32本も見たいこともあり、 Data Same As Trigger のチェックをはずしてデータとトリガを別の信号とした。
Data Width が設定できるようになるので、適当に大きい数 (100) を設定。これは後で最適な値にあわせる。そういえば、ピンクの四角で囲むのを忘れてしまったが、Data Depth を1024 Samplesに設定する。これは波形を保存しておくBlock RAMの使用量を見ながらお好みで。。。
次に、Net Connections ウインドウが開く。
Chipscope_tutorial_10_080330.png

Modify Connections ボタンをクリックして、どの信号をトリガやデータとして登録するかを決める。
Select Net ダイアログが開く。まずは動作クロックを選ぶ。最初は Net Selections ペインの Clock Signals タブが選択されていると思う。
Chipscope_tutorial_11_080330.png

Pattern コンボボックスに *clk* と入力すると、clkと名前のついた信号名が下に表示される。その中のclk_out を選択して、これをChipscopeのクロックとするために Make Connections ボタンをクリックする。これで Net Selections ペインの Clock Signals に clk_out が入ってChipscopeの動作クロックを指定することができた。
次にTrigger Signals を指定しよう。Trigger Signals タブをクリックする。
Chipscope_tutorial_12_080330.png

前に Trigger Width を4ビットとしたので、CH:0からCH:3までの指定ができる。4ビット分のトリガ信号を指定していく。ここでは最初に read_error 信号を 動作クロックを選ぶのと同様に検索し選択して、Make Connections ボタンをクリックしている。
ここで注意としては、見たい信号はなるべくFFにしておくことだ。組み合わせ回路だと論理合成時に他の信号と統合されてなくなってしまうことがある。というか多い。FFにしておけばインスタンスはあるので安心だ。
同様にして、Trigger Signals の全チャネルを指定していく。
Chipscope_tutorial_13_080330.png

次は Data Signals を指定する。 Data Signals タブをクリックする。
Chipscope_tutorial_14_080330.png

ここで Trigger Signals に指定した信号を入れたい。Pattern: のコンボボックスの右の下向き三角をクリックすると以前に入れたフィルタ情報の履歴があるので、*read_error* を選択して信号名をその下に表示して、選択、Make Connections ボタンで CH:0 へ接続する。
同様にデータ信号を一網打尽に検索、選択してMake Connections ボタンで CH へ接続する。
Chipscope_tutorial_15_080330.png

ここで一番苦労するのは、信号名が統一されてしまうことだ。XSTは階層をフラットにする指定にしている。階層を残す指定にすれば、右上のStructure/Nets に階層が表示され、信号名もある程度残っていて便利なのだが、インプリメントの品質に問題が出る場合や、論理合成がエラーになるときがあるので、特に動作スピードの必要なDDR SDRAMコントローラでは使わないようにしている。
下の画面で rddata_fifo_inst/outff_flag を選んでいるが、これは出力データのイネーブル信号である rddata_valid の成れの果て?である。このように、階層トップのwire信号はほとんどないので、下の階層のファイルの下の信号名を見つけて来る必要がある。
これが面倒くさい。もうちょっと信号を入れたいがもういいか?と思ってしまう原因だ。
Chipscope_tutorial_16_080330.png

後はexpected_read_data を入れて、とりあえずこれで終了。
Chipscope_tutorial_17_080330.png

まだ赤い未接続の信号が残っているが、OK ボタンをクリック。
ChipScope Pro Core Inserter ウインドウに戻る。Net Connections ペインの DATA PORT の項はまだ未接続の信号があるので赤くなっている。
Chipscope_tutorial_18_080330.png

Capture Parameters タブをクリックする。
Chipscope_tutorial_19_080330.png

Capture Settings の Data Width: を先ほどつないだ信号のみ、つまり赤い未接続の信号がないように69に変更する。
Net Connections タブをクリックして Net Connections を見ると、Net Connections ペインの DATA PORT の項は未接続の信号がなくなったので、黒くなっている。ちなみにこの丸に横棒のところをクリックすると、各接続信号が見える。
Chipscope_tutorial_20_080330.png

Return to Project Navigator ボタンをクリックする。
Save Project ダイアログが出るので、はい(Y)ボタンをクリックするとISEに戻る。
Chipscope_tutorial_21_080330.png


今日はとりあえずここまで。

ISE10.1iのChipscope Proチュートリアル3 (Verilog版DDR SDRAMコントローラのテスト回路)に続く。
  1. 2008年04月01日 18:52 |
  2. Chipscope
  3. | トラックバック:0
  4. | コメント:0