- 在同一個always區塊中,blocking與nonblocking assignment不可以混合使用。
- 具有Clock的循序電路,建議採用nonblocking assignment(<=)的寫法。
- 如果是組合電路,則建議採用blocking assignment(=)的寫法。
- 在continuous assignment則使用blocking的寫法。
如:
always@(posedge clk or negedge reset_n) begin
if (!reset_n)
counter <= 8'b00;
else
counter <= counter + 1;
end
如:
always@(sel or a or b) begin
case (sel)
2'b00 : c = a;
2'b01 : c = b;
endcase
end
如:
assign y = a&b;
這個主要的目的是用以明顯的區分出不同電路的設計,以必免不必要的麻煩。
沒有留言:
張貼留言