硬件描述語言7_第1頁
硬件描述語言7_第2頁
硬件描述語言7_第3頁
硬件描述語言7_第4頁
硬件描述語言7_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講:信息與通信學院謝躍雷(副教授)硬件描述語言及其在數字系統中的應用2/3/20231GUETSchoolofInformation&Communications第五講現代數字系統設計數字系統的描述方法數字系統算法設計算法流程圖算法結構2/3/20232GUETSchoolofInformation&Communications5.1數字系統模型為便于分析和設計數字系統,有必要選擇適當的模型對系統進行描述。數字系統的動態模型和算法模型是兩種基本的有效模型。1.動態模型指在數字邏輯設計中,采用傳統的狀態轉換圖,狀態轉換表,狀態方程,輸出方程,時序圖,真值表,卡諾圖等描述工具的數字系統稱為動態模型。2/3/20233GUETSchoolofInformation&Communications顯然,在傳統數字電路中學習采用的都是動態模型。

例如:舉重比賽有三位裁判,一位是主裁判A,另兩位是副裁判B和C,運動員一次舉重是否成功,由裁判員各自按動面前的按鈕決定,只有兩人以上,且其中必須有主裁判判定為成功時,表示成功的指示燈L才會燃亮。

ABC

L00000010010001101000101111011111真值表函數式:L=A(B+C)&ALBC2/3/20234GUETSchoolofInformation&Communications例:設計一個串行數據檢測電路,當連續輸入3個或3個以上“1”時,電路輸出為“1”,其它情況下輸出為“0”。例如:輸入X101100111011110輸出Z000000001000110狀態表2/3/20235GUETSchoolofInformation&Communications2.算法模型設計數字系統的傳統方法是建立在系統動態模型的基礎上的。對于較復雜的數字系統,動態模型難以適用,數字技術人員現今普遍采用系統算法模型來描述和設計數字系統。系統算法模型思想:將系統實現的功能看作是應完成的某種運算。若運算太復雜,可把它分解成一系列子運算(子功能),若子運算還較復雜,可以繼續分解,直到分解為一系列簡單運算。2/3/20236GUETSchoolofInformation&Communications然后按一定的規律,順序地或并行地進行這些簡單的基本運算,從而,實現原來復雜系統的功能。算法就是對這種有規律、有序分解的一種描述。事實證明,任何一個系統都可以用算法模型來進行描述。

系統的算法模型通常具有兩大特征:(1)含有若干子運算,這些子運算實現對欲處理數據或信息的傳輸、存儲或加工處理。(2)具有相應的控制序列,控制子運算按一定的規律有序地進行。

2/3/20237GUETSchoolofInformation&Communications例:設計一個串行數據檢測電路,當連續輸入3個或3個以上“1”時,電路輸出為“1”,其它情況下輸出為“0”。例如:輸入X101100111011110輸出Z0000000001000110求其算法模型?解:實現該系統功能應由三個存貯單元R1、R2和R3,分別存放輸入信號x(t-1)、x(t)、x(t+1)的數據,然后再根據以下檢測規則決定輸出Z

(1)當x(t-1)=x(t)=x(t+1)=1,輸出Z=1即Z=R1&R2&R3。(2)其它情況Z=0。每經過一次檢測,則將后進入的數據取代先進入的數據,又送進一個新的數據,此過程周而復始地進行。

以上就是串行數據檢測算法,如何描述該算法模型?可借助軟件設計中的流程圖描述法2/3/20238GUETSchoolofInformation&Communications圖5.1.3序列檢測系統算法流程圖開始t=0Z=0t=t+1Z=1Z=0R1=R2=R3=1?

NOYESR1X(t)R2R1R3R2以圖形像地給出了需要進行的操作以及進行這些操作的條件和順序。與軟件設計中的流程圖相同,稱為算法流程圖。工作塊:矩形判別塊:菱形條件塊:矩形開始結束2/3/20239GUETSchoolofInformation&Communicationsmoduleser_detector(z,x,clk);inputx,clk;outputz;regr1,r2,r3;always@(posedgeclk)beginr3<=r2;r2<=r1;r1<=x;endassignz=r1&r2&r3;endmodule2/3/202310GUETSchoolofInformation&CommunicationsQuartusii仿真結果

