第6章大型完整系統(tǒng)設計實例-交通燈和頻率計ppt課件_第1頁
第6章大型完整系統(tǒng)設計實例-交通燈和頻率計ppt課件_第2頁
第6章大型完整系統(tǒng)設計實例-交通燈和頻率計ppt課件_第3頁
第6章大型完整系統(tǒng)設計實例-交通燈和頻率計ppt課件_第4頁
第6章大型完整系統(tǒng)設計實例-交通燈和頻率計ppt課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、設計一個主干道和支干道十字路口的交通管理系統(tǒng),并用VHDL進行描述。該交通管理系統(tǒng)的技術要求為:如果只有一個方向有車時,則保持該方向暢通;當兩個方向都有車時, 主干道和支干道交替通行, 但主干道通行的時間要比支干道長一些。 系統(tǒng)設計系統(tǒng)設計第一步:在明確技術要求的基礎上,首先制定系統(tǒng)的設計方案。第一步:在明確技術要求的基礎上,首先制定系統(tǒng)的設計方案。 第二步:第二步: 系統(tǒng)劃分,得到系統(tǒng)結構圖。系統(tǒng)劃分,得到系統(tǒng)結構圖。第三步:根據(jù)設計方案和系統(tǒng)結構圖進行算法設計,第三步:根據(jù)設計方案和系統(tǒng)結構圖進行算法設計, 可以畫出可以畫出控制系統(tǒng)的控制系統(tǒng)的ASM圖。圖。第四步:設計輸入,用第四步:設計

2、輸入,用VHDL對該系統(tǒng)進行描述。對該系統(tǒng)進行描述。根據(jù)技術要求,在主干道和支干道兩個方向上都安裝紅、黃、綠三色信號燈;Ca和Cb分別是安裝在主干道和支干道上的傳感器,用于檢測是否有車輛需要通過路口。在只有主干道有車時, 主干道亮綠燈, 支干道亮紅燈;當只有支干道有車時,主干道亮紅燈,支干道亮綠燈;當兩個方向都有車時,則兩個方向輪流亮綠燈和紅燈,但主干道每次亮綠燈的時間不得少于60s,支干道每次亮綠燈的時間不得多于40s,在由綠燈轉紅燈之間要有10s的黃燈公共停車時間作為過渡。本系統(tǒng)最終采用可編程邏輯器件來實現(xiàn)。Cb支干道CaCa主干道Cb第一步:在明確技術要求的基礎上,首先制定系統(tǒng)的設計方案

3、。交通管理系統(tǒng)的結構圖 第二步: 系統(tǒng)劃分,得到系統(tǒng)結構圖。 根據(jù)以上的設計方案, 可以畫出系統(tǒng)的結構圖。 控 制 器定 時 器RaGaYaRaYaGaYbRbGbGbYbRbCaCbCNTclkresetclkresetSTLD 本系統(tǒng)主要由控制器和受控制的定時器組成。定時器用來確定主干道、支干道通行時間以及公共停車時間;CNT是定時的值; LD是定時值的同步預置信號,高電平有效;ST是這個定時器的狀態(tài)信號,當定時結束時,ST輸出為1; Ca和Cb分別為主干道和支干道的傳感器輸出信號,高電平表示有車需要通過;clk是周期為秒的時鐘信號;reset是異步復位信號,低電平有效,復位后的初始狀態(tài)為

4、主干道暢通;Ra、Ya、Ga和Rb、Yb、Gb分別為主干道和支干道的紅、黃、綠燈的控制信號,高電平有效。 控 制 器定 時 器RaGaYaRaYaGaYbRbGbGbYbRbCaCbCNTclkresetclkresetSTLD 第三步:根據(jù)設計方案和系統(tǒng)結構圖進行算法設計, 可以畫出控制系統(tǒng)的ASM圖。 ASM圖很清楚地表明了該交通管理系統(tǒng)共有4個狀態(tài)S0、 S1、 S2和S3以及各狀態(tài)之間的轉換關系。主 道 通 行 , 支 道 禁 止Ga R b 1ST 1?C b 1?主 道 停 車 , 支 道 禁 止Ya R b 1ST 1?主 道 禁 止 , 支 道 通 行R a Gb 1ST 1?

