回覆列表
  • 1 # 佳期如夢將至

    一旦遇到這個問題。verilog中的解決方法是兩個變一個。一個always塊只對一個變數賦值。最後將其用組合邏輯將其變為一個訊號。舉例:always @ (posedge clk or negedge rst)if (!rst)cnt1 <= #1 3"d0;else if (cnt==4)cnt1 <= #1 3"d0;elsecnt <= #1 cnt+1;always @ (negedge clk or negedge rst)if (!rst)cnt2 <= #1 4"d0;else if (cnt==5)cnt2 <= #1 4"d0;elsecnt2 <= #1 cnt2 +1;always @ (cnt1 or cnt2 )if (cnt1==2)ckout = 1"b1;else if (cnt2==4)ckout = 1"b0;elseckout = 1"b1; // logic part to combine the two cnt to one output你看到了。前兩個是定義了兩個不同沿觸發的時序電路就是計數器。最後一個組合邏輯來將兩個做成一個使能訊號。這個做法可以做出不同沿觸發的時序使能訊號。但是這麼做出的一個訊號強烈建議不作為高質量時鐘輸出。由於編寫程式風格。所以做為時鐘可能延遲以及抖動都不能作為高質量時鐘的設計。7

  • 中秋節和大豐收的關聯?
  • 電子表格中的IF(ISERROR)是什麼?