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

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

FPGAの部屋

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

CMOSカメラから画像を入力してディスプレイへ出力7

ModelSimの文法エラーチェックが終わったので、ISE11.3でインプリメントをしてみることにした。
プロジェクトを作成して、インプリメントしたが、やはり結構ミスがあった。それを修正してPlace & Routeまで通ったと思ったらエラー発生。エラーは下の内容。

ERROR:Place:1012 - A clock IOB / DCM component pair have been found that are not placed at an optimal clock IOB / DCM site pair. The clock component is placed at site . The clock IO/DCM site can be paired if they are placed/locked in the same quadrant. The IO component is placed at site . This will not allow the use of the fast path between the IO and the Clock buffer. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a WARNING and allow your design to continue. However, the use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design. A list of all the COMP.PINs used in this clock placement rule is listed below. These examples can be used directly in the .ucf file to override this clock rule.


Camera_Disp_14_090930.png

以前にあった”Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストのインプリメントエラー”ともちょっと違うようだ。(後でDCMは固定する必要があるのかもしれないが。。。)
cam_pclkのSpartan3E-500-PQ208パッケージでのピン位置はP20 で、グローバルクロック入力に割り当てられていない。これでは、クロック用の専用配線が使えないので、不利なのだが、一応 CLOCK_DEDICATED_ROUTE制約を入れて、試しにP&Rしてみることにする。下のような制約をUCFファイルに追加した。

PIN "cam_pclk" CLOCK_DEDICATED_ROUTE = FALSE;


これでPlace & Routeしたらまたエラー。エラー内容は下。

ERROR:Place:1012 - A clock IOB / DCM component pair have been found that are not placed at an optimal clock IOB / DCM site pair. The clock component is placed at site . The clock IO/DCM site can be paired if they are placed/locked in the same quadrant. The IO component is placed at site . This will not allow the use of the fast path between the IO and the Clock buffer. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a WARNING and allow your design to continue. However, the use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design. A list of all the COMP.PINs used in this clock placement rule is listed below. These examples can be used directly in the .ucf file to override this clock rule.
< NET "cam_pclk" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "DCM_module_24MHz_inst/DCM_pclk.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; >


ご親切にも、UCFの書き方を教えてもらったので、指定の通りに書き直したらインプリメントが通った。
しかし、PCLKをグローバルクロック入力に割り当てないとは???これは使ってはいけないのか?
OV7640のデータシートのFigure 5 Row Output Timing DiagramにもPCLKに同期して画像のデータが出るようにタイミングチャートが書いてあるのに?なんで???
不可解だがしょうがない。これではタイミングがどうなっているか危ないので、なるべくIOピンにタイミング制約をかけることにする。
タイミング制約は例によってProcessesペインのUser Constraints -> Create Timing Constrints からConstrinats Editor を起動して行う。(この辺のやり方は、”ISE11.1iのチュートリアル3(制約 (UCF) の作成)”を参照のこと)
立ち上がってみると、cam_clkはUnconstrained Clocks に分類されてしまっている。。。(これは制約をかければ上のウインドウに行くようだ。)
Camera_Disp_15_090930.png

これは違うクロックでやるしかないかな?どうしてPCLKをグローバルクロック入力にアサインしなかったの?(愚痴です。。。)
こうなったら違うクロックで回路を動作させるしかないな。書き換えることにします。。。

(追記)
1番目のエラーと2番目のエラーは同一で、1番目のエラーの下を見たらexampleが書いてあったんでしょうね?またまた失敗です。。。

(またまた追記)
誤解があったので、Constraints Editorの使い方を研究して書こうと思う。だいぶ変更があるような気がする。
  1. 2009年09月30日 05:47 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0