在之前的筆記中已經提到了阻塞與非阻塞指派:
【FPGA筆記系列3】assign語句和if-esle語句
阻塞和非阻塞指派的差別
- assign語句中隻能使用阻塞指派(
)=
- 在always中(reg類型)可以同時使用阻塞(
)和非阻塞(=
)指派,同一個變量不能同時使用兩種指派<=
- 對于組合邏輯電路,使用 always @(*)語句時,使用
和=
描述的電路完全相同<=
- 對于時序邏輯電路,使用
和=
會産生不同的電路<=
結論:
- always 塊語句中一律使用非阻塞指派
<=
- assign 語句隻能使用阻塞指派
=
此次再進一步進行詳細說明,主要還是以下3點:
- 組合邏輯(assign, always@(*))中,=、<=完全相同
- always中,同一個信号不同時使用=、<=
- 時序邏輯中,=、<=有時相同,有時不同,可以嘗試了解差別,但對設計