Verilog數(shù)字系統(tǒng)設(shè)計(jì)-復(fù)雜邏輯_第1頁
Verilog數(shù)字系統(tǒng)設(shè)計(jì)-復(fù)雜邏輯_第2頁
Verilog數(shù)字系統(tǒng)設(shè)計(jì)-復(fù)雜邏輯_第3頁
Verilog數(shù)字系統(tǒng)設(shè)計(jì)-復(fù)雜邏輯_第4頁
Verilog數(shù)字系統(tǒng)設(shè)計(jì)-復(fù)雜邏輯_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5講—復(fù)雜數(shù)字系統(tǒng)的構(gòu)成數(shù)字系統(tǒng)設(shè)計(jì)

(Verilog)本章提要組合邏輯電路(CombinationalNetworks)的簡單review時(shí)序電路(SequentialNetworks)的時(shí)序Moore機(jī)和Mealy機(jī)ASM圖ASM的設(shè)計(jì),綜合以及Verilog描述

數(shù)字邏輯電路的構(gòu)成

組合邏輯:輸出只是輸入邏輯電平的函數(shù)(有延時(shí)),與電路的原始狀態(tài)無關(guān)。時(shí)序邏輯:輸出不只是輸入的邏輯電平的函數(shù),還與電路所處的狀態(tài)有關(guān)。

同步時(shí)序邏輯是在同一時(shí)鐘跳變節(jié)拍的前提下,如輸入條件滿足,則進(jìn)入下一狀態(tài),否則仍留在原來的狀態(tài)的狀態(tài)機(jī)。時(shí)序電路時(shí)序邏輯塊模型鎖存器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時(shí)序電路的時(shí)序–

tp,tsu,th傳輸延遲tp(propagationdelay)—從輸入時(shí)鐘發(fā)生變化(一般是risingedge)到輸出Q發(fā)生改變建立時(shí)間tsu(setuptime)—輸入D必須在時(shí)鐘上升沿到來之前一段時(shí)間保持穩(wěn)定保持時(shí)間th(holdtime)—輸入D必須在時(shí)鐘上升沿之后一段時(shí)間內(nèi)也保持穩(wěn)定計(jì)時(shí)度量clockInOutdatastableoutputstableoutputstabletimetimetimeclockDQInOuttsutholdtc-q系統(tǒng)時(shí)序約束CombinationalLogicclockOutputsStateRegistersNextStateCurrentStateInputsT

tc-q+tplogic+tsutcdreg+tcdlogic

tholdT(clockperiod)時(shí)序電路的時(shí)序條件1)時(shí)鐘周期足夠長,以滿足觸發(fā)器建立時(shí)間tsu,以及觸發(fā)器輸出改變需要的時(shí)間的最大值tpmax和組合電路輸出的改變需要的時(shí)間的最大值tcmax的要求

tck>=tpmax+tcmax+tsu2)時(shí)鐘周期要足夠長,以滿足觸發(fā)器保持時(shí)間th的要求

tpmin

