FC2カウンター FPGAの部屋 2007年02月17日
FC2ブログ

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

FPGAの部屋

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

シミュレーション時とインプリメント時でのインクルードファイルの使い分け

Verilog2001版DDR SDRAMコントローラーでDDRtest_verilog/DDRtest_synth フォルダにある ddr_cont_parameters.vh とDDRtest_verilog/simulation フォルダにある ddr_cont_parameters.vh の内容が違うのに気がつかれただろうか?
両者は MAX_INITIAL_COUNT_VAL の値だけが違っている。
DDRtest_verilog/DDRtest_synth フォルダにある ddr_cont_parameters.vh は

// 電源ONの時に200us間、ckeをlowにして、DQ,DQSをハイ・インピーダンスにする。そのためのカウンタ用の最大値
parameter MAX_INITIAL_COUNT_VAL = 11'b10011100010; // 1250


だが、DDRtest_verilog/simulation フォルダにある ddr_cont_parameters.vh は、

// 電源ONの時に200us間、ckeをlowにして、DQ,DQSをハイ・インピーダンスにする。そのためのカウンタ用の最大値(シミュレーション用に時間を極端に短縮してある。)
parameter MAX_INITIAL_COUNT_VAL = 11'b00000000100; // 4


になっている。
これは、本当はDDR SDRAM では、電源ONから 200us 後に初期化を始めなければならないが、シミュレーションでは 200us 待っていたら日が暮れてしまうので、それを大幅に短縮している。それをISEでのインプリメントに適用してしまうと、まずいため正規のインプリメント用 ddr_cont_parameters.vh を使用している。
こうするとシミュレーションとインプリメントでVerilogコードを書き換えなくてもすむので、インプリメントしてからシミュレーションをしても、ISEにインプリメント結果が残るというメリットがある。
  1. 2007年02月17日 05:44 |
  2. 入門Verilog
  3. | トラックバック:0
  4. | コメント:9