FC2カウンター FPGAの部屋 Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路9(インプリメント3)
FC2ブログ

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

FPGAの部屋

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

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路9(インプリメント3)

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路8(インプリメント2)”の続き。

133.33MHzクロックのデータパスの遅延が8.891nsec となって、制約の7.5nsec を満足できない。(分けあってISE12.1)
以前に、ddr2_burst_testプロジェクトを133.33MHzに変更して、インプリメントしたときはタイミングがメットしていた。
CamDispCntrler_DDR2_22_100805.png

何で、タイミング制約を満足できないのだろうか?よしということで、ddr2_burst_testプロジェクトのddr2_sdram_cont の配置制約をすべていただいて、CMOSカメラ・ディプレイ回路の配置制約として使えば、タイミングを満たすことができるのでは?と考えたので、実行してみた。
PlanAheadで配置配線後の配置制約をUCFに書き出す”の手順でddr2_burst_testプロジェクトの配置制約をUCFファイルに出力して、それを、CMOSカメラ・ディプレイ回路のUCFにコピーした。それでインプリメントをしてみたが、所々で制約がエラーになってしまった。エラーを1つ1つコメントアウトして、インプリメントが通るようになった。下が、書き換えたUCFだ。
CamDispCntrler_DDR2_23_100805.png

エラーが出たところをコメントアウトしてある。
これでインプリメントしたが、やはり、タイミングエラーがなくならない。下図にTiming Analyzer の表示画面を示すが、かえって悪くなってしまった。
CamDispCntrler_DDR2_24_100805.png

ddr2_burst_testプロジェクトからコピーした制約は削除した。
今度はcam_pclkのCLOCK_DEDICATED_ROUTEを削除して、上手くタイミングエラーが出なくなるかどうかを確かめてみることにした。

NET "cam_pclk" CLOCK_DEDICATED_ROUTE = FALSE;
PIN "clk_cam_dcm_inst/DCM_SP_INST.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE;


を削除して、clk_cam_dcm_instは下図の右側のDCMを使用するので、clk_cam_dcm_instが使用するクロックを左側4つのグローバルクロック入力のどれかを使用すれば良いはず。基板の制約でそのグローバルクロック入力ピンには接続はできないが、もし接続できたら、タイミングエラーが発生しないのかを調べる。ここでは、D11のグローバルクロック入力に、cam_pclkの入力ピンを仮に設定してみることにした。(D11はグローバルクロック入力の左端。長四角の下に三角が付いたコンポーネントです)
CamDispCntrler_DDR2_20_100804.png

# NET "cam_pclk" LOC = A12;
NET "cam_pclk" LOC = D11;


これでインプリメントしてみたが、やはり、タイミングエラーがなくならない。
CamDispCntrler_DDR2_25_100805.png

ddr2_sdram_cont 内で完結してる、7.5nsecのクロック1周期分よりデータパスの遅延が長くなったという、言わばまっとうなタイミングエラーだけに、ソースの修正が必要かな?
しかし、ddr2_burst_testプロジェクトで大丈夫というのを確認していただけに、納得ができない。。。
  1. 2010年08月05日 05:52 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1546-ecb78f38
この記事にトラックバックする(FC2ブログユーザー)