Viretex4のお勉強
Virtex4の入力用DDRレジスタ(IDDR)1
(Virtex4
のお勉強をするに当たって入力用DDRレジスタ(IDDR)からやってみたいと思う。IDDRをみると、3つのモードがあるようだ。そのうちの
OPPOSITE_EDGEモードからやってみようと思う。FPGA Editorで確認。シミュレーション波形を確認。Timing
Analyzerでセットアップ時間を確認。Virtex2の入力DDRと同じ波形)
Virtex4の入力用DDRレジスタ(IDDR)2
(IDDRをSAME_EDGEモードにしてみた。FPGA Editorで確認。シミュレーション波形を確認。クロックの立ち上がりで出力が変化するようになった)
Virtex4の入力用DDRレジスタ(IDDR)3
(IDDRをSAME_EDGE_PIPELINEDモードにしてみた。FPGA
Editorで確認。シミュレーション波形を確認。更にFFが入って遅れたが、立ち上がりエッジでサンプルされたデータがq1に、次の立下りエッジでサン
プルされたデータがq2に整列されて出力されるようになった)
Virtex4のIDELAY(FIXEDモード)
(Virtex4
のIDELAYのお勉強をしようとおもう。IDELAYはILOGICブロック(IOブロック)のプログラマブル遅延エレメントで0から63までの遅延
タップがある。 固定遅延モード(FIXEDモード)をやってみた。FPGA Editorで確認。Timing
Analyzerでタップの遅延時間を確認した)
Virtex4のIDELAY(VARIABLEモード)
(Virtex4
のIDELAY(VARIABLEモード)についてお勉強した。今度はCEとINCがあるので外部ポートから入力することにした。CEが1でINCが1の
時に遅延が増えて、CEが1でINCが0の時に遅延が減る。2クロックに1回増減するようだ。FPGA
Editorで確認。シミュレーション波形を確認。Timing
Analyzerでセットアップ時間を確認。CEの値によって、遅延が増減する。全ソースも表示)
Virtex4のリージョナルバッファ(BUFIO、BUFR)
(Virtex4
のリージョナルバッファのBUFIO、BUFRをテスト。リージョナルバッファは部分的な領域のクロックバッファのようなものだ。部分的なクロック領域は
Vitex2シリーズとは違ってCLB16個(IOB32個分)の高さ、チップの1/2の幅に固定されているそうです。ソースを表示。PACEで配置を決
定。BUFRを使用してインプリメント。FPGA EdirotでVirtex2にインプリメントと比較。Timing
Analyzerで遅延を見てみた。最後にBUFIO,BUFRの部分をFPGA Editorで見てみた)
Virtex4のFIFO(FWFTモード)
(Virtex4
のFIFOのFWFT(First Word Fall
Through)モードについて考察した。FWFTモードはemptyが0になった時にdo(data
out)に最初のデータが出ているモードだ。FPGA
Editorで見るとVirtex4ではFIFO16というプリミティブが入っていた。シミュレーション波形を確認した。コアジェネレータのFIFOジェ
ネレータでもFWFTモードを指定できることがわかった)
Virtex4のISERDESのお勉強
(Virtex4のISERDESのお勉強をしてみたが今のところTranslateで原因不明で止まってしまっている。OSERDESの方を先にやってみることにする。)
Virtex4のOSERDESのお勉強
(Virtex4のOSERDESをインスタンスしてみたがやはりISERDESと同じだった。やはりTranslateで原因不明で停止してしまう)
ISERDES,OSERDESのその後
(ISERDES,
OSERDESはこの前のファイルではうまく行っていないが、面白いことがわかった。もうすでに皆さんご存知かもしれないが、
Virtex4の入力用DDRレジスタが入っているILOGIC、出力用DDRレジスタが入っているOLOGICはそのままISERDES,
OSERDESのようだ。FPGA Editorで確認)
ISERDESのお勉強の続き1
(DDR2-SDRAMを使うために、もう一度ISERDESのお勉強。ユーザーズマニュアルのサンプルをインプリしてみたが、うまくいかない。自分で修正したところうまくインプリできた。ついでに新しいTiming Analyzerの使い方)
ISERDESのお勉強の続き2
(ISERDESのお勉強の続き1の続き。Floorplan Editorを立ち上げ、配線や配線遅延を確認する。任意パス間の遅延を見る機能で、clk_inとDinの遅延の差を解析)
Virtex4のDCM
(Virtex4ではDCMプリミティブを使うのではなく、DCM_BASE, DCM_PS, DCM_ADVの3つのプリミティブを使う)
OSERDESのお勉強
(DDR2
SDRAMコントローラを作っていると、DQなどの入出力ピンの入力をISERDESにして、出力をODDRにすると、どうもPlace &
Route でルートできないといわれてエラーになってしまう。ということでOSERDESについて詳しく調べてみた)
OSERDESとISERDESその後
(DDR2 SDRAMコントローラ関連のOSERDESとISERDESの問題にはまっている。どうも最後でPlace & Routeで配線できないと言われてエラーになってしまう。)