FC2カウンター FPGAの部屋 Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストのインプリメントエラー
FC2ブログ

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

FPGAの部屋

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

Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストのインプリメントエラー

Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストのプロジェクト”で公開したSpartan3A Starter Kit のDDR2コントローラのバーストテストのプロジェクトをもう一度コンパイルしてみた。ChipScope Proが期限切れだったので、Removeしてインプリメントした。そうしたらPlace & Route でエラーとなってしまった。
Spa3A_StKit_DDR2Cont_1_090820.png

ISE11.2iにアップデートしたからおかしくなったのか?良くわからないが、エラーの全文を下に示す。

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 "SYS_CLK" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "dcm_DDR2_clk_inst/dcm_DDR2_clk_dcm/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; >


結局、clock IO とDCMの位置は同じ1/4の領域においておかないとまずいということらしいが、DCMの位置は制約をかけていないのになぜ~?
検索をしてみると、”31462 - 10.1i Spartan-3A PAR - 「ERROR:Place:1012 - A clock IOB / DCM component pair have been found that are not placed at an optimal clock IOB / DCM site pair」というエラー メッセージが表示される”が引っ掛かった。
それによると、最新版の 10.1 サービス パックで修正されているということだったが、11.2で戻ってしまったのか?
しょうがないので、DCMの配置制約をかけることにした。ProcessペインのUser Constraints -> Floorplan Area/IO/Logic (PlanAhead) をダブルクリックしてPlabAheadを起動する。
Spa3A_StKit_DDR2Cont_2_090820.png

PlanAheadが起動したら、下のI/O Ports からSYS_CLK を選択した。
Spa3A_StKit_DDR2Cont_3_090820.png

右上のDevice で白く示されたところがSYS_CLK パッド。これから1/4領域のところにDCMを配置すれば良いはず。
まずは、DCMの位置を制約するために、Create Site Constraint Modeボタンをクリック し、サイ ト制約作成モードに切り替える。
Spa3A_StKit_DDR2Cont_5_090820.png

EditメニューからFind... を選択すると、Find ダイアログが表示される。一番右のリストボックスでDCMを選択してOKボタンをクリックする。
Spa3A_StKit_DDR2Cont_4_090820.png

そうすると、下のFind Results にDCMが表示される。そのうちのdcm_DDR2_inst/dcm_DDR2_clk_dcm がクロックからつながっているDCMなので、それを選択する。そのまま、それをDeviceペインにドラック&ドロップする。
Spa3A_StKit_DDR2Cont_6_090820.png

下のようにアサインできた。
Spa3A_StKit_DDR2Cont_7_090820.png

これでdcm_DDR2_inst/dcm_DDR2_clk_dcm の位置を固定できた。
FileメニューからSave Flooorplan を選択する。
Spa3A_StKit_DDR2Cont_8_090820.png

すると、UCFにDCMの位置固定制約が書かれた。

INST "dcm_DDR2_clk_inst/dcm_DDR2_clk_dcm" LOC = DCM_X2Y3;


これでDCMの位置が固定されたので、PlanAheadを終了し、もう一度ISE11.2iでインプリメントしたら、無事にPlace & Routeが通った。しかし、1つタイミング制約を満足でなかった。ほんの少しなので、Place & Route のプロパティからCost Table の値を変えて何回かインプリメントを行った。最初は1だったが5を入れてインプリメントすると、全部のタイミング制約が満足した。
Spa3A_StKit_DDR2Cont_9_090820.png

インプリメント後のFPGA Editor の内容を下に示す。
Spa3A_StKit_DDR2Cont_10_090820.png

指定の位置にDCMがアサインされている。
これで一度、Spartan3 Starter Kit にコンフィグして動作を見てみたが、問題なく動作した。
  1. 2009年08月21日 05:16 |
  2. Spartan3A Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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