synplify綜合結果

算法模型并非都不可綜合2/3/202311GUETSchoolofInformation&Communications5.2算法狀態機圖(ASM)

算法流程圖是基于事件驅動,僅規定了操作的順序,并未規定操作的時間及操作之間的時序關系,因此算法流程圖和硬件之間的對應并不嚴格,一般無法直接用Verilog描述。為克服這一缺點,引入另一種描述方法ASM(Algorithmicstatemachine)圖。

ASM圖是按照一組簡單和明確的規則繪制的。在時序電路的ASM圖中,每一個狀態由一個ASM塊來表示。一個ASM塊是一種小型的符號化結構圖,由它指出了當前狀態、它的輸出和次態的條件。一個數字系統所有狀態的ASM塊,按照一定的順序聯結成一個網狀結構,由此產生的ASM圖可用來精確地描述系統所具有的功能。2/3/202312GUETSchoolofInformation&Communications1、基本符號

ASM圖包含三種不同類型的符號:矩形狀態框、菱形判別框和條件輸出框。入口出口狀態輸出表(a)狀態框狀態名狀態編碼狀態框

(statebox)記憶該狀態下所產生的控制信號、寄存器操作每一狀態賦予一名稱,標記于左上方指定給狀態之二進制編碼置于右上方例如一狀態名稱為IDLE,指定二進制碼011,寄存器操作為R0,并啟動某操作的控制信號R<-0RUNIDLE0112/3/202313GUETSchoolofInformation&Communications條件輸出表入口出口(c)條件輸出框條件入口條件假出口0條件真出口1(b)判別框判別框

(decisionbox)描述輸入對控制子系統之效應,輸入條件為單一變量或布爾表達式以有二個或更多出口路徑之菱形表示,測試條件標記于內若判別框有二輸出,則一為TRUE(1),另一為FALSE(0)條件框

(conditionaloutputbox)為ASM特有,以橢圓表示輸入路徑必須來自判別框出口之一條件框內的輸出或寄存器操作,在輸入條件滿足的狀態下才會發生。2/3/202314GUETSchoolofInformation&CommunicationsASM塊范例1個狀態框:IDLE2個判別框:STARTQ01個條件框A2、ASM塊

ASM圖的基本單元是ASM塊,ASM塊必含一個矩形狀態框,菱形判斷框和條件輸出框可選。AVAILSTARTA<-0Q0IDLE0101MUL0MUL1ASM塊2/3/202315GUETSchoolofInformation&Communications特點:只有一個狀態框只有一條進入路徑,可以有多條離開路徑塊內所有的操作必須與系統同步在一個clock(T)內完成相同的CLOCK會使系統控制狀態轉移到IDLE、MUL0、MUL1中的一個狀態AVAILSTARTA<-0Q0IDLE0101MUL0MUL1entryexitexitexit注:ASM塊等同于時序機的狀態,對于一個給定的ASM圖,用狀態轉換圖也可以表示同樣的信息,但是對機器的動作表示不清晰2/3/202316GUETSchoolofInformation&Communications并行(parallel)模式與串行(serial)模式當x1=1,x2=1,x3=02/3/202317GUETSchoolofInformation&Communications原則1:在算法的起始點安排一個狀態;原則2:必須用狀態來分開不能同時實現的寄存器傳輸操作;3、算法流程圖→ASM圖算法流程圖的工作塊、判別塊和條件操作塊分別對應于ASM圖的狀態框、條件判別框和條件輸出框。轉換時遵循以下原則:原則3:判斷如果受寄存器操作的影響,應在它們之間安排一個狀態。2/3/202318GUETSchoolofInformation&CommunicationsRR←DATARR←(RR-1)算法流程圖工作塊LD=0CPR=1LD=1CPR=0ASM圖SiSi+1011100狀態框確定控制信號:LD=0RR←DATACPR=0RR←(RR-1)a)工作塊對應狀態塊2/3/202319GUETSchoolofInformation&Communicationsb)條件操作塊和條件輸出塊RAM=0SOE?YNSRSOE?YNSL01010110Cr=0算法流程圖ASM圖控制信號:Cr=0RAM←02/3/202320GUETSchoolofInformation&Communications

