作者LINAN322 (新熱血陽光男孩NN)
看板Electronics
標題Re: [請益] 請教有關verilog的nonblocking的寫法...
時間Sat May 2 14:46:05 2009
你的意思是說,
如果運算式:
先令
ip第0個clk為 2 ;
ip第1個clk為 4 ;
第一級Block:
a = ip ;
b = a * 2 + 3 ;
c = a + 2 * b ;
d = a + b + c ;
第二級Block:
e = d * 2 ;
就可以寫成
always @ (posedge clk) begin
case (i)
1: begin
a = ip ;
i = i+1 ;
end
2: begin
e = d * 2 ;
i = i+1 ;
end
3: begin
...
end
....
default: begin
i=i;
end
end
assign b = a * 2 + 3 ;
assign c = a + 2 * b ;
assign d = a + b + c ;
以上的都還好,
可是d = a + b + c,這一行會不會怪怪的...
就是當b改變,d也會變,但是c還沒改變...
就已經得到d的數值...
還是時間控制好,就沒有問題。
※ 引述《titansan (ㄎㄎ!)》之銘言:
: ※ 引述《LINAN322 (新熱血陽光男孩NN)》之銘言:
: : 不好意思,舉了個不好的例子,
: : 應該說,a值會隨著clk一直改變的,
: : 因為a是要傳送的訊號...
: : ,接著會進行運算,得到d值後,會將d值傳送出去...
: : 即d作為傳送至下一級的訊號。
: : b、c、d會因為運算,跟著改變其值,有相依性。
: : 所以跟s大大說的,就是將數值儲存起來。
: 這樣a應該是屬於sequential的電路
: b c d應該就是單純的combination的電路
: 那何不寫成
: assign b=
: aggign c=
: aggign d=
: always @ (posedge clk)
: ...
: ...
: a=
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.178.157
※ 編輯: LINAN322 來自: 140.138.178.157 (05/02 14:53)
推 pow:你想想硬體要怎麼設計 然後再開始寫RTL 05/02 20:50
推 pow:要讓那些數值有相依性 就要讓他們在不同的clock做動 05/02 20:54