時(shí)序邏輯中的Verilog程序解讀

同步時(shí)序邏輯電路中由于引入了時(shí)鐘脈沖,在寫verilog程序時(shí),習(xí)慣面向過程或面向?qū)ο缶幊趟季S的童鞋帶來理解上的困難。

在理解verilog程序時(shí),基本要點(diǎn)是從電路出發(fā),拋棄傳統(tǒng)的面向過程或面向?qū)ο笏季S,而從電路構(gòu)造和電流變化的角度理解。如下面的時(shí)序邏輯電路:

圖1:時(shí)序電路例子

當(dāng)時(shí)序電路處于穩(wěn)態(tài),時(shí)鐘脈沖沒有到來時(shí),并且!Q0的值為1時(shí),X的變化只會(huì)影響到Z的輸出,而兩個(gè)J-K觸發(fā)器狀態(tài)不會(huì)有任何改變

其對應(yīng)的verilog程序?yàn)椋?/p>

圖2:verilog程序

程序中的now_state表示電路的現(xiàn)態(tài),next_state表示電路的次態(tài)。

圖1中只有一個(gè)CP,電路受控于一個(gè)時(shí)鐘脈沖,是一個(gè)同步時(shí)序電路,因此在verilog程序中有一個(gè)always監(jiān)控clk(始終脈沖),現(xiàn)在理解的關(guān)鍵是下面這個(gè)always的語義。理解這一塊需要大家回頭復(fù)習(xí)下降沿J-K觸發(fā)器的工作原理,其功能請?jiān)斠?a href="http://www.itdecent.cn/p/2f1bca4f4acc" target="_blank">下降沿觸發(fā)器的分析。在下降沿觸發(fā)器中,當(dāng)下降沿來臨時(shí),下降沿來臨的前一剎那的輸入會(huì)引起當(dāng)前電路的狀態(tài)改變,后面這個(gè)always做的事情就是控制這個(gè)變化。

另外,反過來理解,只要時(shí)鐘脈沖不來,無論組合電路中的輸入如何變化,電路狀態(tài)都不會(huì)改變,只有時(shí)鐘脈沖來了,電路狀態(tài)才會(huì)改變。

時(shí)序電路的verilog程序一般有兩個(gè)always,一個(gè)用于控制時(shí)序中的觸發(fā)器,一個(gè)用于控制組合電路。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容