FC2カウンター FPGAの部屋 2011年03月03日
FC2ブログ

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

FPGAの部屋

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

Coregenで作成したFIFOのバグ

ここ2日ほど、Coregenで作成したFIFOのバグで悩んだので、その顛末を書いておく。
結論から先に書くと、Project Navigator のプロジェクトを作り直したら正常になった。

使用したFPGAは、Spartan-3E xc3s500e-4pq208、ISE12.4とISE13.1を使用して、どっちも同じ状況だった。
いつものように、プロジェクトが入ったフォルダをコピーして、改変を開始した(最初はISE12.4)。今回は、方式を大幅に変更した。以前のゴミが残るが、とりあえず無視して非同期FIFOや同期FIFOを追加して、追加した。(ちなみに、そのフォルダの下にソースファイル用、シミュレーション用、インプリメント用(各ISEのバージョンごと)にフォルダを分けています)
全体をインプリメントすると、SLICEMがオーバーしてしまった。そんなはずは無いのだが?cam_afifoは、34ビット幅で16深度なので、こんなに使うはずはない?
Coregen_1_110303.png

とりあえず、cam_afifoを分散RAMからBlockRAMにしても、BlockRAMが使われずにSLICEMがオーバーしてしまう。Camera_Controller.vhdをトップにしてやってもオーバー。
Coregen_2_110303.png

どうも、分散RAMで深度1Kワード程度で固定されて、Coregen を起動してパラメータを変更しても、変更されない気がする。
そのうちにISE13.1が出たので、インプリメント用のフォルダだけコピーして、ISE13.1にプロジェクトを変換してやってみたが、同じ状況だった。ここからISE13.1で作業を継続した。

1.インプリメントフォルダの下のipcore_dirフォルダの下のcam_afifo関連のファイルをすべて削除して、FIFO IPを新規作成してみたが、やはりダメ。
2.Project Navigator のProjectメニューからCleanup Project Files...でプロジェクトファイルを消してみてもダメだった。

最後に、プロジェクトを新規作成して、FIFO IPを新規作成したら、問題なくなった。下にそのISE13.1のProject Navigator の画面を示す。
Coregen_3_110303.png

使用しているLUTが116で正常に戻った。

Coregen で生成したIPがおかしい時は、素直にプロジェクトを作り直した方が良さそうだ。
  1. 2011年03月03日 12:30 |
  2. Core Generator
  3. | トラックバック:0
  4. | コメント:4

ISE13.1(Project Navigator比較)

前回、Spartan-6ではインプリントの結果が異なったようだが、Spartan-3Aではどうかな?と思って、Spartan-3A Starter Kitのカメラ表示回路でテストしてみた。
結果はISE13.1とISE12.4でインプリント結果に変化はないようだ。

ISE12.4
ISE131_3_110303.png

ISE13.1(ISE12.4用のIPコアをUpdate Core to Latest Versionで最新のIPコアに変更した)
ISE131_4_110303.png

ISE13.1のProject NavigatorにはIPを最新のバージョンに変更できる機能が付いた。Update Core to Latest Versionだ。これをダブルクリックすると最新のIPコアに変更することができる。ただ、Manage Coreを起動したときのCoregenのプロジェクトはなくなってしまうようだ。
ISE131_5_110303.png

ISE13.1ではKintex7とVirtex7を選択することができた。なぜかArtex7は選択項目がなかった?リリースが後なのかな?

すみません。PlanAheadについては別記事に移動して、タイトルを変更しました。

  1. 2011年03月03日 05:57 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:0