FC2カウンター FPGAの部屋 キャラクタ描画テスト回路の実機デバック3(配線の固定)
fc2ブログ

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

FPGAの部屋

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

キャラクタ描画テスト回路の実機デバック3(配線の固定)

前回、配線がとんでもないことになっていたので、以前のDDR2 SDRAMバーストテスト回路の配線をUCFに吐き出して、キャラクタ描画テスト回路の制約ファイルにコピーすることにした。
配線の制約ファイル(UCF)への吐き出し方については、”FPGA Editorで配置と配線を割り当てる3”を参照のこと。
最初にデータバスdq_dataの配線の制約を吐き出させる。FPGA Editor を起動して、Directec Routing Constraintsダイアログを起動して、dq_dataを選択して、制約を吐き出させる。
DDR2_burst_test_4_100220.png

これがその制約。

// 02/20 @ 12:51:22
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<0>"
ROUTE="{3;1;3s700afg484;a5bd1784!-1;-70632;26072;S!0;-159;0!1;2447;-605!"
"2;4489;301!2;4489;645!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<1>"
ROUTE="{3;1;3s700afg484;751a0e0!-1;-70632;19640;S!0;-159;0!1;1696;1720!2;"
"1784;1376!2;1784;1032!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<2>"
ROUTE="{3;1;3s700afg484;89ffb99b!-1;-70632;6136;S!0;-159;0!1;1696;1720!2;"
"1784;1376!2;1784;1032!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<3>"
ROUTE="{3;1;3s700afg484;61a7f9cb!-1;-70632;9192;S!0;-159;0!1;2447;-605!2;"
"4489;645!2;4489;301!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<4>"
ROUTE="{3;1;3s700afg484;5a9ec78e!-1;-70632;9512;S!0;-159;0!1;1696;1720!2;"
"1784;1376!2;1784;1032!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<5>"
ROUTE="{3;1;3s700afg484;c3906147!-1;-70632;5816;S!0;-159;0!1;2447;-605!2;"
"4489;645!2;4489;301!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<6>"
ROUTE="{3;1;3s700afg484;3cdde0e5!-1;-70632;19320;S!0;-159;0!1;2447;-605!"
"2;4489;645!2;4489;301!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<7>"
ROUTE="{3;1;3s700afg484;48045bde!-1;-70632;26392;S!0;-159;0!1;1696;1968!"
"2;1784;1032!2;1784;1376!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<8>"
ROUTE="{3;1;3s700afg484;8152c779!-1;-70632;40144;S!0;-159;0!1;1696;1720!"
"2;1784;1376!2;1784;1032!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<9>"
ROUTE="{3;1;3s700afg484;bfa7b4d9!-1;-70632;53328;S!0;-159;0!1;1696;2040!"
"2;1784;1376!2;1784;1032!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<10>"
ROUTE="{3;1;3s700afg484;ace04032!-1;-70632;36448;S!0;-159;0!1;2447;-605!"
"2;4489;645!2;4489;301!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<11>"
ROUTE="{3;1;3s700afg484;fc333603!-1;-70632;49952;S!0;-159;0!1;2447;-605!"
"2;4489;645!2;4489;301!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<12>"
ROUTE="{3;1;3s700afg484;4ce19306!-1;-70632;50272;S!0;-159;0!1;1696;1720!"
"2;1784;1032!2;1784;1376!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<13>"
ROUTE="{3;1;3s700afg484;7f7f4c8c!-1;-70632;39824;S!0;-159;0!1;2447;-605!"
"2;4489;301!2;4489;645!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<14>"
ROUTE="{3;1;3s700afg484;10d3a509!-1;-70632;36768;S!0;-159;0!1;1696;1720!"
"2;1784;1032!2;1784;1376!3;167;0;L!4;167;0;L!}";
NET "ddr2_sdram_cont_i/read_write_io_inst/dq_data<15>"
ROUTE="{3;1;3s700afg484;473a4c3d!-1;-70632;53648;S!0;-159;0!1;2479;-949!"
"2;4457;661!3;0;8!3;0;-336!4;167;0;L!5;167;0;L!}";


インスタンス名はキャラクタ描画テスト回路用に変更した。

次に、dqs_clk_nodeノードも遅延が大きいので、DDR2 SDRAMバーストテスト回路の配線の制約として吐き出させる。
DDR2_burst_test_5_100220.png

インスタンス名はキャラクタ描画テスト回路用に変更した制約を下に示す。同時にdqs_clk用のBUFGを固定した。

// 02/20 @ 12:48:23
NET "ddr2_sdram_cont_i/read_write_io_inst/ddr2_cont_iob_inst/dqs_clk_node<0>"
ROUTE="{3;1;3s700afg484;c20d0b8b!-1;-70632;12888;S!0;-159;0!1;-161;-887!"
"2;-1291;-2737!3;-29;-8091!4;259;-695!5;-1703;-139!6;108;53;L!}";
INST "ddr2_sdram_cont_i/read_write_io_inst/ddr2_cont_iob_inst/BUFG_inst" LOC = BUFGMUX_X0Y5;


これらの変更を加えて、インプリメントしたらエラーが発生。dcm_DDR2_VGA_clk_i/dcm_DDR2_clk_dcm/DCM_SP.CLKFXのクロックルートがクロック専用ラインを通れないようだ。下の制約を加えたらインプリメントが成功した。

PIN "dcm_DDR2_VGA_clk_i/dcm_DDR2_clk_dcm/DCM_SP.CLKFX" CLOCK_DEDICATED_ROUTE = FALSE;


とりあえずこれでインプリメントした。DDR2 SDRAMのデータバスDQで出力タイミング続出。入力タイミングはDDR2 SDRAMバーストテスト回路と同様となってOKそうだ。タイミング解析結果を下に示す。
Bitmap_VGAC_debug_9_100220.png

ピンク枠の部分がBUFGへの入力で問題の部分。FPGA Editorでクロスプローブする。(リンクをクリック)配線が表示されるが、FPGAのチップの上から下まで配線が伸びている。
Bitmap_VGAC_debug_10_100220.png

これだと、通常の配線を長く通り過ぎているので、まずい。

なぜそうなったかは、長くなったので、次回に。。。
  1. 2010年02月20日 21:36 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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