作者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