




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 大型完整系統(tǒng)設計實例,第一部分 交通燈信號控制器的設計, 設計一個主干道和支干道十字路口的交通管理系統(tǒng),并用VHDL進行描述。該交通管理系統(tǒng)的技術要求為:如果只有一個方向有車時,則保持該方向暢通;當兩個方向都有車時, 主干道和支干道交替通行, 但主干道通行的時間要比支干道長一些。 ,系統(tǒng)設計 第一步:在明確技術要求的基礎上,首先制定系統(tǒng)的設計方案。 第二步: 系統(tǒng)劃分,得到系統(tǒng)結構圖。 第三步:根據(jù)設計方案和系統(tǒng)結構圖進行算法設計, 可以畫出控制系統(tǒng)的ASM圖。 第四步:設計輸入,用VHDL對該系統(tǒng)進行描述。,根據(jù)技術要求,在主干道和支干道兩個方向上都安裝紅、黃、綠三色信號燈;Ca和C
2、b分別是安裝在主干道和支干道上的傳感器,用于檢測是否有車輛需要通過路口。在只有主干道有車時, 主干道亮綠燈, 支干道亮紅燈;當只有支干道有車時,主干道亮紅燈,支干道亮綠燈;當兩個方向都有車時,則兩個方向輪流亮綠燈和紅燈,但主干道每次亮綠燈的時間不得少于60s,支干道每次亮綠燈的時間不得多于40s,在由綠燈轉(zhuǎn)紅燈之間要有10s的黃燈(公共停車時間)作為過渡。本系統(tǒng)最終采用可編程邏輯器件來實現(xiàn)。,第一步:在明確技術要求的基礎上,首先制定系統(tǒng)的設計方案。,交通管理系統(tǒng)的結構圖,第二步: 系統(tǒng)劃分,得到系統(tǒng)結構圖。 根據(jù)以上的設計方案, 可以畫出系統(tǒng)的結構圖。,本系統(tǒng)主要由控制器和受控制的定時器組成。
3、定時器用來確定主干道、支干道通行時間以及公共停車時間;CNT是定時的值; LD是定時值的同步預置信號,高電平有效;ST是這個定時器的狀態(tài)信號,當定時結束時,ST輸出為1; Ca和Cb分別為主干道和支干道的傳感器輸出信號,高電平表示有車需要通過;clk是周期為秒的時鐘信號;reset是異步復位信號,低電平有效,復位后的初始狀態(tài)為主干道暢通;Ra、Ya、Ga和Rb、Yb、Gb分別為主干道和支干道的紅、黃、綠燈的控制信號,高電平有效。,第三步:根據(jù)設計方案和系統(tǒng)結構圖進行算法設計, 可以畫出控制系統(tǒng)的ASM圖。 ASM圖很清楚地表明了該交通管理系統(tǒng)共有4個狀態(tài)(S0、 S1、 S2和S3)以及各狀態(tài)
4、之間的轉(zhuǎn)換關系。,當ST=1時, LD =1,CNT的值取決于當前的狀態(tài)和Ca、Cb的值。,CNT的取值表,第四步:設計輸入,用VHDL對該系統(tǒng)進行描述。 本設計采用分層次描述,以下為VHDL源文件。,-定時器模塊(count.vhd): LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; ENTITY counter IS PORT( reset ,clk ,LD : IN STD-LOGIC; CNT : IN INTEGER RANGE 0 TO 63; ST : OUT STD-LOGI
5、C ); 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 = 1 ) THEN Q = CNT; ELSIF ( Q /= 0 ) THEN Q = Q1; END IF; END IF; END PROCESS; PROCESS( reset ,
6、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 IEEE; USE IEEE.STD-LOGIC-1164.ALL; USE IEEE.STD-LOGIC-UNSIGNED.ALL; ENTITY con-trol IS PORT( res
7、et ,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; CONSTANT T2 : INTEGER : = 40; CONSTANT T3 : INTEGER : = 10; TYPE STATE-TYPE IS ( S0 ,S1 ,S2 ,S3 ); SI
8、GNAL state : STATE-TYPE; SIGNAL RYG : STD-LOGIC-VECTOR( 5 DOWNTO 0 ); BEGIN,PROCESS( reset ,clk ) -描述狀態(tài)轉(zhuǎn)換 BEGIN IF( reset = 0 ) THEN state IF( Cb = 0) THEN state state IF(Ca = 0) THEN state state = S0; END CASE; END IF; END IF; END PROCESS;,-描述交通燈控制信號 Ra RYG RYG RYG RYG IF( Cb = 0) THEN CNT CNT IF(
9、Ca = 0) THEN CNT CNT = T1; END CASE; END 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-LOGI
10、C; CNT : OUT INTEGER RANGE 0 TO 63 ); END 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; U
11、SE WORK.traffic-lib.ALL; ENTITY traffic IS 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
12、,Ga ,Rb ,Yb ,Gb ,LD ,CNT ); u2:counter PORT MAP( reset ,clk ,LD ,CNT ,ST ); END ARCHITECTURE arch;,第二部分 數(shù)字頻率計的設計,1. 設計思路 下圖是8位十進制數(shù)字頻率計的電路邏輯圖,它由一個測頻控制信號發(fā)生器TESTCTL、8個有時鐘使能的十進制計數(shù)器CNT10、一個32位鎖存器REG32B組成。以下分別敘述頻率計各邏輯模塊的功能與設計方法。,8位十進制數(shù)字頻率計邏輯圖,1) 測頻控制信號發(fā)生器設計 頻率測量的基本原理是計算每秒鐘內(nèi)待測信號的脈沖個數(shù)。這就要求TESTCTL的計數(shù)使能信號TSTE
13、N能產(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ā)器構成的二分頻器,在每次時鐘CLK上沿到來時其值翻轉(zhuǎn)。,其中控制信號時鐘CLK的頻率取1 Hz,而信號TSTEN的脈寬恰
14、好為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ā)生器工作時序,2) 寄存器REG32B設計 設置鎖存器的好處是,顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。若已有32位BCD碼存在于此模塊的輸入口,在信號LOAD的上升沿后
15、即被鎖存到寄存器REG32B的內(nèi)部,并由REG32B的輸出端輸出,然后由實驗板上的7段譯碼器譯成能在數(shù)碼管上顯示輸出的相對應的數(shù)值。,3) 十進制計數(shù)器CNT10的設計 如圖所示,此十進制計數(shù)器的特殊之處是,有一時鐘使能輸入端ENA,用于鎖定計數(shù)值。當高電平時計數(shù)允許,低電平時禁止計數(shù)。,2. VHDL源程序 1) 有時鐘使能的十進制計數(shù)器的源程序CNT10.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; -有時鐘使能的十進制計數(shù)器 ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; -計數(shù)時鐘信號 CLR:IN STD
16、_LOGIC; -清零信號 END:IN STD_LOGIC; -計數(shù)使能信號 CQ:OUT INTEGER RANGE 0 TO 15;-4位計數(shù)結果輸出 CARRY_OUT:OUT STD_LOGIC); -計數(shù)進位 END CNT10; ARCHITECTURE ART OF CNT10 IS,SIGNAL CQI :INTEGER 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
17、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 PROCESS; CQ=CQI; END ART;,2) 32位鎖存器的源程序REG32B.VHD LIBRARY IEEE; -32位鎖存器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT(LOAD:IN STD_
18、LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGEC_VECTOR(31 DOWNTO 0); END REG32B; ARCHITECTURE ART OF REG32B IS BEGIN PROCESS ( LOAD, DIN ) BEGIN IF LOAD EVENT AND LOAD= 1 THEN DOUT=DIN; -鎖存輸入數(shù)據(jù) END IF ; END PROCESS; END ART;,3) 測頻控制信號發(fā)生器的源程序TESTCTL.VHD LIBRARY IEEE; USE IEEE.STD_LOGI
19、C_1164.ALL; -測頻控制信號發(fā)生器 USE IEEE.STD_LOGIC_UNSIGNED.ALL ENTITY TESTCTL IS PORT (CLK:IN STD_LOGIC; -1 Hz測頻控制時鐘 TSTEN:OUT STD_LOGIC; -計數(shù)器時鐘使能 CLR_CNT:OUT STD_LOGIC; -計數(shù)器清零 LOAD:OUT STD_LOGIC); -輸出鎖存信號 END TESTCTL; ARCHITECTURE ART OF TESTCTL IS SIGNAL Dvi2CLK :STD_LOGIC; BEGIN,PROCESS ( CLK ) BEGIN IF
20、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; TSTEN=Div2CLK; END ART;,4) 數(shù)字頻率計的源程序FREQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_11
21、64.ALL; ENTITY FREQ IS PORT(FSIN:IN STD_LOGIC; CLK:IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0); END FREQ; ARCHITECTURE ART OF FREQ IS COMPONENT CNT10 -待調(diào)用的有時鐘使能的十進制計數(shù)器端口定義 PORT(CLK,CLR,ENA:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC);,END COMPONENT; COMPONENT
22、REG32B -待調(diào)用的32位鎖存器端口定義 COMPONENT TESTCTL -待調(diào)用的測頻控制信號發(fā)生器端口定義 SIGNAL TSTEN:STD_LOGIC; SIGNAL CLR_CNT:STD_LOGIC; SIGNAL LOAD:STD_LOGIC; SIGNAL CARRY1:STD_LOGIC; SIGNAL CARRY2:STD_LOGIC; SIGNAL CARRY3:STD_LOGIC; SIGNAL CARRY4:STD_LOGIC; SIGNAL CARRY5:STD_LOGIC; SIGNAL CARRY6:STD_LOGIC; SIGNAL CARRY7:STD
23、_LOGIC; SIGNAL CARRY8:STD_LOGIC; SIGNAL DIN:STD_LOGIC_VECTOR(31 DOWNTO 0);,BEGIN U0:TESTCTL PORT MAP(CLK=CLK,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(CLK=CARRY2,CLR=CLR_CNT,ENA=TS
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)機配件動態(tài)模擬在農(nóng)機維修策略制定中的應用考核試卷
- 健身器材行業(yè)市場細分領域用戶數(shù)據(jù)價值挖掘考核試卷
- 印刷品設計軟件與工具考核試卷
- 廚房易干地毯考核試卷
- 績效工資實施方案
- 基于需求側改革的管理思維
- 2025年資產(chǎn)管理新規(guī)
- 特警安全教育
- 武漢國企福利活動方案
- 植樹健康活動方案
- 江蘇省南通市2024-2025學年高二下學期6月期末質(zhì)量監(jiān)測政治試題(含答案)
- 電工廠搬遷方案(3篇)
- 2024年深圳市中考歷史試卷真題(含答案解析)
- 湖北省 公路工程試驗檢測設備期間核查規(guī)范DB42∕T 1544-2020
- 基礎會計教材電子版
- 四川省地質(zhì)災害治理工程常用資料表格
- 患者隱私保護課件
- RFJ0132010人民防空工程防化設計規(guī)范
- CA6140車床杠桿工藝設計說明書完全版
- T_CHES 17-2018 水井報廢與處理技術導則
- 酒店住宿賬單模板
評論
0/150
提交評論