Re: [請益] 請教有關verilog的nonblocking的寫法...
※ 引述《LINAN322 (新熱血陽光男孩NN)》之銘言:
: 不好意思,舉了個不好的例子,
: 應該說,a值會隨著clk一直改變的,
: 因為a是要傳送的訊號...
: ,接著會進行運算,得到d值後,會將d值傳送出去...
: 即d作為傳送至下一級的訊號。
: b、c、d會因為運算,跟著改變其值,有相依性。
: 所以跟s大大說的,就是將reg儲存起來。
我想你的意思應該是a 是個input
可能
b = a*2
c = b*2 + a
d = a + b + c
假如你想切pipeline,那你就要去合成看看一個乘法需要多少時間,
這樣講起來就是個計組概念,你的cycle需要多少時間決定在critical path,
然後你想要怎麼切,這就是你設計的考量,他會影響到輸出的結果...
遇到data harard 就如同計組的方式去解決...
乘法1 bit ,2 bits...需要的時間都不太一樣
加法當然也是,只是乘法需要的時間通常比加法多(在相同bit數)..
硬體通常會是有個trade-off的關係,想快,付出的硬體就大,這完全取決
你的需求,要去尋找平衡...
但是現在你的這些簡單的運算也許是所有設計中的一小部分,那你就必須考慮
pipeline的必要性,又或是你只想要練習解決data hazard而已,那倒是可以去
嘗試看看計組上的方法...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.103.42
推
05/02 14:45, , 1F
05/02 14:45, 1F
→
05/02 14:47, , 2F
05/02 14:47, 2F
推
05/02 21:56, , 3F
05/02 21:56, 3F
※ 編輯: sasako 來自: 220.135.103.42 (05/02 22:01)
討論串 (同標題文章)
完整討論串 (本文為第 5 之 7 篇):