+tcmin>=th分頻器由一個(gè)FF和NOTgate組成fQ=1/2fclktp:D到Q的延遲 tc:組合電路的延遲,也即Q到D的延遲問題: 如果fclk增加過大,由于NOTgate的tc的存在,觸發(fā)器輸入滿 足不了tsu的要求。 如果tc很短,也有可能滿足不了th的要求時(shí)序電路的時(shí)序條件-續(xù)3)電路外部輸入X的改變應(yīng)滿足觸發(fā)器建立時(shí)間tsu的要求tx>=txcmax+tsu。tcxmax=從輸入X變換到觸發(fā)器輸入端的最大傳輸延遲abtx的安全區(qū)域在時(shí)間軸a之前c時(shí)序電路的時(shí)序條件-續(xù)4)電路外部輸入X的改變應(yīng)滿足觸發(fā)器的保持時(shí)間thdety的安全區(qū)域在時(shí)間軸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在有效時(shí)鐘沿到來后6ns內(nèi)不會(huì)改變,滿足th的要求分頻器時(shí)鐘偏移和抖動(dòng)PLL1243567clockgenerationclockdriverspowersupplyinterconnectcapacitiveloadcapacitivecouplingtemperatureSkewmanufacturingdevicevariationsinclockdriversinterconnectvariationsenvironmentalvariations(powersupplyandtemperature)Jitterclockgenerationcapacitiveloadingandcouplingenvironmentalvariations(powersupplyandtemperature)同步設(shè)計(jì)一個(gè)時(shí)鐘對系統(tǒng)所有的觸發(fā)器,寄存器和計(jì)數(shù)器同步典型的數(shù)字系統(tǒng)可以分為控制部分和數(shù)據(jù)處理部分典型的同步數(shù)字系統(tǒng)i.e.如果數(shù)據(jù)處理器datasection包含一個(gè)移位寄存器shiftregister,那么控制部分controlsection則產(chǎn)生控制信號(hào)load和shift,決定寄存器何時(shí)被載入或者何時(shí)進(jìn)行移位。數(shù)據(jù)處理部分可以產(chǎn)生狀態(tài)信號(hào)來響應(yīng)例如算數(shù)溢出overflow。下降沿觸發(fā)的同步系統(tǒng)上升沿觸發(fā)的同步系統(tǒng)同步系統(tǒng)設(shè)計(jì)原則方法:所有輸入到觸發(fā)器,寄存器和計(jì)數(shù)器等部件的時(shí)鐘,必須是由系統(tǒng)時(shí)鐘直接驅(qū)動(dòng)的。結(jié)果:所有的狀態(tài)變化均在時(shí)鐘的有效沿(risingorfallingedges)發(fā)生。優(yōu)勢:所有的開關(guān)暫態(tài),開關(guān)噪聲和其他干擾均發(fā)生在時(shí)鐘脈沖間,對系統(tǒng)性能沒有影響。*系統(tǒng)的最大時(shí)鐘頻率由最長路徑的最大延遲決定數(shù)字系統(tǒng)的構(gòu)成示意圖有限狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖圖形表示:狀態(tài)、轉(zhuǎn)移、條件和邏輯開關(guān)有限狀態(tài)機(jī)的Verilog描述定義模塊名和輸入輸出端口;定義輸入、輸出變量或寄存器;定義時(shí)鐘和復(fù)位信號(hào);定義狀態(tài)變量和狀態(tài)寄存器;用時(shí)鐘沿觸發(fā)的always塊表示狀態(tài)轉(zhuǎn)移過程;在復(fù)位信號(hào)有效時(shí)給狀態(tài)寄存器賦初始值;描述狀態(tài)的轉(zhuǎn)換過程:符合條件,從一個(gè)狀態(tài)到另外一個(gè)狀態(tài),否則留在原狀態(tài);驗(yàn)證狀態(tài)轉(zhuǎn)移的正確性,必須完整和全面。同步有限狀態(tài)機(jī)種類Moore和Mealy機(jī)Moore機(jī)僅輸出當(dāng)前狀態(tài)的函數(shù)Mealy機(jī)輸出的是當(dāng)前狀態(tài)和輸入的函數(shù)Mealy狀態(tài)機(jī)

下一個(gè)狀態(tài)=F(當(dāng)前狀態(tài),輸入信號(hào));

輸出信號(hào)=G(當(dāng)前狀態(tài),輸入信號(hào));Moore狀態(tài)機(jī)

下一個(gè)狀態(tài)=F(當(dāng)前狀態(tài),輸入信號(hào))

輸出信號(hào)=G(當(dāng)前狀態(tài));算法狀態(tài)機(jī)ASM算法狀態(tài)機(jī)(AlgorithmicStateMachine)和軟件的流程圖相似,但包含隱含的時(shí)序信息比狀態(tài)圖更容易讓人理解電路的執(zhí)行過程常用來描述復(fù)雜的時(shí)序系統(tǒng)用狀態(tài)的變化來描述系統(tǒng)算法狀態(tài)機(jī)ASM狀態(tài)輸出值Y=AJ01Z=1(a)狀態(tài)框(b)判斷框(c)條件輸出框1011判斷框J01判斷框表示狀態(tài)變量對控制器工作的影響注意:判斷框不占用時(shí)間狀態(tài)框如果一個(gè)信號(hào)沒有被賦值,則它在此狀態(tài)被置位,而在其它狀態(tài)被復(fù)位。一個(gè)狀態(tài)框占用一個(gè)時(shí)鐘脈沖周期條件輸出框條件框的入口必定與判斷框的輸出相連。注意:條件輸出框的輸出信號(hào)與它所屬的狀態(tài)框的輸出信號(hào)(包括判斷框)在同一時(shí)鐘周期內(nèi)被置位。ASM圖的綜合

狀態(tài)賦值狀態(tài)越多,可能的賦值數(shù)目隨之增加如果狀態(tài)表中有m個(gè)狀態(tài)

