第9章數字系統設計基礎_第1頁
第9章數字系統設計基礎_第2頁
第9章數字系統設計基礎_第3頁
第9章數字系統設計基礎_第4頁
第9章數字系統設計基礎_第5頁
免費預覽已結束,剩余105頁可下載查看

下載本文檔

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

文檔簡介

第9章9.1數字系統9.2十字 通燈控制系統設9.38位模型數字系統圖9-1數字系統的作步驟。控制子系統控制數字系統的整個操作9.1.2數字系統設計的一般””“自頂向下”的設計圖9-2自頂向下的設計方明確系統確定總體確定系統控制算法基礎。系統仿真EDA(ElectronicDesignAutomation)軟件對所設計電路通過軟件仿如的統要就可用 現系現統底向上”進先各功,再將們子,行統體調試。十字 通燈控制系統設十字 通燈控制系統要完成對十字 通信號燈的制,系統功能與使用要求如十字路主干道和支干道均有紅、綠、黃三種通常保才轉為主干道紅燈,支干道若僅一個該方向原來為紅燈時,另一個方向立即由綠燈變為黃燈,5由黃燈變為紅燈,同時本方向由紅燈變為綠燈總體方案根據交通燈控制系統的功能,確定采用如下方案()和,只要或A和B。設黃燈5秒時間到時T5=1,時間未到時T5=0燈25秒時間到時,T25=1,時間未到時T25=0時==、與T25滅,分別用BG、BY、BR表示。用0表示滅、1表9-1交通燈輸出狀輸出狀100001010001001100001010北道道BG2BY2AG2AY2AR2 道AG1AY1道

主干BR1BY1支干南

