FC2カウンター FPGAの部屋 2009年06月16日
FC2ブログ

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

FPGAの部屋

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

ChipScope Pro 11.1

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

左のSignalsペインのData Portの信号も右クリックからAuto-create Buses...を選択することができる。
ChipScope_111_2_090616.png

一番良かったのは、WaveformのBus/Signalの表示方法だ。
今までは、階層の深い長い信号名と階層の浅い短い信号名があると、どちらかの信号はよくわからない表示しかできなかった。つまり階層の浅い短い信号名に表示を合わせると階層の深い長い信号名は階層の初期部分のみの表示となって、どの信号かわからない。階層の深い長い信号名の信号を読めるようにすると、階層の浅い短い信号名は空白が表示されて読めなくなっていた。
今回のChipScope Pro 11.1では、どの信号も信号名の右合わせで表示される。これは、ModelSimの表示と同様だ。便利。。。
例えば、下の図のように新語名の長さが違う信号がある。
ChipScope_111_3_090616.png

このBus/Signalの幅を縮めても全部の信号名が見える。
ChipScope_111_4_090616.png

次にChipScope Pro 11.1とは直接関係がないが、XSTを使ってタイミングが厳しくXSTで階層を保持するオプションを使えない場合のチップスを書いてみようと思う。
それは、この前やり方を覚えた(* KEEP_HIERARCHY = "TRUE" *)を使う方法だ。自分が信号を見たいモジュールだけをこれで階層を保持するようにすることだ。これで階層を保持するとChipScopeのインサーターに階層が見え、内部の信号もかなりキープされるようだし、インサーターで信号名を見つけるときに階層があるので見つけやすい。
下の図の下から3つ目までは、階層から信号を確保しているし、上から3番目のemptyはLUTの出力なので、階層を部分的にキープしなかったら、なくなっていたかもしれない。
ChipScope_111_3_090616.png

これは、async_fifo_rise.vとasync_fifo_fall.vに(* KEEP_HIERARCHY = "TRUE" *)属性を付けてインプリメントした。

(* KEEP_HIERARCHY = "TRUE" *)module async_fifo_rise (


これでインプリメントしても制約は満足している。
このように、見たい信号があって、XSTで階層をキープできない場合は、モジュールごとに部分的に階層をキープしてChipScopeで信号名を見つけやすくしながら、インプリメントの品質も確保することができることが分かった。

皆さんもいろいろ便利なやり方があったらご紹介ください。

さて、肝心のSpartan3A Starter KitのDDR2 SDRAMコントローラだが、ChipScopeの解析の結果リードデータはだいたい受けられているが最初がおかしいことが分かった。それはまたあとで。。。
  1. 2009年06月16日 05:22 |
  2. Chipscope
  3. | トラックバック:0
  4. | コメント:2