FC2カウンター FPGAの部屋 Verilog2001版DDR SDRAMコントローラーのModelSimシミュレーション4
FC2ブログ

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

FPGAの部屋

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

Verilog2001版DDR SDRAMコントローラーのModelSimシミュレーション4

Verilog2001版DDR SDRAMコントローラーのModelSimシミュレーションも続けてやっている。
大体バグも取れてきたのだがModelSimXE3 starterだと1回シミュレーションするのに12分くらいかかる。バグを修正して辛抱強く12分待ってから確認するのでどうしても時間がかかる。
今は信号を遅延させたのだが前の信号と違うという状況がわからない。VHDLの慣性遅延のように記述した遅延量以下のパルスは遅延しないのだろうか?
VerilogHDLの遅延は伝播遅延だと書いてあるのを見たことがあったのだが、もう一度調べてみる必要がありそうだ。
Verilogコードは下のようだ。

`timescale 1ps / 1ps
parameter DELAY_TIME = 1500;
assign #DELAY_TIME ddr_dqs_fpga = (enable_o==1'b1) ? ddr_dqs_sdram : {DQS_BITS{1'bz}};
assign #DELAY_TIME ddr_dq_fpga = (enable_o==1'b1) ? ddr_dq_sdram : {DQ_BITS{1'bz}};

assign #DELAY_TIME ddr_dqs_sdram = (enable_o==1'b0) ? ddr_dqs_fpga : {DQS_BITS{1'bz}};
assign #DELAY_TIME ddr_dq_sdram = (enable_o==1'b0) ? ddr_dq_fpga : {DQ_BITS{1'bz}};


parameterの値はDQS_BITSは2で、DQ_BITSは16だ。
ModelSimの波形を下に示す。
Verilog_Delay_060129.png

上の図でddr_dqs_fpgaを1500ps遅延させてddr_dqs_sdramに入れているのだが、0-3-0と遷移するはずがddr_dqs_sdramでは0-3だけで最後の0の遷移がなくなってしまっている。
慣性遅延でなくなってしまったのか?もう少し調査することにする。

2006.01.29:追記 このページによるとassign文で遅延を書くと慣性遅延だそうだ。伝播遅延にするためにはalways文でノンブロッキング文で書くそうだ。早速書いてみよう。
  1. 2007年01月29日 06:18 |
  2. 入門Verilog
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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