時序邏輯中的Verilog程式解讀

2021-07-24 14:34:46 字數 708 閱讀 1490

同步時序邏輯電路中由於引入了時鐘脈衝,在寫verilog程式時,習慣面向過程或物件導向程式設計思維的童鞋帶來理解上的困難。

在理解verilog程式時,基本要點是從電路出發,拋棄傳統的面向過程或物件導向思維,而從電路構造和電流變化的角度理解。如下面的時序邏輯電路:

當時序電路處於穩態,時鐘脈衝沒有到來時,並且!q0的值為1時,x的變化只會影響到z的輸出,而兩個j-k觸發器狀態不會有任何改變

其對應的verilog程式為:

程式中的now_state表示電路的現態,next_state表示電路的次態。

圖1中只有乙個cp,電路受控於乙個時鐘脈衝,是乙個同步時序電路,因此在verilog程式中有乙個always監控clk(始終脈衝),現在理解的關鍵是下面這個always的語義。理解這一塊需要大家回頭複習下降沿j-k觸發器的工作原理,其功能請詳見下降沿觸發器的分析。在下降沿觸發器中,當下降沿來臨時,下降沿來臨的前一剎那的輸入會引起當前電路的狀態改變,後面這個always做的事情就是控制這個變化。

另外,反過來理解,只要時鐘脈衝不來,無論組合電路中的輸入如何變化,電路狀態都不會改變,只有時鐘脈衝來了,電路狀態才會改變。

時序電路的verilog程式一般有兩個always,乙個用於控制時序中的觸發器,乙個用於控制組合電路。

優化邏輯時序的幾個辦法 verilog語言

1 邏輯條件判斷 a b 和 a!b 全部換成 a b 和 a b 2 複雜的邏輯條件判斷全部單獨用乙個時鐘去判斷,如 if a 1000 a 1000000 b 1000 b 10000 改為如下 reg flag flag a 1000 a 1000000 b 1000 b 10000 if f...

優化邏輯時序的幾個辦法 verilog語言

標籤 優化 語言div 出版工作 2011 11 11 09 38 4578人閱讀收藏 舉報 verilog相關 8 1 邏輯條件判斷 a b 和 a!b 全部換成 a b 和 a b 2 複雜的邏輯條件判斷全部單獨用乙個時鐘去判斷,如 if a 1000 a 1000000 b 1000 b 10...

FPGA中組合邏輯和時序邏輯的區別

數位電路根據邏輯功能的不同特點,可以分成兩大類,一類叫組合邏輯電路 簡稱組合電路 另一類叫做時序邏輯電路 簡稱時序電路 1 組合邏輯概念 組合邏輯電路在邏輯功能上的特點是任意時刻的輸出僅僅取決於該時刻的輸入,與電路原來的狀態無關,不涉及對訊號跳變沿的處理,無儲存電路,也沒有反饋電路。通常可以通過真值...