作者gn00446610 (Tsk)
看板Electronics
标题[问题] verilog上的simulation问题
时间Mon Jun 23 19:01:53 2014
小弟想不透,望请各位前辈帮我解答一下。
以下是我的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://webptt.com/cn.aspx?n=bbs/Electronics/M.1403521315.A.1AB.html
1F:→ gn00446610:我这里先只用functional simulation而已 06/23 19:04
2F:→ lovepy:functional模拟对有clock触发电路结果会有问题吧?? 06/23 19:20
3F:→ chester102:50MHz的话应该是半T=10ns之後IQDATA就会变成14'h3fff吧 06/23 20:13
4F:→ gn00446610:chester102大..对是10ns我打错... 06/23 20:24
5F:→ gn00446610:我应该改问一下为什麽不是30ns才改值?? 06/23 20:25
6F:→ gn00446610:这个module应该是在negedge触发的那个瞬间启动才对啊 06/23 20:27
7F:→ chester102:假设时间点t是clock跟play正缘,t+10就是clock负缘 06/23 20:36
8F:→ chester102:就会进到always,而且play=1所以IQDATA就变14'h3fff了 06/23 20:37
9F:→ gn00446610:我刚刚在做了一次,原来是我搞错了性质.. 06/23 21:10
10F:→ gn00446610:感谢chester102大..帮我找到盲点...感激不尽 06/23 21:12