版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
EDA技術與應用第5章時序電路的Verilog設計
EDA技術與應用§5.1
基本時序元件的Verilog表述邊沿觸發(fā)型D觸發(fā)器基本時序元件主要包括不同結構功能和不同用途的觸發(fā)器和鎖存器?!?.1.1基本觸發(fā)器及其Verilog表述D觸發(fā)器時序波形只有當時鐘上升沿到來時,輸出值Q的數(shù)值才會隨輸入口D的數(shù)據(jù)而改變,稱為更新
EDA技術與應用例5-1:基本D觸發(fā)器
moduleDFF1(CLK,D,Q); outputQ; inputCLK,D; regQ; always@(posedgeCLK) //CLK上升沿啟動 Q<=D; //CLK有上升沿時,D被鎖入Qendmodule時序電路通常都由過程語句來描述。敏感信號表中的邏輯表述posedgeCLK是時鐘邊沿檢測函數(shù),也可看成是對時鐘信號CLK的上升沿敏感的敏感變量或敏感表述:當輸入信號CLK出現(xiàn)一個上升沿時,敏感信號posedgeCLK將啟動過程語句。凡是邊沿觸發(fā)性質的時序元件,必須使用邊沿敏感表述如“posedgeCLK”。negedgeCLK是時鐘下降沿敏感的表述。
EDA技術與應用§5.1.2用UDP表述D觸發(fā)器例5-2:含異步復位控制的邊沿觸發(fā)型D觸發(fā)器UDP表述
primitiveEDGE_UDP(Q,D,CLK,RST);inputD,CLK,RST;outputQ;regQ;table//DCLKRST:Q:Q+0(01)0:?:0;1(01)0:?:1;?(1?)0:?:-;?(?0)0:?:-;101:?:0;111:?:0;001:?:0;011:?:0;endtableendprimitiveCLK以下的(01)表示時鐘上升沿觸發(fā),(10)表示下降沿觸發(fā)。Q以下數(shù)據(jù)“?”表示原狀態(tài)(現(xiàn)態(tài))任意數(shù)據(jù)。Q+以下數(shù)據(jù)表示次態(tài)數(shù)據(jù),“-”表示保持原狀態(tài)。RST復位信號,高電平有效。
EDA技術與應用§5.1.2用UDP表述D觸發(fā)器例5-3:含異步復位控制的邊沿觸發(fā)型D觸發(fā)器頂層表述
moduleDFF_UDP(Q,D,CLK,RST);inputD,CLK,RST;outputQ;EDGE_UDPU1(Q,D,CLK,RST);endmodule含異步復位控制的邊沿觸發(fā)型D觸發(fā)器
EDA技術與應用§5.1.3含異步復位和時鐘使能的D觸發(fā)器及其Verilog表述含異步復位和時鐘使能的邊沿D觸發(fā)器實用的D觸發(fā)器標準模塊,除了數(shù)據(jù)端D、時鐘端CLK和輸出端Q,還有兩個控制端,即異步復位端RST和時鐘使能端EN?!爱惒健敝釜毩⒂跁r鐘控制的控制端。異步復位RST指任何時刻,只要RST=0,觸發(fā)器的輸出端Q即刻被清零,與時鐘狀態(tài)無關。時鐘使能EN的功能是:只有當EN=1時,時鐘上升沿才有效。
EDA技術與應用例5-4:含異步復位和時鐘使能的邊沿D觸發(fā)器
moduleDFF2(CLK,D,Q,RST,EN);outputQ;inputCLK,D,RST,EN;regQ;always@(posedgeCLKornegedgeRST)begin if(!RST)Q<=0;elseif(EN)Q<=D;endendmodule含異步復位控制的邊沿觸發(fā)型D觸發(fā)器時序RST有效RST有效EN無效EN有效
EDA技術與應用§5.1.4含同步復位控制的D觸發(fā)器及其Verilog表述含同步復位的邊沿D觸發(fā)器在輸入端口D處加了一個2選1多路選擇器?!巴健敝改晨刂菩盘栔挥性跁r鐘信號有效時才起作用。比如同步清0信號必須在時鐘邊沿信號到來時,才能實現(xiàn)清0功能。同步清0控制D觸發(fā)器的時序圖時鐘信號無效時鐘信號有效
EDA技術與應用例5-5:含同步復位的
邊沿D觸發(fā)器
moduleDFF3(CLK,D,Q,RST);outputQ;inputCLK,D,RST;regQ;always@(posedgeCLK)begin if(RST==1)Q=0;elseif(RST==0)Q=D;endendmodule注意敏感信號表中只放了對CLK上升沿的敏感表述,表明此過程中所有其他輸入信號都隨時鐘CLK而同步。例5-6:含同步復位的
邊沿D觸發(fā)器
moduleDFF3(CLK,D,Q,RST);outputQ;inputCLK,D,RST;regQ,Q1;always@(RST)begin if(RST==1)Q1=0; elseQ1=D;endalways@(posedgeCLK) Q<=Q1;endmodule例5-7:含同步復位的邊沿D觸發(fā)器(條件賦值語句)
moduleDFF2(inputCLK,inputD,inputRST,outputregQ);always@(posedgeCLK)Q<=RST?1`b0:D;endmodule
EDA技術與應用§5.1.5基本鎖存器及其Verilog表述鎖存器模塊電平觸發(fā)型鎖存器:時鐘CLK為高電平時,輸出Q的數(shù)值才會隨D輸入的數(shù)據(jù)而改變,CLK為低電平時,將保存其在高電平時鎖入的數(shù)據(jù)。鎖存器模塊內部邏輯電路時鐘輸入,數(shù)據(jù)鎖存允許控制端鎖存器的時序波形
EDA技術與應用例5-8:電平觸發(fā)型鎖存器
moduleLATCH1(CLK,D,Q);outputQ;inputCLK,D;regQ;always@(DorCLK)if(CLK)Q<=D;endmoduleCLK和D任何一個發(fā)生變化時,執(zhí)行always結構中的if語句。if語句未包含所有可能情況,即當D發(fā)生變化但CLK保持為0或CLK從1變?yōu)?時,if語句不滿足CLK==1的條件,跳過后面的賦值語句Q<=D,Q保持原值。這是一個不完整的條件語句,它起到了不滿足條件時,即使輸入改變,輸出仍保持原值的作用。對于數(shù)字電路來說,當輸入改變后試圖保持一個值不變,就意味著引入了具有存儲功能的元件(時序元件)。
EDA技術與應用邊沿觸發(fā)時序元件:采用posedge或negedge。電平觸發(fā)時序元件:通過不完整的條件語句。在FPGA中,綜合器引入的鎖存器在許多情況下不屬于現(xiàn)成的基本時序模塊,需用含反饋的組合電路構建。而D觸發(fā)器是現(xiàn)成的基本時序模塊,可直接調用。因此鎖存器比D觸發(fā)器要額外耗費組合邏輯資源。
EDA技術與應用§5.1.6含清0控制的鎖存器及其Verilog表述含異步清0的鎖存器含異步清0的鎖存器邏輯電路含異步清0的鎖存器的時序圖
EDA技術與應用例5-9:含異步清0的鎖存器(采用連續(xù)賦值和條件操
作符)
moduleLATCH3(CLK,D,Q,RST);outputQ;inputCLK,D,RST;assignQ=(!RST)?0:(CLK?D:Q);endmodule例5-10:含異步清0的鎖存器(采用過程語句)
moduleLATCH3(CLK,D,Q,RST);outputQ;inputCLK,D,RST;regQ;always@(DorCLKorRST) if(!RST)Q<=0;elseif(CLK)Q<=D;endmodule
EDA技術與應用§5.1.7異步時序電路的Verilog表述特點可以構成時序電路的過程稱為時鐘過程。一個時鐘過程只能構成對應單一時鐘信號的時序電路。如果在某一過程中需要構成多觸發(fā)器時序電路,也只能產生對應某個單一時鐘的同步時序邏輯。異步邏輯(多個時鐘觸發(fā))的設計必須采用多個時鐘過程語句來構成。例5-11moduleAMOD(D,A,CLK,Q);outputQ;inputA,D,CLK;regQ,Q1;always@(posedgeCLK) Q1=~(A|Q);always@(posedgeQ1) Q=D;endmodule
EDA技術與應用§5.1.8時鐘過程表述的特點和規(guī)律如果將某信號A定義為邊沿敏感時鐘信號,則必須在敏感信號表中給出對應的表述,如posedgeA或negedgeA;而且在always過程結構中不能再出現(xiàn)信號A。如果將某信號B定義為對應于時鐘的電平敏感的異步控制信號,則除了在敏感信號表中給出對應的表述外,如posedgeB或negedgeB,在always過程結構中必須明示信號B的邏輯行為。注意其在表述上必須是邊沿敏感信號,但電路性能上是電平敏感的。如果某信號定義為對應于時鐘的同步控制信號(或僅僅是同步輸入信號),則絕不可以以任何形式出現(xiàn)在敏感信號表中。如果同一模塊中有獨立于主時鐘的時序或組合邏輯,必須用另一個過程來描述。邊沿觸發(fā)型時序模塊遵循規(guī)律:
EDA技術與應用注意:敏感信號表中不允許出現(xiàn)混合信號。即敏感信號表中一旦含有posedge或negedge的邊沿敏感信號后,所有其他普通變量都不能放在敏感信號表中。若定義某變量為異步電平敏感信號,則在if條件句中應該對敏感信號表中的信號有匹配的表述不允許敏感信號表中定義除了異步控制信號外的信號。比如(posedgeCLKornegedgeB)敏感信號表中定義的B只能作為異步復位或置位控制信號,而不能作為一般意義上的異步邏輯信號,如不允許式Q1=A&B。非復位或置位的獨立于時鐘的信號(普通異步信號)只能在其他過程中定義。例:always@(posedgeCLKornegedgeRST)beginif(!RST)…always@(posedgeCLKornegedgeRST)beginif(RST==0)…always@(posedgeCLKornegedgeRST)beginif(!RST==1)…always@(posedgeCLKorposedgeRST)beginif(RST)…always@(posedgeCLKorposedgeRST)beginif(RST==1)…always@(posedgeCLKorposedgeRST)beginif(!RST==0)…
EDA技術與應用例5-12
moduleDFF5(CLK,D,Q,RST,DIN,OUT);outputQ,OUT;inputCLK,D,RST,DIN;regQ,OUT;always@(posedgeCLK)begin OUT=!DIN; if(RST==1)Q=0;elseif(RST==0)Q=D;endendmodule例5-12RTL圖
EDA技術與應用§5.2
二進制計數(shù)器及其Verilog表述§5.2.1簡單加法計數(shù)器及其Verilog表述4位二進制加法計數(shù)器工作時序完成加1操作的加法器4位邊沿觸發(fā)寄存器(4個D觸發(fā)器)CLK可看成數(shù)據(jù)鎖存信號4位二進制加法計數(shù)器RTL電路圖反饋通道
EDA技術與應用例5-13
:4位二進制數(shù)加法計數(shù)器
moduleCNT4(CLK,Q);output[3:0]Q;inputCLK;reg[3:0]Q1;always@(posedgeCLK) Q1<=Q1+1; //Q1具備了輸入和輸出的性質,Q1 的輸入特性是反饋方式,Q1被綜合
為內部的4位寄存器。assignQ=Q1;endmodule例5-14:4位二進制數(shù)加法計數(shù)器
moduleCNT4(CLK,Q);output[3:0]Q;inputCLK;reg[3:0]Q;always@(posedgeCLK) Q<=Q+1; //Verilog綜合器對于此類語句具有
自動轉化端口方向屬性的功能,Q 具備了雙向端口屬性。endmodule
EDA技術與應用§5.2.2實用加法計數(shù)器設計例5-15:異步復位同步計數(shù)使能和可預置型十進制計數(shù)器
moduleCNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA);inputCLK,EN,RST,LOAD; //時鐘,時鐘使能,復位,數(shù)據(jù)加
載控制信號input[3:0]DATA; //4位并行加載數(shù)據(jù)output[3:0]DOUT; //4位計數(shù)輸出outputCOUT;reg[3:0]Q1;regCOUT;assignDOUT=Q1; //將內部寄存器的計數(shù)結果輸出至DOUTalways@(posedgeCLKornegedgeRST) //時序過程beginif(!RST)Q1<=0;//RST=0時,對內部寄存器單元異步清0
elseif(EN)begin
//同步使能EN=1,則允許加載或計數(shù)
if(!LOAD)Q1<=DATA;//當LOAD=0,向內部寄存器加載數(shù)據(jù)
elseif(Q1<9)Q1<=Q1+1;//當Q1小于9時,允許累加
elseQ1<=4`b0000;end//否則一個時鐘后清0返回初值endalways@(Q1) //組合過程if(Q1==4`h9)COUT=1`b1;elseCOUT=1`b0;endmodule
EDA技術與應用RST在任意時刻有效時,即使CLK非上升沿時,計數(shù)也能即刻清0。EN=1且在時鐘CLK的上升沿時間范圍LOAD=0時,4位輸入數(shù)據(jù)DATA=7被加載,在LOAD=1后作為計數(shù)器的計數(shù)初值,計數(shù)到9時,COUT輸出進位1。注意LOAD是同步加載。EN=1,RST=1,LOAD=1時,計數(shù)正常進行。LOAD=0但CLK無上升沿,所以沒有進行加載計數(shù)從7到8時有毛刺,因為7(0111)到8(1000)的邏輯變化最大,每一位都發(fā)生反轉,導致各位信號傳輸路徑不一致性增大
EDA技術與應用第一個條件語句if(!RST)構成RST接于寄存器下方的異步清0端CLR。第二個條件句if(EN)構成EN接于寄存器左側的使能端ENA。第三個條件句if(LOAD)構成LOAD接于上面的多路選擇器,使之控制選擇來自DATA的數(shù)據(jù),還是來自另一條多路選擇器的數(shù)據(jù)。RTL電路if(!RST)if(EN)if(LOAD)
EDA技術與應用不完整的條件語句和語句Q1<=Q1+1,構成了加1加法器和4位寄存器。語句(Q1<9)構成了小于比較器,比較器的輸出信號控制左側多路選擇器。第二個過程語句構成了純組合電路模塊,即一個等式比較器,作進位輸出。RTL電路Q1<9第二個過程語句Q1<=Q1+1不完整條件語句
EDA技術與應用§5.3
移位寄存器的Verilog表述與設計§5.3.1含同步預置功能的移位寄存器設計例5-16:含同步預置功能的8位并行輸入串行輸出移位寄存器
moduleSHFT1(CLK,LOAD,DIN,QB);outputQB;inputCLK,LOAD;input[7:0]DIN;reg[7:0]REG8;always@(posedgeCLK)
if(LOAD)REG8<=DIN;elseREG8[6:0]<=REG8[7:1];assignQB=REG8[0];endmoduleCLK---移位時鐘信號DIN[7:0]---8位并行預置數(shù)據(jù)端口LOAD---并行數(shù)據(jù)預置使能控制信號QB---串行輸出端口
EDA技術與應用第三個時鐘到來時,LOAD正好是高電平,此時DIN口上的8位數(shù)據(jù)9B被鎖入REG8中。第四個時鐘以及以后的時鐘信號都是移位時鐘。由于賦值語句QB=REG8[0]屬于并行性質的連續(xù)賦值語句,在過程結構的外面,它的執(zhí)行無需移位時鐘信號。在并行鎖存DIN數(shù)據(jù)的時鐘上升沿到來時刻(第三個時鐘),便將此置入數(shù)據(jù)的第一位輸出到QB了,即最低位輸出要早于移位時鐘(第四個時鐘)一個周期。工作時序
EDA技術與應用§5.3.2使用移位操作符設計移位寄存器例5-17:4位串行輸入串行輸出移位寄存器
moduleSHFT4(DIN,CLK,RST,DOUT);inputCLK,DIN,RST;outputDOUT;reg[3:0]SHFT;always@(posedgeCLKorposedgeRST)
if(RST)SHFT<=4`B0;elsebeginSHFT<=(SHFT>>1);SHFT[3]<=DIN;endassignDOUT=SHFT[0];endmodule
EDA技術與應用§5.4
可預置型計數(shù)器設計可預置型計數(shù)器能實現(xiàn)模可控計數(shù)器功能,方法是將計數(shù)進位輸出端與預置數(shù)加載輸入信號端或計數(shù)復位端相接。四種控制信號輸入方式:同步清0,異步清0,同步加載和異步加載。同步清0和異步清0模式的原理:設定計數(shù)模為N,當計數(shù)到N時,對計數(shù)器發(fā)出一個清0信號,使其從頭開始計數(shù),以此循環(huán)往復。同步加載和異步加載模式的原理:對于給定的模N,當計數(shù)滿到溢出時,或限制其計數(shù)到某值時,發(fā)出一個信號,控制計數(shù)器的加載預置端,使計數(shù)器加載某值M。時序電路在清0或加載信號時極易產生毛刺,并可能不同程度地影響計數(shù)器的功能。毛刺的產生與否及影響程度與實現(xiàn)此功能的器件本身的時序特性、控制計數(shù)器計數(shù)進程的方式、電路模塊的結構乃至外界溫度等因素關系密切。
EDA技術與應用§5.4.1同步加載計數(shù)器例5-18:4位同步加載模式計數(shù)器
moduleFDIV0(inputCLK,RST,input[3:0]D,outputPM,output[3:0]DOUT);reg[3:0]Q1;regFULL;(*synthesis,keep*)wireLD; //設定LD為仿真可測試屬性always@(posedgeCLKornegedgeRST)//RST為異步控制信號
if(!RST)beginQ1<=0;FULL<=0;endelseif(LD)beginQ1<=D;FULL<=1;end//LD為同步控制信號elsebeginQ1<=Q1+1;FULL<=0;endassignLD=(Q1==4`B1111);assignPM=FULL;assignDOUT=Q1;endmodule注意這里LD是同步加載控制信號,假定模為1111,PM是輸出標志脈沖(標志是否在加載數(shù)據(jù))
EDA技術與應用由于LD是同步信號,當Q1=1111時,LD=1,等到下一個時鐘上升沿才執(zhí)行Q1<=D,F(xiàn)ULL<=1,即Q重裝載初值9。所以在前一個時鐘周期(Q1=1111,LD=1),F(xiàn)ULL=0,PM=0,DOUT=1111,輸出F(1111);到了下一個時鐘周期(Q1=9,F(xiàn)ULL=1),PM=1,DOUT=9,輸出9。預置數(shù)是9時,分頻比(計數(shù)模)為7(9~F)。每一計數(shù)周期都有兩個毛刺脈沖,毛刺極有可能對計數(shù)器產生不良后果,如提前預置數(shù)據(jù),這就要看此毛刺的寬度是否足夠寬。仿真波形
EDA技術與應用毛刺寬度約0.1ns,對于EP1C器件不會產生不利影響,但為了能可靠技術,還是應該設法去除毛刺。毛刺不是很寬時,通過一些簡單的輔助方法或利用器件本身通道的分布電容,都可解決問題。例如改變程序結構,包括改變程序的表述方式,甚至重新考慮某些端口引腳的去留或鎖定方位都有可能起作用。毛刺展開后的時序毛刺
EDA技術與應用還可以通過改變優(yōu)化約束方式來解決毛刺問題:Assignments→Settings,選擇Analysis&SynthesisSettings項的OptimizationTechnique欄,單擊speed優(yōu)化方式,或在P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度能源項目合同財產保全擔保書范本3篇
- 2025年度個人裝修貸款協(xié)議書3篇
- 二零二五年度60歲以上人員社區(qū)教育輔導勞動合同模板3篇
- 2024-2025學年新教材高中政治第3單元就業(yè)與創(chuàng)業(yè)單元綜合提升教案新人教版選擇性必修2
- 2025版智能交通管理系統(tǒng)建設運營履約擔保合同4篇
- 2025年度噴灌系統(tǒng)節(jié)能改造技術合同4篇
- 2025年度在線教育平臺兼職外教遠程教學合同4篇
- 2025年度宿舍管理員職業(yè)發(fā)展規(guī)劃聘用合同
- 二零二五年度駕校教練員職業(yè)發(fā)展承包合同3篇
- 2025年度馬賽克材料研發(fā)與應用采購合同4篇
- C及C++程序設計課件
- 帶狀皰疹護理查房
- 公路路基路面現(xiàn)場測試隨機選點記錄
- 平衡計分卡-化戰(zhàn)略為行動
- 國家自然科學基金(NSFC)申請書樣本
- 幼兒教師干預幼兒同伴沖突的行為研究 論文
- 湖南省省級溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設備驗收管理流程圖
- 培訓機構消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項新技術(2017年最新版)
- 第8期監(jiān)理月報(江蘇版)
評論
0/150
提交評論