由算法流程圖轉換為ASM圖時,判斷A+1之后的值,需要插入一個方框。c)轉換原則三2/3/202321GUETSchoolofInformation&Communications例:設計一個自動報紙銷售機設計—個簡單的數字電路用于電子的報紙售賣機的投幣器。假設報紙價格為1.5元。投幣器只能接受5角和1元的硬幣。必須提供適當數目的零錢,投幣器不找錢。合法的硬幣組合包括1個5角的硬幣和1個1元的硬幣,3個5角的硬幣,1個1元硬幣和1個5角的硬幣,2個1元的硬幣是合法的,但是投幣器不找錢。當投幣滿足時,送出一份報紙假定輸入硬幣由AB表示:00-無投幣01-5角10-1元2/3/202322GUETSchoolofInformation&Communications算法流程圖開始Coin<=0Paper<=0waitcoinABCoin=coinCoin=coin+10Coin=coin+5Coin>=15?Paper=1rstYNYN000110Coin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s2ASM圖2/3/202323GUETSchoolofInformation&Communicationsmodulepaper_seller(paper,clk,rst,ab);inputclk,rst;input[1:0]ab;outputpaper;regpaper;reg[4:0]coin;reg[1:0]state;parameters0=2'b00,s1=2'b01,s2=2'b10;always@(posedgeclk)if(rst)beginstate<=s0;paper<=1'b0;endelseCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202324GUETSchoolofInformation&Communicationscase(state)s0:begincoin<=5'b00000;

state<=s1;paper<=1'b0;ends1:beginif(ab==2'b01)

