天天看點

【FPGA筆記系列8】再談阻塞(=)與非阻塞(<=)指派阻塞和非阻塞指派的差別

在之前的筆記中已經提到了阻塞與非阻塞指派:

【FPGA筆記系列3】assign語句和if-esle語句

阻塞和非阻塞指派的差別

  • assign語句中隻能使用阻塞指派(

    =

    )
  • 在always中(reg類型)可以同時使用阻塞(

    =

    )和非阻塞(

    <=

    )指派,同一個變量不能同時使用兩種指派
  • 對于組合邏輯電路,使用 always @(*)語句時,使用

    =

    <=

    描述的電路完全相同
  • 對于時序邏輯電路,使用

    =

    <=

    會産生不同的電路

結論:

  • always 塊語句中一律使用非阻塞指派

    <=

  • assign 語句隻能使用阻塞指派

    =

此次再進一步進行詳細說明,主要還是以下3點:

  • 組合邏輯(assign, always@(*))中,=、<=完全相同
  • always中,同一個信号不同時使用=、<=
  • 時序邏輯中,=、<=有時相同,有時不同,可以嘗試了解差別,但對設計

繼續閱讀