圖9-3車輛傳感器及交通燈示十字 通燈控制系統結構圖9-4十字 通燈控制系統結構基于邏輯部件的系統設1.數據子系2為5所示,25.1 1723 06549P.圖9-55進制計數器的邏輯圖9-625進制計數器的邏輯電控制子系統的設計圖9-7圖9-7控制系統的狀態轉BB道有車A道無車(AX=0),或者25秒定時時間到(T25=1)也就是,AK=BX(AX'+BB道無車A道有車(AX=1),且25秒定時時間到(T25=1)也就表9-2交通燈控制器狀態轉換(Q1現態(Q1A道綠燈,B道紅10000110A道黃燈,B01000101A道紅燈,B道綠00110010A道紅燈,B道黃00101001十字 通燈控制子系統邏輯電圖9-8十字 通燈控制子系統邏輯電系統硬件電路集成與功、、、、B基于VHDL的系統設計與 通燈控制系統實現方法 頂層設 AXAR TT

圖9-9十字 通燈控制系統的頂層設計原理(2) (例如:fre.FSM),從而實現一個完整的十字通燈控制系統(1)分頻模塊fre的VHDL源程序說明:此模塊用于產生1Hz的系統時LIBRARYENTITYfreIS(clk_inINSTD_LOGIC;晶振時鐘源輸入clk_out:OUTSTD_LOGIC ENDfre;ARCHITECTUREfre_architectureOFfreVARIABLEcount:INTEGERRANGE0TO ;--計數器IF )ELSIF(clk_in’EVENTANDclk_in=‘1’)ENDENDEND(2)控制器FSM的VHDL源程說明:此模塊--命名規則:(A道)(B道),即AG表示A道為綠燈,BR表示B道為紅燈ENTITYFSMISAX:INSTD_LOGIC;BX:IN

--主干道(A道)車輛傳感器,指示A--支干道(B道)車輛傳感器,指示BRESET:INSTD_LOGIC;CLK:INSTD_LOGIC;AG:OUTSTD_LOGIC;AY:OUTSTD_LOGIC;AR:OUTSTD_LOGIC;BG:OUTSTD_LOGIC;BY:OUTSTD_LOGIC;BR:OUTSTD_LOGIC;END

--系統--系統時鐘頻--A道綠--A--A道紅--B道綠--B--B--系統時鐘輸出,用于調試ARCHITECTUREFSM_architectureOFFSMISCONSTANTtimeMAX:INTEGER:=30;--交通燈變換間隔最大時CONSTANTtimeGR:INTEGER:=--A道綠燈、B道紅燈的CONSTANTtimeYR:INTEGER:=CONSTANTtimeRGINTEGER25;--A道紅燈、B道綠燈的CONSTANTtimeRY:INTEGER:=--A道紅燈、B道黃燈的TYPEstateISSIGNALpr_state,nx_statestate;SIGNALtime:INTEGERRANGE0TOSIGNAL VARIABLEcount:INTEGERRANGE0TOtimeMAX;VARIABLEtimeREADY:STD_LOGIC; VARIABLEAKorBKorT5:STD_LOGIC;--狀態轉換標志

-- --ELSIF(CLK’EVENTANDELSEtimeREADY:='0';ENDIF;IF(pr_state=GR)AKorBKorT5:=BXAND(NOTAXORELSIF(pr_state=YR)ELSIF(pr_state=RG)AKorBKorT5:=(NOTBX)OR(AXANDELSIF(pr_state=RY)ENDIF(AKorBKorENDIF;ENDIF;ENDCASEpr_state

--狀態轉換WHENGRWHENYR=>WHENRGWHENRYENDENDEND圖9-10十字 通燈控制系統的仿真波 法是,采用QuartusII提供的各種 圖9-11十字 通燈控制系統原8位模型計算機設計本節要設一計,個件組具體: 信節作控制器程器址、存術元令和譯 設計要總線結構:單總線,數據總線位數8位、地址總線3器 容量5x8位操作控制運算器指令系統規模:3模型計算機邏輯圖圖9-12模型計算機框指令模型計算可個數并結入器。為了計照編序我67為例令將入 具: LDA,6;A6把6送入累加器A ADDA,7;AA+7把A中6與7相加,結果送入累加器A HALT;運算完畢,停機基于邏輯部件的系統根據模型一些邏輯功能部件,各個功能部件用地址總線總線連接在一起,構成簡易的模型計器器進行讀寫操作,這里選用27C64EPROM做程器,共32個每個條地址線。表9- 內地指令或數說LD的操作操作數ADD的操作操作數HALT的操作圖9-13程序計數器、地址寄存器 器、數據寄存器的邏輯程序計數器作53上1地址寄存器地址寄存用存所 主 器主 與之間作度上的差別所使址來址信息,直到主 作為模算因為 使個 所3個觸發器實功93選位D) 使其觸當時,且時鐘號上將入并直接輸出到 址。數據寄存器數據寄存是時由主 器一指令或一據于計8中選用據器8觸,并有三態功以與連ID1時,且時鐘信號CLK上升沿到來時,將被單元中的數據存入DR。當EDR=1時,DR輸出呈態;當EDR=0時,DR將所存數據送到數累加器作算術邏輯單元圖9-14累加器A和ALU邏輯指令寄存器IR和指令指令寄存器用來保存正執的條當執行一條指令,把從主 器取數寄存器中,然后在送指寄器如中 是操作碼送入令譯 譯 將作譯相應的操作指令。圖15是現令存譯功的時上升到時將指令操作碼存入IR,并經門電路譯碼,輸出LD、ADDHALT三個操作命令。例如,當指令操作時, 輸出為LD=1,ADD=0,HALT=0圖9-15指令寄存器IR和指令節拍發節拍發生用拍信便控制計按拍 節器輯圖如圖所示,它是環寄產生的波形如所示。構拍的環形移存始要成 模型計算機節器1(觸)觸在信號作用,初一1。圖9-16(a)節拍發生器邏圖9-16(b)節拍發脈沖波時鐘信時鐘信號用固率的 脈型算機中的時信5定組諧為了使 的,占調諧振蕩,路97,電通電容放電信為:T=0.7(R1+R2)C2=0. 圖9-17時鐘信號源原操作控模型計算機中控制信號共有9程序計數器PC的計數控制信號地址寄存器MAR的寄存命令信號指令寄存器IR的寄存命令信號IMAR=(T0+T3LD+T3ADD)(9- (9- (9- (9-

(9-(9-(9-

圖9-18操作控制的引腳配基于邏輯部件的模型計6+上電復位(CLR=0)后,程序計數器PCPC的狀態是000;節拍發生器產生T0節拍,即;在T0節拍內,IMAR=0(見式9-1),將PC內容 在T1=1節拍期間,IDR=1(見式9-4),在第二上升沿到來將操碼 入,并直接送到據。個降沿到達,T節,T2。T2=(-)。當時,且在第三個,T2(4)在T3=1節拍期間,因為LD=1,所以IMAR=0(見式入,器的地址線為001。由器EPROM讀出操作數,該數在外部數據總線上。在第四個CLK的T4=TT在T5=1節拍期間,IPC=1(見式9-5)T在T6=1節拍期間,IA=0(見式9-3)CLK上升沿到來時,內部數據總線上送入累加器A。在第七個CLK的下降時,T6節拍結束,開始T7節拍在T7=1LDT0在第二條指令的T0~T2節拍期間,PC的內010,取出EPROM中第二條指,經譯碼后為ADD=1,即執行加來時,MAR將PC的011存入,器的地址線為011。由存儲器EPROM讀出操作數,該數在外部數據總線上。TA(3)在T5=1()10。(見式),在T6=9-)(見式)。由于的,,則在上升沿到來時,將。(14)在T7=1節拍期間,EA=0(見式9-8),EDR=1(見式9-)。由于D()10,取基于VHDL的系統設計與圖9-19模型計算機設計頂層系統

ADD ADD

圖9-20模型計算機頂層設設計指令執行9),機器周期,取決于指令在機內實現的復雜程①第一條指令LDA,6;將立即數6送入A。T0:(PC)->MAR->ABUS,IMAR=0T1:DBUS->DR,IDR=1T2:(PC)+1->PC, (DR)- IIR=0,T3:(PC)->MAR->ABUS,T4:DBUS->DR,IDR=1T5:(PC)+1->PC, T6:dbus->A, T7:空②第二條指令ADDA,7;把A中6與立即數713送入累加器AT0:(PC)->MAR->ABUS,T1:DBUS->DR,IDR=1T2:(PC)+1->PC, (DR)- IIR=0,T3:(PC)->MAR->ABUS,T4:DBUS->DR,IDR=1T5:(PC)+1->PC, A+7-T6:SR-

T7:A->

IA=0,③第三條指令HALT;運算完畢,停機T0:(PC)->MAR->ABUS,T1:DBUS->DR,IDR=1T2:(PC)+1- (DR)- IIR=0,HALT確定微操作控制VHDL源程序①ALU模塊的VHDL源程說明:此模塊用于實現加LIBRARYUSEUSEIEEE.STD_LOGIC_ARITH.ALL;ENTITYALUIS--累加器AC,數據寄存器ISUM:ESUM:

--ALU的加法運算控制信號--ALU的輸出控制信號ALU_OUT:OUTSTD_LOGIC_VECTOR(7DOWNTOEND

--運算結ARCHITECTUREAOFALUSIGNALALU_TEMP:STD_LOGIC_VECTOR(7DOWNTO0);END②累加器模塊的VHDLLIBRARYUSEENTITYACCDATA_IN:INSTD_LOGIC_VECTOR(7DOWNTO--數據IA:INSTD_LOGIC;EA:INSTD_LOGIC;

--累加器A的輸入命令信號--累加器A的輸出控制信號--時鐘頻率DATA_OUT:OUTSTD_LOGIC_VECTOR(7DOWNTO--累加器數據ENDARCHITECTUREAOFACCSIGNALREGQ:STD_LOGIC_VECTOR(7DOWNTOIF(CLK’EVENTANDCLK=‘1’)THENIF(IA=‘0’)THENENDIF;ENDIF;ENDDATA_OUT<=REGQWHENEA=‘0’ELSEEND③控制器模塊的VHDLLIBRARYUSEUSEIEEE.STD_LOGIC_ARITH.ALL;ENTITYCTRLISLD,ADD,HALT:INCLK:IN

--來自指令 的三條指--系統時鐘頻T0,T1,T2,T3,T4,T5,T6,T7:IN --節拍IPC,IMAR,IDR,EDR,IA,EA,ISUM,ESUM,IIR:OUT--控制信號ENDARCHITECTUREAOFCTRLISIMAR<=NOT(T0OR(T3ANDLD)OR(T3ANDIIR<=NOTIA<=NOT((T6ANDLD)OR(T6ANDIDR<=T1OR(T4ANDLD)OR(T4ANDADD);IPC<=T2OR(T5ANDLD)OR(T5ANDADD);ISUM<=NOT(T5ANDADD);ESUM<=NOT(T6ANDEDR<=(T6ANDADD)OR(T7ANDADD);ENDIF;ENDEND④節拍發生器的VHDLLIBRARYUSEUSEIEEE.STD_LOGIC_ARITH.ALL;ENTITYCOUNTERISCLK,CLR:IN --系統時鐘頻率和清零控T0,T1,T2,T3,T4,T5,T6,T7:OUTEND

--節拍脈沖ARCHITECTUREAOFCOUNTERSIGNALTEMP:STD_LOGIC_VECTOR(7DOWNTOIF(CLR=‘0’)ENDENDPROCESS;ENDA;⑤指令寄存器模塊IR和指令 VHDL源程LIBRARYENTITYIRISDATA_IN:INSTD_LOGIC_VECTOR(7DOWNTO0);--數據輸IIR:INSTD_LOGIC;--指令寄存器IR的寄存命令信CLK:INSTD_LOGIC;--系統時鐘頻LD,ADD,HALT:OUTENDIR;

--譯碼輸出的三條指令信ARCHITECTUREAOFIRSIGNALREGQ:STD_LOGIC_VECTOR(7DOWNTOPROCESS(CLK,IIR)--指令寄存器IR進IF(CLK’EVENTANDCLK=‘1’)THENIF(IIR=‘0’)THENENDIF;ENDIF;ENDPROCESS(CLK,REGQ)--指令 進CASEREGQWHEN WHEN WHEN WHENOTHERSENDCASE;ENDPROCESS;ENDA;⑥時鐘產生器的VHDLLIBRARYUSEENTITYCLK_SOURCECLK_50M:INSTD_LOGIC;--50M時鐘源CLK:OUTSTD_LOGIC--系統時鐘ENDARCHITECTUREAOFCLK_SOURCEISSIGNALCLK_TEMP:STD_LOGIC;VARIABLECOUNTER:INTEGERRANGE0TO CLK_TEMP<=NOTCLK_TEMP;ELSIF(CLK_50M'EVENTANDENDENDEND⑦程序計數器模塊的VHDLLIBRARYUSEUSEIEEE.STD_LOGIC_ARITH.ALL;ENTITYPCISIPC,CLK,CLR:IN--計數控制信號、時鐘頻PCOUT:OUTSTD_LOGIC_VECTOR(2DOWNTO--指令地址ENDARCHITECTUREAOFPCSIGNALQOUT:STD_LOGIC_VECTOR(2DOWNTOIF(CLR='0')QOUT<=ELSIF(CLK'EVENTANDCLK='1')THENIF(IPC='1')THENQOUT<=ENDENDIF;ENDPROCESS;ENDA;

--⑧地址寄存器MAR的VHDLLIBRARYUSEENTITYMARADDR_IN:INSTD_LOGIC_VECTOR(2DOWNTO--地址輸IMAR:INCLK:IN

--寄存命令信--時鐘頻ADDR_OUT:OUTSTD_LOGIC_VECTOR(2DOWNTO--地址輸ENDARCHITECTUREAOFMARISIF(CLK’EVENTANDCLK=‘1’)IF(IMAR=‘0’)THENENDENDENDPROCESS;ENDA; 器的VHDLLIBRARYUSEUSEIEEE.STD_LOGIC_ARITH.ALL;ENTITYRAMISWR,

溫馨提示

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

評論

0/150

提交評論