coin<=coin+5;elseif(ab==2'b10)

coin<=coin+10;state<=s2;endCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202325GUETSchoolofInformation&Communicationss2:begin

if(coin>=15)beginpaper<=1'b1;state<=s0;

end

elsestate<=s1;endendcaseendmoduleCoin<=0Paper<=0waitcoinABCoin>=15?rstCoin=coin+5Coin=coin+10Paper=1s0s1s22/3/202326GUETSchoolofInformation&Communications2/3/202327GUETSchoolofInformation&Communications2/3/202328GUETSchoolofInformation&Communications設計要求:設計一個十字路口交通燈控制系統。

東西道為主道,南北道為副道。如果東西道(EW)及南北道(NS)均有車,則東西道每次通行60秒(綠燈),南北道每次通行40秒(綠燈)。如果僅有一個通道有車,則禁止無車通道(紅燈);如果兩通道均無車,則禁止南北道。通道轉換時,綠燈通道均需停車3秒(黃燈)。控制信號:輸出燈光信號

NSRedNSGeenNSYellowEWRedEWGeenEWYellow實例2:交通燈控制系統2/3/202329GUETSchoolofInformation&Communications開始東西道通行南北道禁止南北有車且東西無車或南北東西均有車且達到60秒東西停車南北停車3秒東西道禁止南北道通行南北無車且東西有車或南北東西均有車且達到40秒南北停車東西停車3秒0011分析:由題目得十字路口交通燈控制器大致流程圖細化問題:

(1)如何判斷有無車?

傳感器:NSCAR

EWCAR(2)如何定時?如何啟動定時?

定時器:TM60ENTM60

TM40ENTM40

TM3ENTM3

2/3/202330GUETSchoolofInformation&CommunicationsSTARTEWPASS,NSSTOPNSCAR=1?EWCAR=1?60秒?3秒?00001111EWSTOP,NSPASSNSCAR=1?EWCAR=1?40秒?3秒?000EWHOLD,NSHOLD01111EWHOLD,NSHOLD十字路口交通燈算法流程圖:2/3/202331GUETSchoolofInformation&Communications控制信號列表:傳感器定時器定時器使能輸出燈光信號

NSCARTM60ENTM60NSRed

EWCARTM40ENTM40NSGeen

TM3ENTM3NSYellowEWRedEWGeenEWYellow該系統是以控制為主的系統,其數據單元僅包含定時器,接收ENTM60、ENTM40、ENTM3使信號,給出TM60、TM40、TM3信號。2/3/202332GUETSchoolofInformation&Communications由算法流程圖轉換成ASM圖NSCAREWCARTM300001111NSCAREWCARTM40TM300001111EWGeenNSRed,ENTM60NSRedEWYellow,ENTM300S0S101NSGreenEWRed,ENTM40EWRedNSYellow,ENTM31110S2S3TM602/3/202333GUETSchoolofInformation&Communicationsmoduletraffic_light_control_unit(nsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3,clk,rst,ewcar,nscar,tm60,tm40,tm3);outputnsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3;input

clk,rst,ewcar,nscar,tm60,tm40,tm3;

regnsred,nsgreen,nsyellow,ewred,ewgreen,ewyellow,entm60,entm40,entm3;

parameters0=2'b00,s1=2'b01,s2=2'b11,s3=2'b10;

reg[1:0]next_state,state;2/3/202334GUETSchoolofInformation&Communicationsalways@(posedgeclk)

if(rst)state<=s0;

elsestate<=next_state;always@(stateorewcarornscarortm60ortm40ortm3)

case(state)2/3/202335GUETSchoolofInformation&Communicationss0:begin

nsred=1'b1;nsgreen=1'b0;nsyellow=1'b0;ewred=1'b0;ewgreen=1'b1;ewyellow=1'b0;entm60=1'b1;entm40=1'b0;entm3=1'b0;

if((nscar&ewcar&tm60)|(nscar&(!ewcar)))

next_state<=s1;else

next_state<=s0;

end2/3/202336GUETSchoolofInformation&Communicationss1:beginnsred=1'b1;nsgreen=1'b0;nsyellow=1'b0;ewred=1'b0;ewgreen=1'b0;ewyellow=1'b1;entm60=1'b0;entm40=1'b0;entm3=1'b1;

if(tm3)next_state<=s2;

elsenext_state<=s1;

end2/3/202337GUETSchoolofInformation&Communicationss2:beginnsred=1'b0;nsgreen=1'b1;nsyellow=1'b0;ewred=1'b1;ewgreen=1'b0;ewyellow=1'b0;entm60=1'b0;entm40=1'b1;entm3=1'b0;if((nscar&ewcar&tm40)|(!nscar))next_state<=s3;

elsenext_state<=s2;

end2/3/202338GUETSchoolofInformation&Communicationss3:beginnsred=1'b0;nsgreen=1'b0;nsyellow=1'b1;ewred=1'b1;ewgreen=1'b0;ewyellow=1'b0;entm60=1'b0;entm40=1'b0;entm3=1'b1;

if(tm3)next_state<=s0;

elsenext_state<=s3;

end

endcaseendmodule2/3/202339GUETSchoolofInformation&Communicationsmodule

traffic_light_data_path(tm60,tm40,tm3,clk,rst,entm60,entm40,entm3);

outputtm60,tm40,tm3;inputclk,rst;

inputentm60,entm40,entm3;

regtm60,tm40,tm3;

reg[7:0]cnt;

reg[7:0]cnt_data;

parametert60=8'b11000000,t40=8'b10000000,t3=8'b00010000;2/3/202340GUETSchoolofInformation&Communicationsalways@(entm60orentm40orentm3)

begincase

({entm60,entm40,entm3})3'b100:cnt_data<=t60;3'b010:cnt_data<=t40;3'b001:cnt_data<=t3;3'b000:cnt_data<=0;

endcaseend2/3/202341GUETSchoolofInformation&Communicatio

溫馨提示

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

評論

0/150

提交評論