,則需要n個(gè)觸發(fā)器

One-hot編碼,需要m個(gè)觸發(fā)器

三個(gè)狀態(tài):001,010,100每次只有一個(gè)觸發(fā)器被置位次態(tài)邏輯可能比較簡單對于可編程的邏輯器件,‘one-hot’編碼系統(tǒng)使用的的資源可能會(huì)比用最少數(shù)量觸發(fā)器的系統(tǒng)使用少檢查系統(tǒng)故障相對容易些ASM舉例1-

序列檢測器檢測輸入X中是否含有101串如果輸入X中含有101時(shí),那么當(dāng)輸入串101中最后一個(gè)1出現(xiàn)時(shí),與此同步就有輸出Z=1,且Z=1時(shí)電路不復(fù)位。X=0011011001010100Z=0000010000010100Mealy機(jī) VS Moore機(jī)Moore機(jī)需要更多的狀態(tài),不過更容易設(shè)計(jì)和調(diào)試Moore機(jī)的輸出不是在狀態(tài)轉(zhuǎn)移過程中產(chǎn)生的,而是完全由狀態(tài)本身決定Mealy機(jī)Moore機(jī)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機(jī)仿真波形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機(jī)仿真波形ASM舉例2-

交通燈控制器主干路(major)次要馬路(minor)傳感器(sensor)常態(tài):主干路綠燈,次要馬路紅燈變態(tài):有小車在次要馬路行使,主干路紅燈,次要馬路綠燈。燈變化時(shí),計(jì)數(shù)器開始工作。記時(shí)完成,燈恢復(fù)常態(tài)。輸入次要馬路的車,car計(jì)數(shù)器完成記時(shí),timed輸出主干路燈次要馬路燈啟動(dòng)計(jì)數(shù)器(start_timer)交通燈控制器major=greenminor=redcarstart_timermajor=redminor=greentimedGR00112態(tài)(G,R)狀態(tài)框,包含輸出:主干路燈G,次要路燈R判斷框,條件:car,timed條件輸出框,與輸出信號(hào)在同一個(gè)周期里被置位(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)機(jī)Mealy機(jī)–輸出由輸入和當(dāng)前狀態(tài)決定Moore機(jī)

-輸出僅由當(dāng)前狀態(tài)決定介紹了ASM圖的構(gòu)成狀態(tài)框,判斷框,條件輸出框ASM圖的設(shè)計(jì),綜合以及VHDL的描述序列檢測器比較了Mealy機(jī)和Moore機(jī)設(shè)計(jì)方法上的不同ASM圖->狀態(tài)表->真值表->卡洛圖->電路圖One-hot編碼,二進(jìn)制編碼交通燈控制器4位串行加法器Serialadders0Sh=0K=0Ld=0cnt=0N=1Ld=1Sh=1K=0Ld=0s1cnt=2cnt++Sh=0K=1Ld=0s2cnt++N=0TFTFFT串行加法器控制器二進(jìn)制乘法器BinaryMultiplier13x11一次計(jì)算一個(gè)二進(jìn)制加法4位數(shù)的乘法:1個(gè)4位被乘數(shù)寄存器(multiplicandregister),

1個(gè)4位乘數(shù)寄存器(multiplierregister),

1個(gè)4位全加器

1個(gè)用于存儲(chǔ)乘積的8位寄存器(accumulator)k二進(jìn)制乘法器BinaryMultiplier二進(jìn)制乘法器BinaryMultiplier二進(jìn)制乘法器控制電路的ASM二進(jìn)乘法器控制電路二進(jìn)制乘法器BinaryMultiplier二進(jìn)制乘法器BinaryMultiplier乘法器設(shè)計(jì)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無符號(hào)數(shù)除法器除法的運(yùn)算過程:除法可以分解成一系列的減法和移位運(yùn)算;并行除法器實(shí)現(xiàn)框圖Su:減信號(hào)C:比較器輸出無符號(hào)數(shù)除法器除法控制電路ASM圖無符號(hào)數(shù)除法器a>>32Temp_a>Temp_bTemp_aTemp_a<1cnt++;cnt=32?Temp_a-Temp_b+1b<<32Temp_b是否out<=temp_a是除法器控制電路的狀態(tài)表無符號(hào)數(shù)除法器`timescale1ns/1psmoduleDivider16(Clk,RSTn,Cal_Start,Dividend,Divisor,Quotient,Cal_Done);//I/OPortsinputClk;inputRSTn;inputCal_Start; //計(jì)算開始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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論