5、C a 1?主 道 禁 止 , 支 道 停 車R a Yb 1ST 1?NNS0S1S2NYYYNNYYNYS3當ST=1時, LD =1,CNT的值取決于當前的狀態(tài)和Ca、Cb的值。CNT的取值表的取值表狀態(tài)Ca、CbCNTS0Cb=060Cb=110S140S2Ca=040Ca=110S360 第四步:設計輸入,用VHDL對該系統(tǒng)進行描述。 本設計采用分層次描述,以下為VHDL源文件。-定時器模塊count.vhd): LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; ENTITY cou

6、nter IS PORT( reset ,clk ,LD : IN STD-LOGIC; CNT : IN INTEGER RANGE 0 TO 63; ST : OUT STD-LOGIC ); END ENTITY counter; ARCHITECTURE arch OF counter IS SIGNAL Q : INTEGER RANGE 0 TO 63; BEGIN PROCESS( reset, clk )- -定時器進程 BEGIN IF( reset = 0 ) THEN Q = 60; ELSIF( clkEVENT AND clk = 1 ) THEN IF( LD =

7、1 ) THEN Q = CNT; ELSIF ( Q /= 0 ) THEN Q = Q1; END IF; END IF;END PROCESS; PROCESS( reset ,clk ) -定時器定時器ST的進程的進程 BEGIN IF( reset = 0 ) THEN ST = 0; ELSIF( clkEVENT AND clk = 1 ) THEN IF( Q = 2 )THEN ST = 1; ELSE ST = 0; END IF; END IF; END PROCESS; END ARCHITECTURE arch; -控制器模塊control.vhd): LIBRARY

8、 IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; ENTITY con-trol IS PORT( reset ,clk ,ST ,Ca ,Cb : IN STD-LOGIC; Ra ,Ya ,Ga ,Rb ,Yb ,Gb ,LD : OUT STD-LOGIC; CNT : OUT INTEGER RANGE 0 TO 63 ); END ENTITY con-trol; ARCHITECTURE arch OF con-trol IS CONSTANT T1 : INTEGER : = 60; CONS

9、TANT T2 : INTEGER : = 40; CONSTANT T3 : INTEGER : = 10; TYPE STATE-TYPE IS ( S0 ,S1 ,S2 ,S3 ); SIGNAL state : STATE-TYPE; SIGNAL RYG : STD-LOGIC-VECTOR( 5 DOWNTO 0 ); BEGIN PROCESS( reset ,clk ) -描述狀態(tài)轉換 BEGIN IF( reset = 0 ) THEN state IF( Cb = 0) THEN state = S0; ELSE state state IF(Ca = 0) THEN st

10、ate = S2; ELSE state state = S0; END CASE; END IF; END IF; END PROCESS; -描述交通燈控制信號 Ra = RYG(5); Ya = RYG(4); Ga = RYG(3); Rb = RYG(2); Yb = RYG(1); Gb RYG RYG RYG RYG = 100010; END CASE; END PROCESS; LD IF( Cb = 0) THEN CNT = T1;ELSE CNT CNT IF( Ca = 0) THEN CNT = T2;ELSE CNT CNT = T1; END CASE; END

11、 PROCESS; END ARCHITECTURE arch; -頂層文件traffic.vhd): LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; PACKAGE traffic-lib IS COMPONENT con-trol IS PORT( reset ,clk ,ST ,Ca ,Cb : IN STD-LOGIC; Ra ,Ya ,Ga ,Rb ,Yb ,Gb ,LD : OUT STD-LOGIC; CNT : OUT INTEGER RANGE 0 TO 63 ); END

12、 COMPONENT con-trol; COMPONENT counter IS PORT( reset ,clk ,LD : IN STD-LOGIC; CNT : IN INTEGER RANGE 0 TO 63; ST : OUT STD-LOGIC ); END COMPONENT counter; END PACKAGE traffic-lib; LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; USE WORK.traffic-lib.ALL; ENTITY traffic IS

