版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5講—復(fù)雜數(shù)字系統(tǒng)的構(gòu)成數(shù)字系統(tǒng)設(shè)計
(Verilog)本章提要組合邏輯電路(CombinationalNetworks)的簡單review時序電路(SequentialNetworks)的時序Moore機和Mealy機ASM圖ASM的設(shè)計,綜合以及Verilog描述
數(shù)字邏輯電路的構(gòu)成
組合邏輯:輸出只是輸入邏輯電平的函數(shù)(有延時),與電路的原始狀態(tài)無關(guān)。時序邏輯:輸出不只是輸入的邏輯電平的函數(shù),還與電路所處的狀態(tài)有關(guān)。
同步時序邏輯是在同一時鐘跳變節(jié)拍的前提下,如輸入條件滿足,則進入下一狀態(tài),否則仍留在原來的狀態(tài)的狀態(tài)機。時序電路時序邏輯塊模型鎖存器latch觸發(fā)器flip-flop(Dtype,JKtype,Ttype)鎖存器例:modulelatch1(q,data,clk); outputq; inputdata,clk; assignq=clk?data:q;endmodule觸發(fā)器例:moduledff(q,data,clk); outputq; inputdata,clk;
regq;
always@(posedge
clk) begin q<=data; endendmodule具有并行置數(shù)和使能控制輸入的移位寄存器具有并行置數(shù)和使能控制輸入的移位寄存器moduleshiftregs(R,load,ena,w,clock,Q,reset);input[3:0]R;inputw,load,ena,reset,clock;output[3:0]Q;reg[3:0]Q;integerk;
always@(posedgeclockornegedgereset)if(!reset)Q<=0;elseif(load)Q<=R;elseif(ena)beginQ[0]<=W;for(k=1;k<4;k+1)
Q[k]<=Q[k-1];endendmodule時序電路的時序–
tp,tsu,th傳輸延遲tp(propagationdelay)—從輸入時鐘發(fā)生變化(一般是risingedge)到輸出Q發(fā)生改變建立時間tsu(setuptime)—輸入D必須在時鐘上升沿到來之前一段時間保持穩(wěn)定保持時間th(holdtime)—輸入D必須在時鐘上升沿之后一段時間內(nèi)也保持穩(wěn)定計時度量clockInOutdatastableoutputstableoutputstabletimetimetimeclockDQInOuttsutholdtc-q系統(tǒng)時序約束CombinationalLogicclockOutputsStateRegistersNextStateCurrentStateInputsT
tc-q+tplogic+tsutcdreg+tcdlogic
tholdT(clockperiod)時序電路的時序條件1)時鐘周期足夠長,以滿足觸發(fā)器建立時間tsu,以及觸發(fā)器輸出改變需要的時間的最大值tpmax和組合電路輸出的改變需要的時間的最大值tcmax的要求
tck>=tpmax+tcmax+tsu2)時鐘周期要足夠長,以滿足觸發(fā)器保持時間th的要求
tpmin
+tcmin>=th分頻器由一個FF和NOTgate組成fQ=1/2fclktp:D到Q的延遲 tc:組合電路的延遲,也即Q到D的延遲問題: 如果fclk增加過大,由于NOTgate的tc的存在,觸發(fā)器輸入滿 足不了tsu的要求。 如果tc很短,也有可能滿足不了th的要求時序電路的時序條件-續(xù)3)電路外部輸入X的改變應(yīng)滿足觸發(fā)器建立時間tsu的要求tx>=txcmax+tsu。tcxmax=從輸入X變換到觸發(fā)器輸入端的最大傳輸延遲abtx的安全區(qū)域在時間軸a之前c時序電路的時序條件-續(xù)4)電路外部輸入X的改變應(yīng)滿足觸發(fā)器的保持時間thdety的安全區(qū)域在時間軸e之后ty>=th–tcxmin
tcxmin=從輸入X變換到觸發(fā)器輸入端的最小傳輸延遲f舉例如果NOTgate的tc
=1~3nsFF的tp=5~8nstsu=4ns,th=2ns根據(jù)準(zhǔn)則1,tck>=tcmax+tpmax+tsu=8+3+4=15nsSofmax=1/tck=66.67MHz根據(jù)準(zhǔn)則2,tpmin+tcmin=1+5=6ns>th(2ns)
觸發(fā)器的輸入D在有效時鐘沿到來后6ns內(nèi)不會改變,滿足th的要求分頻器時鐘偏移和抖動PLL1243567clockgenerationclockdriverspowersupplyinterconnectcapacitiveloadcapacitivecouplingtemperatureSkewmanufacturingdevicevariationsinclockdriversinterconnectvariationsenvironmentalvariations(powersupplyandtemperature)Jitterclockgenerationcapacitiveloadingandcouplingenvironmentalvariations(powersupplyandtemperature)同步設(shè)計一個時鐘對系統(tǒng)所有的觸發(fā)器,寄存器和計數(shù)器同步典型的數(shù)字系統(tǒng)可以分為控制部分和數(shù)據(jù)處理部分典型的同步數(shù)字系統(tǒng)i.e.如果數(shù)據(jù)處理器datasection包含一個移位寄存器shiftregister,那么控制部分controlsection則產(chǎn)生控制信號load和shift,決定寄存器何時被載入或者何時進行移位。數(shù)據(jù)處理部分可以產(chǎn)生狀態(tài)信號來響應(yīng)例如算數(shù)溢出overflow。下降沿觸發(fā)的同步系統(tǒng)上升沿觸發(fā)的同步系統(tǒng)同步系統(tǒng)設(shè)計原則方法:所有輸入到觸發(fā)器,寄存器和計數(shù)器等部件的時鐘,必須是由系統(tǒng)時鐘直接驅(qū)動的。結(jié)果:所有的狀態(tài)變化均在時鐘的有效沿(risingorfallingedges)發(fā)生。優(yōu)勢:所有的開關(guān)暫態(tài),開關(guān)噪聲和其他干擾均發(fā)生在時鐘脈沖間,對系統(tǒng)性能沒有影響。*系統(tǒng)的最大時鐘頻率由最長路徑的最大延遲決定數(shù)字系統(tǒng)的構(gòu)成示意圖有限狀態(tài)機的狀態(tài)轉(zhuǎn)移圖圖形表示:狀態(tài)、轉(zhuǎn)移、條件和邏輯開關(guān)有限狀態(tài)機的Verilog描述定義模塊名和輸入輸出端口;定義輸入、輸出變量或寄存器;定義時鐘和復(fù)位信號;定義狀態(tài)變量和狀態(tài)寄存器;用時鐘沿觸發(fā)的always塊表示狀態(tài)轉(zhuǎn)移過程;在復(fù)位信號有效時給狀態(tài)寄存器賦初始值;描述狀態(tài)的轉(zhuǎn)換過程:符合條件,從一個狀態(tài)到另外一個狀態(tài),否則留在原狀態(tài);驗證狀態(tài)轉(zhuǎn)移的正確性,必須完整和全面。同步有限狀態(tài)機種類Moore和Mealy機Moore機僅輸出當(dāng)前狀態(tài)的函數(shù)Mealy機輸出的是當(dāng)前狀態(tài)和輸入的函數(shù)Mealy狀態(tài)機
下一個狀態(tài)=F(當(dāng)前狀態(tài),輸入信號);
輸出信號=G(當(dāng)前狀態(tài),輸入信號);Moore狀態(tài)機
下一個狀態(tài)=F(當(dāng)前狀態(tài),輸入信號)
輸出信號=G(當(dāng)前狀態(tài));算法狀態(tài)機ASM算法狀態(tài)機(AlgorithmicStateMachine)和軟件的流程圖相似,但包含隱含的時序信息比狀態(tài)圖更容易讓人理解電路的執(zhí)行過程常用來描述復(fù)雜的時序系統(tǒng)用狀態(tài)的變化來描述系統(tǒng)算法狀態(tài)機ASM狀態(tài)輸出值Y=AJ01Z=1(a)狀態(tài)框(b)判斷框(c)條件輸出框1011判斷框J01判斷框表示狀態(tài)變量對控制器工作的影響注意:判斷框不占用時間狀態(tài)框如果一個信號沒有被賦值,則它在此狀態(tài)被置位,而在其它狀態(tài)被復(fù)位。一個狀態(tài)框占用一個時鐘脈沖周期條件輸出框條件框的入口必定與判斷框的輸出相連。注意:條件輸出框的輸出信號與它所屬的狀態(tài)框的輸出信號(包括判斷框)在同一時鐘周期內(nèi)被置位。ASM圖的綜合
–
狀態(tài)賦值狀態(tài)越多,可能的賦值數(shù)目隨之增加如果狀態(tài)表中有m個狀態(tài)
,則需要n個觸發(fā)器
One-hot編碼,需要m個觸發(fā)器
三個狀態(tài):001,010,100每次只有一個觸發(fā)器被置位次態(tài)邏輯可能比較簡單對于可編程的邏輯器件,‘one-hot’編碼系統(tǒng)使用的的資源可能會比用最少數(shù)量觸發(fā)器的系統(tǒng)使用少檢查系統(tǒng)故障相對容易些ASM舉例1-
序列檢測器檢測輸入X中是否含有101串如果輸入X中含有101時,那么當(dāng)輸入串101中最后一個1出現(xiàn)時,與此同步就有輸出Z=1,且Z=1時電路不復(fù)位。X=0011011001010100Z=0000010000010100Mealy機 VS Moore機Moore機需要更多的狀態(tài),不過更容易設(shè)計和調(diào)試Moore機的輸出不是在狀態(tài)轉(zhuǎn)移過程中產(chǎn)生的,而是完全由狀態(tài)本身決定Mealy機Moore機s0Z=0X=1Z=1Z=0X=0Z=0X=1s1s2TTTFFF000110s0Z=0X=1Z=0X=0Z=0X=1s1s2TTTFFF000111Z=1X=1s3T10ASM圖的綜合–序列檢測器(Mealy)當(dāng)前狀態(tài)下一狀態(tài)當(dāng)前輸出ZX=0X=1X=0X=1S0S0S100S1S2S100S2S0S101ABA’B’ZX=0X=1X=0X=1S0000100S1100100S2000101布爾量狀態(tài)表One-hotvs.Binarystateassignments0Z=0X=1Z=1Z=0X=0Z=0X=1s1s2TTTFFF000110XAB010000011011XX1000XAB010001010111XX1001XAB010000010011XX1001B’=XZ=XAA’B’Z輸出由當(dāng)前狀態(tài)及輸入決定A’=XBASM圖的綜合–序列檢測器(Mealy)次態(tài)邏輯寄存器輸出邏輯B’=XZ=XAA’=XBASM圖的綜合–序列檢測器(Mealy)moduleseqdet(x,z,clk,rst);inputx,clk,rst;outputz;wirez;reg[1:0]state;parameterA=2'b00,B=2'b01,C=2'b10;assignz=(state==C&&x==1)?1:0;always@(posedge
clkornegedge
rst)
if(!rst) begin state<=A; endelse
case(state) A:if(x) begin state<=B;end else begin state<=A; end
B:if(!x) begin state<=C; end else begin state<=B; end
C:if(x)beginstate<=B;endelse begin state<=A; enddefault:state<=A;
endcase
endmoduleMealy機仿真波形ASM圖的綜合–序列檢測器(Moore)當(dāng)前狀態(tài)下一狀態(tài)當(dāng)前輸出ZX=0X=1X=0X=1S0S0S100S1S2S100S2S0S300S3S2S101ABA’B’ZX=0X=1S000010S110010S200110S310010布爾量狀態(tài)表s0Z=0X=1Z=0X=0Z=0X=1s1s2TTTFFF000111Z=1X=1s3T10XAB010000011010011110XAB010001010110011101XAB0000010100111B’=XZ=ABA’B’Z輸出由當(dāng)前狀態(tài)決定A’=ABX+BXASM圖的綜合–序列檢測器(Moore)次態(tài)邏輯寄存器輸出邏輯ASM圖的綜合–序列檢測器(Moore)A’=ABX+BXB’=XZ=ABmoduleseqdet(
x,z,clk,rst);inputx,clk,rst;outputz;wirez;reg[1:0]state;parameterA=2'b00,B=2'b01,C=2'b10,D=2'b11;assignz=(state==D)?1:0;always@(posedge
clkornegedge
rst)
if(!rst)beginstate<=A;endelse
case(state) A:if(x)begin state<=B;end else begin state<=A; end
B:if(!x)beginstate<=C;endelse begin state<=B;end
C:if(x)beginstate<=D;endelse begin state<=A; endD:if(x)begin state<=B; endelsebegin state<=C;enddefault:state<=A;
endcase
endmoduleMoore機仿真波形ASM舉例2-
交通燈控制器主干路(major)次要馬路(minor)傳感器(sensor)常態(tài):主干路綠燈,次要馬路紅燈變態(tài):有小車在次要馬路行使,主干路紅燈,次要馬路綠燈。燈變化時,計數(shù)器開始工作。記時完成,燈恢復(fù)常態(tài)。輸入次要馬路的車,car計數(shù)器完成記時,timed輸出主干路燈次要馬路燈啟動計數(shù)器(start_timer)交通燈控制器major=greenminor=redcarstart_timermajor=redminor=greentimedGR00112態(tài)(G,R)狀態(tài)框,包含輸出:主干路燈G,次要路燈R判斷框,條件:car,timed條件輸出框,與輸出信號在同一個周期里被置位(set)交通燈控制器交通燈控制器交通燈控制器交通燈控制器moduletraffic_light_ctrl(rst,clk,car,timed,major_green,
minor_green,start_timer);inputrst,clk,car,timed;outputmajor_green,minor_green,start_timer;regstate,start_timer;parameterG=1’b0,R=1’b1;assignmajor_green=(state==G)?1:0;assignminor_green=(state==R)?1:0;always@(posedge
clk)if(!rst)begin
start_timer<=0;state<=G;endelse
case(state)G:if(car)begin
start_timer<=1;state<=R;endelsebegin
start_time<=0;state<=G;end
R:if(timed)beginstate<=G;endelsebeginstate<=R;enddefault:state<=G;endcaseendmodule
總結(jié)介紹了兩種狀態(tài)機Mealy機–輸出由輸入和當(dāng)前狀態(tài)決定Moore機
-輸出僅由當(dāng)前狀態(tài)決定介紹了ASM圖的構(gòu)成狀態(tài)框,判斷框,條件輸出框ASM圖的設(shè)計,綜合以及VHDL的描述序列檢測器比較了Mealy機和Moore機設(shè)計方法上的不同ASM圖->狀態(tài)表->真值表->卡洛圖->電路圖One-hot編碼,二進制編碼交通燈控制器4位串行加法器Serialadders0Sh=0K=0Ld=0cnt=0N=1Ld=1Sh=1K=0Ld=0s1cnt=2cnt++Sh=0K=1Ld=0s2cnt++N=0TFTFFT串行加法器控制器二進制乘法器BinaryMultiplier13x11一次計算一個二進制加法4位數(shù)的乘法:1個4位被乘數(shù)寄存器(multiplicandregister),
1個4位乘數(shù)寄存器(multiplierregister),
1個4位全加器
1個用于存儲乘積的8位寄存器(accumulator)k二進制乘法器BinaryMultiplier二進制乘法器BinaryMultiplier二進制乘法器控制電路的ASM二進乘法器控制電路二進制乘法器BinaryMultiplier二進制乘法器BinaryMultiplier乘法器設(shè)計modulemul(clk,rst,x,y,p);inputclk,rst;input[7:0]x,y;output[15:0]p;reg[15:0]p;parameters0=0,s1=1,s2=2;reg[2:0]count;reg[1:0]state;reg[15:0]p_reg,x_reg;reg[7:0]y_reg;always@(posedge
clk)beginif(rst==1) begin state<=s0;
y_reg<=8'd0;
p_reg<=16'd0;
x_reg<=16'd0; count<=3'd0; endcase(state) s0:begin//初始化
y_reg<=y; count<=3'd0;
p_reg<=16'd0;
x_reg<={{8{x[7]}},x}; state<=s1; end s1:begin//處理過程
if(count==3'd7)//判斷是否處理結(jié)束
state<=s2; else begin if(y_reg[0]==1) begin
p_reg<=p_reg+x_reg;
y_reg<=y_reg>>1;//右移一位
x_reg<=x_reg<<1; count<=count+1; end end s2:begin p<=p_reg; state<=s0; end
endcase;end
endmodule無符號數(shù)除法器除法的運算過程:除法可以分解成一系列的減法和移位運算;并行除法器實現(xiàn)框圖Su:減信號C:比較器輸出無符號數(shù)除法器除法控制電路ASM圖無符號數(shù)除法器a>>32Temp_a>Temp_bTemp_aTemp_a<1cnt++;cnt=32?Temp_a-Temp_b+1b<<32Temp_b是否out<=temp_a是除法器控制電路的狀態(tài)表無符號數(shù)除法器`timescale1ns/1psmoduleDivider16(Clk,RSTn,Cal_Start,Dividend,Divisor,Quotient,Cal_Done);//I/OPortsinputClk;inputRSTn;inputCal_Start; //計算開始input[15:0]Dividend; input[15:0]Divisor;output[15:0]Quotient;
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工款合同范例
- 員工車庫轉(zhuǎn)讓合同范例
- 商品房銷售合同范例
- 雜貨店轉(zhuǎn)讓合同范例
- 公廁人員勞動合同范例
- 正規(guī)簡易勞動合同范例
- 加工外貿(mào)合同范例
- 建材代理加盟合同范例
- 小裝修合同范例
- 農(nóng)家樂住宿房裝修合同范例
- FSSC22000V6.0變化點和文件修改建議
- 小學(xué)音樂教學(xué)案例
- 2021-2022學(xué)年北京市豐臺區(qū)北京版二年級上冊期末測試數(shù)學(xué)試卷
- 老舊排水管網(wǎng)改造 投標(biāo)方案(技術(shù)方案)
- 臨床醫(yī)學(xué)概論復(fù)習(xí)資料
- 國家開放大學(xué)-法學(xué)專業(yè)-2023年秋季《法律文化》形成性考核作業(yè)答案
- 2024全國養(yǎng)老護理職業(yè)技能大賽養(yǎng)老護理員賽項備考試題庫500題(含答案)
- 2024年公安機關(guān)人民警察高級執(zhí)法資格考試試卷含答案(案例分析題 論述題)
- 2024屆新高考英語練習(xí):動詞的時態(tài)和語態(tài)
- 推進新型工業(yè)化思考
- 2021年普通高等學(xué)校招生全國統(tǒng)一考試(新高考全國II卷) 英語 Word版無答案
評論
0/150
提交評論