作者baoerking (basketball)
看板Electronics
标题[问题] verilog的小问题
时间Sun May 17 16:09:19 2009
请问各位大大,为什麽我以下的程式中,
d1不会如我所预期的dealy一个clock才有值
呢?
always@(posedge clk_HBF2 or posedge reset) begin
if(reset==1)
d1<=0;
else
d1<=data_in;
end
但如果我用subblock的方式去呼叫,
subblock f1(.out(out),.clk(clk),.in(data_in));
就可以看到dealy的效果,请问是为什麽呢???
我应该怎麽写会比较好呢?请大大帮忙,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.208.195
1F:→ zelk:因为两种东西跑出来的实际电路不同 05/17 20:21
2F:→ baoerking:大大是指的是合成後吗? 05/17 23:06
3F:推 zelk:对 不过我主修机械...你...参考就好 05/17 23:44
4F:→ bakerly:你的f1就是上面那个always block吗,如果是的话那相当不合 05/18 18:47
5F:→ bakerly:理,一定有其它地方错了.... 05/18 18:47
6F:→ baoerking:不何理是指?? 05/18 22:59
7F:→ ksmrt0123:有waveform图吗? 还是更完整的程式? 05/19 02:26
8F:→ bakerly:你call的subblock少了一根reset, 我假设是你打漏了,在这 05/19 11:35
9F:→ bakerly:个前题下,不应该会有任何不同,这就是我说的不合理。 05/19 11:36
10F:→ colinshih:因为你的data_in 为module port, 同时rising edge 给值 05/20 00:12
11F:→ colinshih:请以falling edge 给值,或加入input delay 05/20 00:13
12F:推 sasako:这有时候跟你testbench给值的时间有关系 正如楼上讲的 05/25 23:45