13、 PORT( reset ,clk ,Ca ,Cb : IN STD-LOGIC; Ra ,Ya ,Ga ,Rb ,Yb ,Gb : OUT STD-LOGIC ); END ENTITY traffic;ARCHITECTURE arch OF traffic IS SIGNAL ST ,LD : STD-LOGIC; SIGNAL CNT : INTEGER RANGE 0 TO 63; BEGIN u1:con-trol PORT MAP( reset ,clk ,ST ,Ca ,Cb ,Ra ,Ya ,Ga ,Rb ,Yb ,Gb ,LD ,CNT ); u2:counter PORT

14、 MAP( reset ,clk ,LD ,CNT ,ST ); END ARCHITECTURE arch; 1. 設計思路 下圖是8位十進制數(shù)字頻率計的電路邏輯圖,它由一個測頻控制信號發(fā)生器TESTCTL、8個有時鐘使能的十進制計數(shù)器CNT10、一個32位鎖存器REG32B組成。以下分別敘述頻率計各邏輯模塊的功能與設計方法。 8位十進制數(shù)字頻率計邏輯圖SD31.0REG32BTESTCTLGNDFSINCLKDOUT31.0SD31.28SD27.24SD23.20SD19.16SD15.12SD11.8SD7.4SD3.0DOUT31.0DIN31.0LOADCLKCQ3.0CARRY_

15、OUTENACLRCNT10CNT10CLKCQ3.0CARRY_OUTENACLRCNT10CNT10CLKCQ3.0CARRY_OUTENACLRCNT10CNT10CLKCQ3.0CARRY_OUTENACLRCNT10CNT10CLKCQ3.0CARRY_OUTENACLRCNT10CNT10CLKCQ3.0CARRY_OUTENACLRCLKCQ3.0CARRY_OUTENACLRCNT10CLKCQ3.0CARRY_OUTENACLRLOADCLR_CNTTSTENRSTCLKU0U9U2U1U3U4U8U7U6U5SESCSLS1S2S3S4S5S6S7S8 1) 測頻控制信號發(fā)

16、生器設計 頻率測量的基本原理是計算每秒鐘內(nèi)待測信號的脈沖個數(shù)。這就要求TESTCTL的計數(shù)使能信號TSTEN能產(chǎn)生一個1秒脈寬的周期信號,并對頻率計的每一計數(shù)器CNT10的ENA使能端進行同步控制。當TSTEN高電平時,允許計數(shù);低電平時,停止計數(shù),并保持其所計的數(shù)。在停止計數(shù)期間,首先需要一個鎖存信號LOAD的上跳沿將計數(shù)器在前1秒鐘的計數(shù)值鎖存進32位鎖存器REG32B中,并由外部的7段譯碼器譯出并穩(wěn)定顯示。鎖存信號之后,必須有一清零信號CLR_CNT對計數(shù)器進行清零,為下1秒鐘的計數(shù)操作作準備。測頻控制信號發(fā)生器的工作時序如圖所示。為了產(chǎn)生這個時序圖,需首先建立一個由D觸發(fā)器構成的二分頻

17、器,在每次時鐘CLK上沿到來時其值翻轉。 其中控制信號時鐘CLK的頻率取1 Hz,而信號TSTEN的脈寬恰好為1 s,可以用作閘門信號。此時,根據(jù)測頻的時序要求,可得出信號LOAD和CLR_CNT的邏輯描述。由圖可見,在計數(shù)完成后,即計數(shù)使能信號TSTEN在1 s的高電平后,利用其反相值的上跳沿產(chǎn)生一個鎖存信號LOAD,0.5 s后,CLR_CNT產(chǎn)生一個清零信號上跳沿。 高質(zhì)量的測頻控制信號發(fā)生器的設計十分重要,設計中要對其進行仔細的實時仿真(TIMING SIMULATION),防止可能產(chǎn)生的毛刺。測頻控制信號發(fā)生器工作時序I RSTI CLKO TSTENO LOADO CLR_CNT

