[問題] verilog上的simulation問題
小弟想不透,望請各位前輩幫我解答一下。
以下是我的module:
module dac_write_data(
CLK_IN,
PLAY,
IQDATA
);
input CLK_IN;
input PLAY;
reg [13:0]REG_DATA;
output [13:0]IQDATA;
always@(negedge CLK_IN)
begin
if(!PLAY) begin
REG_DATA <= 0;
end
else begin
REG_DATA <= 14'h3fff;
end
end
assign IQDATA = REG_DATA;
endmodule
=============================
小弟的疑問是,假設我給他一個CLK,50MHz好了。
一開始的PLAY都是LOW-level的電位(0),在某一個時刻的CLK的pos edge的同時,
PLAY也同時拉為HIGH-level(1)並且保持HIGH-level,可是為什麼在經過20ns之後IQDATA
的值就改為14'h3fff???
為什麼不是經過60ns之後才改變為14'h3fff???
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.181.206
※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1403521315.A.1AB.html
→
06/23 19:04, , 1F
06/23 19:04, 1F
→
06/23 19:20, , 2F
06/23 19:20, 2F
→
06/23 20:13, , 3F
06/23 20:13, 3F
→
06/23 20:24, , 4F
06/23 20:24, 4F
→
06/23 20:25, , 5F
06/23 20:25, 5F
→
06/23 20:27, , 6F
06/23 20:27, 6F
→
06/23 20:36, , 7F
06/23 20:36, 7F
→
06/23 20:37, , 8F
06/23 20:37, 8F
→
06/23 21:10, , 9F
06/23 21:10, 9F
→
06/23 21:12, , 10F
06/23 21:12, 10F