FC2カウンター FPGAの部屋 2007年09月27日
FC2ブログ

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

FPGAの部屋

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

”Virtex4のお勉強”の目次

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の遅延の差を解析)
  1. 2007年09月27日 20:54 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”PSoC”の目次

PSoC、興味はすごくあるんだけど、やりたいことが見つからないといった状況です。

PSoCを試してみようと思った(アナログもプログラミングできるPSoCを試してみようと思った)
PSoCのデモボードを買ってみた(旧バージョンのMINIPROG1+Designer4.0限定版コンパイラセット(PS-MINIPROG1-C)をパステルマジックで買いました)
PSoCのデモボードが一応動いた(この前パステルマジックから購入したMiniProg1を動かしてみた。課題はセクション1のLEDの点滅。1HzでLED4をデューティ25%、LED1をデューティ50%で駆動する。PSoCのディジタルブロックを使ってPWMで波形を出力する)
サイプレスPSoC Expressセミナー(サイプレスPSoC Expressセミナーを申し込んだ)
サイプレス PSoC Express セミナー 2007(サイプレス PSoC Express セミナー 2007に行ってきた。PSoCの概要やPSoC Expressの使い方について説明を受けた。次にもらったボードを使った演習をした。ノートパソコンを持っていったので、PSoC Expressを立ち上げてサンプルを4つやった。 )
  1. 2007年09月27日 18:29 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0

”FPGAからクロック出力”の目次

FPGAから供給するクロックの位相(FPGAから外のデバイス(プロセッサやSDRAM)へ供給するクロックの位相がずれてしまう理由の概要を説明。ブロック図あり)
FPGAから供給するクロックの位相2(FPGAから外のデバイス(プロセッサやSDRAM)へ供給するクロックの位相のずれを実測値を測定した。この実測値は外部出力するクロックをFPGA Editorのプローブを使ってテストポイントにまわしたものなので、テストポイントにまわすまでのFPGAの配線遅延を含んでいる。クロック出力からテストポイントまでの遅延を実測値で補正した)
FPGA出力クロックの解析(FPGAから供給するクロックの位相2での実測値と、タイミングアナライザから計算した遅延に実力係数をかけたものを比較したらあわなかった)
FPGAから他のデバイスへクロック供給(今までのように外部フィードバックをするとDCMへのクロック入力遅延とフィードバック入力遅延が合わずにFPGA外部に出力するクロックの位相が入力クロックと合わずに困ることがあったので、FPGA内部フィードバックにすることにした)
外部フィードバックを使用しないFPGAからのクロック出力(FPGAから外のデバイス(プロセッサやSDRAM)へ供給するクロックをFPGA内部フィードバックにしたときの実測値とタイミングアナライザからの計算値を比較したら、大体一致した。この方式に決定した。
結局、FPGAのクロック出力するときに外部フィードバックを使用して位相を合わせる方式は、FPGA内のクロック入力パスとフィードバック入力パスのDCMまでの遅延を合わせこむのが難しいので、FPGA内部フィードバックの方が楽だという結論に達した)
  1. 2007年09月27日 05:52 |
  2. カテゴリ別の目次
  3. | トラックバック:0
  4. | コメント:0