18、2) 寄存器REG32B設計 設置鎖存器的好處是,顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。若已有32位BCD碼存在于此模塊的輸入口,在信號LOAD的上升沿后即被鎖存到寄存器REG32B的內(nèi)部,并由REG32B的輸出端輸出,然后由實驗板上的7段譯碼器譯成能在數(shù)碼管上顯示輸出的相對應的數(shù)值。 3) 十進制計數(shù)器CNT10的設計 如下圖,此十進制計數(shù)器的特殊之處是,有一時鐘使能輸入端ENA,用于鎖定計數(shù)值。當高電平時計數(shù)允許,低電平時禁止計數(shù)。2. VHDL源程序源程序1) 有時鐘使能的十進制計數(shù)器的源程序有時鐘使能的十進制計數(shù)器的源程序CNT10.VHDLIBRARY IEEE;USE

19、 IEEE.STD_LOGIC_1164.ALL; -有時鐘使能的十進制計數(shù)器有時鐘使能的十進制計數(shù)器ENTITY CNT10 ISPORT (CLK:IN STD_LOGIC; -計數(shù)時鐘信號計數(shù)時鐘信號 CLR:IN STD_LOGIC; -清零信號清零信號 END:IN STD_LOGIC; -計數(shù)使能信號計數(shù)使能信號 CQ:OUT INTEGER RANGE 0 TO 15; -4位計數(shù)結果輸出位計數(shù)結果輸出 CARRY_OUT:OUT STD_LOGIC); -計數(shù)進位計數(shù)進位 END CNT10;ARCHITECTURE ART OF CNT10 IS SIGNAL CQI :IN

20、TEGER RANGE 0 TO 15;BEGIN PROCESS(CLK,CLR,ENA) BEGIN IF CLR= 1 THEN CQI= 0; -計數(shù)器異步清零 ELSIF CLKEVENT AND CLK= 1 THEN IF ENA= 1 THEN IF CQI9 THEN CQI=CQI+1; ELSE CQI=0;END IF; -等于9,則計數(shù)器清零 END IF; END IF; END PROCESS; PROCESS (CQI) BEGIN IF CQI=9 THEN CARRY_OUT= 1; -進位輸出 ELSE CARRY_OUT= 0;END IF; END P

21、ROCESS; CQ=CQI;END ART;2) 32位鎖存器的源程序REG32B.VHDLIBRARY IEEE; -32位鎖存器USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LOAD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGEC_VECTOR(31 DOWNTO 0);END REG32B;ARCHITECTURE ART OF REG32B IS BEGINPROCESS ( LOAD, DIN )BEGINIF LOAD EVENT A

22、ND LOAD= 1 THEN DOUT=DIN; -鎖存輸入數(shù)據(jù) END IF ; END PROCESS;END ART;3) 測頻控制信號發(fā)生器的源程序TESTCTL.VHD LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; -測頻控制信號發(fā)生器USE IEEE.STD_LOGIC_UNSIGNED.ALLENTITY TESTCTL IS PORT (CLK:IN STD_LOGIC; -1 Hz測頻控制時鐘 TSTEN:OUT STD_LOGIC; -計數(shù)器時鐘使能 CLR_CNT:OUT STD_LOGIC; -計數(shù)器清零 LOAD:OUT STD

23、_LOGIC); -輸出鎖存信號END TESTCTL;ARCHITECTURE ART OF TESTCTL IS SIGNAL Dvi2CLK :STD_LOGIC; BEGINPROCESS ( CLK )BEGINIF CLKEVENT AND CLK= 1 THEN -1 Hz時鐘二分頻Div2CLK=NOT Div2CLK;END IF ;END PROCESS;PROCESS ( CLK,Div2CLK )BEGIN IF CLK= 0 AND Div2CLK = 0 THEN -產(chǎn)生計數(shù)器清零信號 CLR_CNT= 1; ELSE CLR_CNT= 0 ; END IF; END PROCESS; LOAD=NOT Div2CLK; TSTENCLK,TSTEN=TSTEN, CLR_CNT=CLR_CNT,LOAD=LOAD);U1:CNT10 PORT MAP(CLK=FSIN,CLR=CLR_CNT,ENA=TSTEN, CQ=DIN (3 DOWNTO 0),CARRY_OUT=CARRY1);U2:CNT10 PORT MAP(CLK=CARRY1,CLR=CLR_CNT,ENA=TSTEN, CQ=DIN (7 DOWNTO 4),CARRY_OUT=CARRY2);U3:CNT10 PORT MAP

溫馨提示

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

評論

0/150

提交評論