《Verilog程序設(shè)計與EDA》-第5章 時序電路設(shè)計_第1頁
《Verilog程序設(shè)計與EDA》-第5章 時序電路設(shè)計_第2頁
《Verilog程序設(shè)計與EDA》-第5章 時序電路設(shè)計_第3頁
《Verilog程序設(shè)計與EDA》-第5章 時序電路設(shè)計_第4頁
《Verilog程序設(shè)計與EDA》-第5章 時序電路設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

5.1簡單時序電路設(shè)計5.1.1基本D觸發(fā)器觸發(fā)器(flip-flop)是一種具有記憶功能,可以存儲二進制信息的雙穩(wěn)態(tài)電路,它是構(gòu)成時序電路的基本單元,也是最簡單的時序電路?;綝觸發(fā)器是最常用的觸發(fā)器之一。下面是用VerilogHDL設(shè)計的基本D觸發(fā)器源文件:5.1.2帶異步清0、異步置1的D觸發(fā)器下面是用VerilogHDL設(shè)計的帶異步清0、異步置1的D觸發(fā)器源文件:對VerilogHDL描述的D觸發(fā)器在Lattice(萊迪思)公司的電子設(shè)計自動化EDA(ElectronicDesignAutomation)開發(fā)軟件環(huán)境下進行綜合、編譯。仿真時設(shè)計的ABEL-HDL(一種用來描述器件邏輯功能的設(shè)計語言)測試向量如下:仿真波形圖如圖5.1所示。5.1.3帶異步清0、異步置1的JK觸發(fā)器JK觸發(fā)器是最常用的觸發(fā)器之一。下面是用VerilogHDL設(shè)計的帶異步清0、異步置1的JK觸發(fā)器源文件:對VerilogHDL描述的JK觸發(fā)器在Lattice公司的EDA開發(fā)軟件環(huán)境下進行編譯以及仿真。仿真時設(shè)計的ABEL-HDL測試向量如下:在Lattice公司的EDA開發(fā)軟件環(huán)境下得到的仿真波形如圖5.2所示。5.1.4鎖存器和寄存器1.8位數(shù)據(jù)鎖存器對于電平敏感的D鎖存器,只要時鐘為電平1,數(shù)據(jù)就從輸入傳遞到輸出;否則輸出值被鎖存。用VerilogHDL設(shè)計的8位數(shù)據(jù)鎖存器源文件如下:2.8位數(shù)據(jù)寄存器與電平敏感的鎖存器不同的是,邊沿敏感的寄存器在敏感列表中必須在數(shù)據(jù)輸入時,聲明為時鐘上升沿或下降沿。用VerilogHDL設(shè)計的8位數(shù)據(jù)寄存器源文件如下:5.2復(fù)雜時序電路設(shè)計復(fù)雜的數(shù)字邏輯系統(tǒng)的設(shè)計和驗證,不但除了需要具備系統(tǒng)結(jié)構(gòu)知識外,還需要了解更多的語法現(xiàn)象和掌握高級的VerilogHDL系統(tǒng)任務(wù),以及與C語言模塊接口的方法(即PLI,VerilogHLI可編程語言接口是在Verilog代碼中運行C或者C++?的一種機制),并靈活運用always等語句,這是設(shè)計高質(zhì)量的復(fù)雜時序電路最基本的要求。5.2.1自由風(fēng)格設(shè)計由于復(fù)雜時序電路的工作情況千變?nèi)f化,難以遵循同一固定的設(shè)計風(fēng)格,因此,可根據(jù)給定的設(shè)計項目(題目),盡可能詳細(xì)地將設(shè)計過程抽象化,嘗試多種思路,靈活運用VerilogHDL的各種語句、操作符,自由創(chuàng)建行為模型,以設(shè)計出質(zhì)量較高的復(fù)雜時序電路模塊(源文件)。1.模為50的BCD碼計數(shù)器的設(shè)計用VerilogHDL設(shè)計的模為50的BCD碼計數(shù)器源文件如下:2.可控加法/減法計數(shù)器的設(shè)計該計數(shù)器有一個加/減控制端up_down,當(dāng)該控制端為高電平時,實現(xiàn)加法計數(shù);為低電平時,實現(xiàn)減法計數(shù)。load為同步預(yù)置端,clear為同步清零端,低電平有效。用VerilogHDL設(shè)計的可控加法/減法計數(shù)器源文件如下:3.可變模計數(shù)器的設(shè)計設(shè)計模為4、6、10、12的可變計數(shù)器,能在控制信號S0、S1的控制下,實現(xiàn)變模計數(shù)。用VerilogHDL設(shè)計的可變模計數(shù)器源文件如下:仿真波形如圖5.3所示。4.變模計數(shù)器的另一種設(shè)計思路用VerilogHDL設(shè)計的模為4、8、10、13計數(shù)器源文件如下:ABEL測試向量源文件如下:在Lattice公司的EDA開發(fā)軟件環(huán)境下,仿真波形如圖5.4~圖5.7所示。5.串并轉(zhuǎn)換電路的設(shè)計串行數(shù)據(jù)din按照時鐘clk的節(jié)拍依次進入轉(zhuǎn)換電路之后,經(jīng)過串并轉(zhuǎn)換后變成8位字節(jié)的并行數(shù)據(jù),再經(jīng)偶校驗后成為9位并行數(shù)據(jù)dout輸出(9位數(shù)據(jù)左邊的最高有效位,即第8位dout[8]是校驗位)。用VerilogHDL設(shè)計的串并轉(zhuǎn)換電路源文件如下:ABEL測試向量源文件如下:在Lattice公司的EDA開發(fā)軟件環(huán)境下,仿真波形如圖5.8所示。因為輸出管腳在沒有驅(qū)動的時候是低電平,不是高阻狀態(tài),所以出現(xiàn)了DOUT前7個時鐘周期一直是0的現(xiàn)象。5.2.2有限狀態(tài)機FSM復(fù)雜時序邏輯電路常常采用有限狀態(tài)機FSM來實現(xiàn)。在數(shù)字電路系統(tǒng)中,有限狀態(tài)機作為時序邏輯電路模塊,對數(shù)字電路系統(tǒng)的設(shè)計具有非常重要的作用。有限狀態(tài)機的標(biāo)準(zhǔn)模型如圖5.9所示。有限狀態(tài)機是指輸出取決于過去輸入部分和當(dāng)前輸入部分的時序邏輯電路。標(biāo)準(zhǔn)模型的有限狀態(tài)機,除了輸入部分和輸出部分外,還含有一組具有“記憶”功能的存儲器,它們通常由觸發(fā)器組成,這些存儲器的功能是記憶有限狀態(tài)機的內(nèi)部狀態(tài),它們常被稱為當(dāng)前狀態(tài)存儲器。在標(biāo)準(zhǔn)模型的有限狀態(tài)機中,Xi代表外部輸入信號,Qi代表存儲電路的狀態(tài)輸出,也是組合邏輯電路的內(nèi)部輸入,clk代表狀態(tài)存儲器的時鐘輸入,res代表狀態(tài)存儲器的復(fù)位輸入,Yi代表狀態(tài)存儲器的激勵信號,也是組合邏輯電路的內(nèi)部輸出,Zo代表外部輸出信號。在有限狀態(tài)機中,狀態(tài)存儲器的下一個狀態(tài)不僅與輸入信號有關(guān),而且還與該存儲器的當(dāng)前狀態(tài)有關(guān),因此有限狀態(tài)機又可以認(rèn)為是組合邏輯和存儲器邏輯的一種組合。其中,存儲器邏輯的功能是存儲有限狀態(tài)機的內(nèi)部狀態(tài);而組合邏輯可以分為次態(tài)邏輯和輸出邏輯兩部分,次態(tài)邏輯的功能是確定有限狀態(tài)機的下一個狀態(tài),輸出邏輯的功能是確定有限狀態(tài)機的輸出。在實際的應(yīng)用中,根據(jù)有限狀態(tài)機輸出信號的特點,人們經(jīng)常將其分為Moore型有限狀態(tài)機和Mealy型有限狀態(tài)機兩種類型。Moore型有限狀態(tài)機的輸出函數(shù)為Z=F(Q),其輸出信號僅與當(dāng)前狀態(tài)有關(guān),即可以把More型有限狀態(tài)的輸出看成是當(dāng)前狀態(tài)的函數(shù)。Mealy型有限狀態(tài)機的輸出函數(shù)為Z=F(X,Q),其輸出信號不僅與當(dāng)前狀態(tài)有關(guān),而且還與所有的輸入信號有關(guān),即可以把Mealy型有限狀態(tài)機的輸出看成是當(dāng)前狀態(tài)和所有輸入信號的函數(shù)。用VerilogHDL的兩個獨立的always語句正好可以描述有限狀態(tài)機標(biāo)準(zhǔn)模型中的兩個方框圖的行為,其中一個描述次態(tài)邏輯和輸出的組合邏輯函數(shù),另一個描述狀態(tài)存儲器。1.模4加法/減法計數(shù)器的設(shè)計由圖5.10所示的狀態(tài)轉(zhuǎn)換圖和表5.1可見,該計數(shù)器包含4個狀態(tài)、1個輸入和1個輸出。該電路是一個模4加法/減法控制可逆計數(shù)器。X為加/減控制輸入信號,Z為借位輸出。當(dāng)外部輸入X=0時,Q1Q0狀態(tài)轉(zhuǎn)移按00→01→10→11→00→…變化,實現(xiàn)模4加法計數(shù)器的功能。當(dāng)外部輸入X=1時,Q1Q0狀態(tài)轉(zhuǎn)移按00→11→10→01→00→…變化,實現(xiàn)模4減法計數(shù)器的功能。設(shè)計思路是,第一個always語句使用case語句來指定狀態(tài)機在各個狀態(tài)中的動作和在各狀態(tài)之間的轉(zhuǎn)換,它是組合輸出(Z)和次態(tài)(nextState)函數(shù)的描述。這些函數(shù)的輸入集合為輸入X、寄存器現(xiàn)態(tài)(currentState),它們中的任何一個變化都會使always語句有新的動作,case語句指明了這個動作。case語句的默認(rèn)項使?fàn)顟B(tài)機轉(zhuǎn)換成與復(fù)位相等同的狀態(tài)A。第二個always語句根據(jù)復(fù)位條件決定狀態(tài)寄存器的狀態(tài)。當(dāng)res為低電平時,狀態(tài)機進入狀態(tài)A;當(dāng)res不為低電平時,always語句把次態(tài)(nextState)的值賦給現(xiàn)態(tài)(currentState),在時鐘的上升沿posedgeclk改變FSM的狀態(tài)。用VerilogHDL設(shè)計的模4加法/減法計數(shù)器源文件如下:用VerilogHDL設(shè)計的測試模塊源文件如下:在XilinxISEDesignSuite13.x(簡稱ISE13)設(shè)計套件上,利用ISimSimulator進行仿真得到的仿真波形(部分)如圖5.11和圖5.12所示。

2.序列信號發(fā)生器的設(shè)計序列信號發(fā)生器的狀態(tài)圖如圖5.13所示。序列信號發(fā)生器的狀態(tài)真值表如表5.2所示。用VerilogHDL設(shè)計的序列信號發(fā)生器源文件如下:用VerilogHDL設(shè)計的序列信號發(fā)生器測試模塊源文件如下:在XilinxISE13環(huán)境下得到的仿真波形(部分)如圖5.14所示。從仿真波形可以看出,在第1~7個時鐘的作用下,輸出Z按順序輸出特定的二進制碼0010111;在第8個時鐘到達(dá)時,電路輸出將重復(fù)7位二進制碼0010111。由于輸出序列由7位二進制碼0010111重復(fù)構(gòu)成,因此該電路稱為序列長度為7的序列信號發(fā)生器。5.3時序電路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論