




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第六章第六章 數(shù)字系統(tǒng)綜合設計實例數(shù)字系統(tǒng)綜合設計實例交通燈控制器交通燈控制器任務二任務二 半整數(shù)分頻器的設計半整數(shù)分頻器的設計任務一任務一正負脈寬數(shù)控調制信號發(fā)生器的設計正負脈寬數(shù)控調制信號發(fā)生器的設計任務三任務三 數(shù)字秒表的設計數(shù)字秒表的設計任務四任務四任務一任務一 半整數(shù)分頻器的設計半整數(shù)分頻器的設計階段一階段一 小數(shù)分頻的基本原理小數(shù)分頻的基本原理 階段二階段二 電路組成電路組成 階段三階段三 VHDLVHDL程序程序 階段四階段四 仿真結果仿真結果階段一階段一小數(shù)分頻的基本原理小數(shù)分頻的基本原理采用可編程邏輯器件實現(xiàn)分頻系數(shù)為采用可編程邏輯器件實現(xiàn)分頻系數(shù)為2.52.5的的分頻器,可
2、采用以下方法:設計一個模分頻器,可采用以下方法:設計一個模3 3的的計數(shù)器,再設計一個扣除脈沖電路,加在模計數(shù)器,再設計一個扣除脈沖電路,加在模3 3計數(shù)器輸出之后,每來兩個脈沖就扣除一計數(shù)器輸出之后,每來兩個脈沖就扣除一個脈沖個脈沖( (實際上是使被扣除的脈沖變成很窄實際上是使被扣除的脈沖變成很窄的脈沖,可由異或門實現(xiàn)的脈沖,可由異或門實現(xiàn)) ),就可以得到分,就可以得到分頻系數(shù)為頻系數(shù)為2.52.5的小數(shù)分頻器。采用類似方法,的小數(shù)分頻器。采用類似方法,可以設計分頻系數(shù)為任意半整數(shù)的分頻器??梢栽O計分頻系數(shù)為任意半整數(shù)的分頻器。小數(shù)分頻的基本原理為脈沖吞小數(shù)分頻的基本原理為脈沖吞吐計數(shù)法:
3、設計兩個不同分頻吐計數(shù)法:設計兩個不同分頻比的整數(shù)分頻器,通過控制單比的整數(shù)分頻器,通過控制單位時間內(nèi)兩種分頻比出現(xiàn)的不位時間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù),從而獲得所需的小數(shù)同次數(shù),從而獲得所需的小數(shù)分頻值分頻值。 階段二階段二電路組成電路組成 圖6-1 通用半整數(shù)分頻器階段三階段三 VHDLVHDL程序程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY deccount IS PORT ( inclk: IN STD_LOGIC;-時鐘源 preset: IN STD_LOGIC
4、_VECTOR(3 DOWNTO 0); -預置分頻值Noutclk1: OUT STD_LOGIC; outclk2: BUFFER STD_LOGIC-輸出時鐘 );END deccount; ARCHITECTURE deccount_arch OF deccount ISSIGNAL clk, divide2: STD_LOGIC;SIGNAL count: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINclk=inclk XOR divide2; -inclk與divide2異或后作為模N計數(shù)器的時鐘outclk1=inclk;PROCESS(clk)BEGIN
5、 IF(clkevent AND clk=1) THEN IF(count=0000) THENcount=preset-1;-置整數(shù)分頻值N outclk2=1; ELSE count=count-1;-模N計數(shù)器減法計數(shù) outclk2=0; END IF; END IF;END PROCESS; PROCESS(outclk2)BEGIN IF(outclk2event AND outclk2=1) THEN divide2=NOT divide2;-輸出時鐘二分頻 END IF;END PROCESS;END deccount_arch;階段四階段四 仿真結果仿真結果圖6-3 半整數(shù)分
6、頻器仿真波形圖任務二任務二 交通燈控制器交通燈控制器階段一階段一 功能描述功能描述階段二階段二 交通燈控制器的實現(xiàn)交通燈控制器的實現(xiàn)階段三階段三 VHDLVHDL程序程序 階段四階段四 仿真結果仿真結果 階段一階段一 功能描述功能描述設東西方向和南北方向的車流量大致相同,設東西方向和南北方向的車流量大致相同,因此紅、黃、綠燈的時長也相同,定為紅因此紅、黃、綠燈的時長也相同,定為紅燈燈45秒,黃燈秒,黃燈5秒,綠燈秒,綠燈40秒,同時用數(shù)秒,同時用數(shù)碼管指示當前狀態(tài)碼管指示當前狀態(tài)(紅、黃、綠燈紅、黃、綠燈)剩余時剩余時間。另外,設計一個緊急狀態(tài),當緊急狀間。另外,設計一個緊急狀態(tài),當緊急狀態(tài)出
7、現(xiàn)時,兩個方向都禁止通行,指示紅態(tài)出現(xiàn)時,兩個方向都禁止通行,指示紅燈。緊急狀態(tài)解除后,重新計數(shù)并指示時燈。緊急狀態(tài)解除后,重新計數(shù)并指示時間。間。 階段二階段二交通燈控制器的實現(xiàn)交通燈控制器的實現(xiàn) 交通燈控制器是狀態(tài)機的一個典型應用,交通燈控制器是狀態(tài)機的一個典型應用,除了計數(shù)器是狀態(tài)機外,還有東西、南北除了計數(shù)器是狀態(tài)機外,還有東西、南北方向的不同狀態(tài)組合方向的不同狀態(tài)組合(紅綠、紅黃、綠紅、紅綠、紅黃、綠紅、黃紅黃紅4個狀態(tài)個狀態(tài)),如表,如表6-1所示。但我們可以所示。但我們可以簡單地將其看成兩個簡單地將其看成兩個(東西、南北東西、南北)減減1計數(shù)計數(shù)的計數(shù)器,通過檢測兩個方向的計數(shù)值
8、,的計數(shù)器,通過檢測兩個方向的計數(shù)值,可以檢測紅、黃、綠燈組合的跳變。這樣可以檢測紅、黃、綠燈組合的跳變。這樣使一個較復雜的狀態(tài)機設計變成一個較簡使一個較復雜的狀態(tài)機設計變成一個較簡單的計數(shù)器設計。單的計數(shù)器設計。 表表6-1 交通燈的交通燈的4種可能亮燈狀態(tài)種可能亮燈狀態(tài)圖圖6-4 交通燈控制器外部接口交通燈控制器外部接口 階段三階段三 VHDLVHDL程序程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY deccount IS PORT ( inclk: IN STD_LO
9、GIC;-時鐘源 preset: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -預置分頻值Noutclk1: OUT STD_LOGIC; outclk2: BUFFER STD_LOGIC-輸出時鐘 );END deccount; ARCHITECTURE deccount_arch OF deccount ISSIGNAL clk, divide2: STD_LOGIC;SIGNAL count: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINclk=inclk XOR divide2; 表表6-2 交通燈設計中的狀態(tài)跳變點交通燈設計中的狀態(tài)跳變
10、點階段三階段三 VHDLVHDL程序程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY traffic ISPORT(clk,urgency: IN STD_LOGIC; led: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0); East_West,South_North:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END traffic;ARCHITECTURE rtl OF traffic ISBEGIN PROCESS(
11、clk) BEGIN IF urgency=0 THEN led=10000001; East_West=00000000; South_North01000110 OR South_North01000110 THEN East_West=01000101; South_North=01000000; led=10000100; ELSIFEast_West=00000110AND South_North=00000001 THEN East_West=00000101; South_North=00000101; led=10000010;ELSIFEast_West=00000001AN
12、D South_North=00000001 AND led=10000010 THEN East_West=01000000; South_North=01000101; led=00100001; ELSIFEast_West=00000001AND South_North=00000110 THEN East_West=00000101; South_North=00000101; led=01000001;ELSIFEast_West=00000001AND South_North=00000001 AND led=01000001 THEN East_West=01000101; S
13、outh_North=01000000; led=10000100; ELSIF East_West(3 DOWNTO 0)=0 THEN East_West=East_West-7; South_North=South_North-1;ELSIF South_North(3 DOWNTO 0)=0 THEN East_West=East_West-1; South_North=South_North-7; ELSE East_West=East_West-1; South_North=South_North-1; END IF; END IF; END PROCESS;END rtl;階段四
14、階段四 仿真結果仿真結果 圖圖6-5 交通燈控制器仿真波形圖交通燈控制器仿真波形圖任務三正負脈寬數(shù)控調制信號發(fā)生器任務三正負脈寬數(shù)控調制信號發(fā)生器的設計的設計 階段一階段一 設計思路設計思路階段二階段二 VHDLVHDL程序程序 階段一階段一 設計思路設計思路圖圖6-6是脈寬數(shù)控調制信號發(fā)生器邏輯圖,是脈寬數(shù)控調制信號發(fā)生器邏輯圖,此信號發(fā)生器是由兩個完全相同的可自加此信號發(fā)生器是由兩個完全相同的可自加載加法計數(shù)器載加法計數(shù)器LCNT8組成的,它的輸出信組成的,它的輸出信號的高低電平脈寬可分別由兩組號的高低電平脈寬可分別由兩組8位預置數(shù)位預置數(shù)進行控制。進行控制。圖圖6-6 脈寬數(shù)控調制信號發(fā)
15、生器邏輯圖脈寬數(shù)控調制信號發(fā)生器邏輯圖階段二階段二 VHDLVHDL程序程序 (1)8位可自加載加法計數(shù)器的源程序LCNT8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164,.ALL;ENTITY LCNT8 IS -8位可自加載加法計數(shù)器PORT(CLK,LD:IN STD_LOGIC; -工作時鐘/預置值加載信號 D:IN INTEGER RANGE 0 TO 255;-8位分頻預置數(shù) CAO:OUT STD_LOGIC); -計數(shù)溢出輸出END ENTITY LCNT8;ARCHITECTURE ART OF LCNT8 IS SIGNAL COUNT:I
16、NTEGER RANGE 0 TO 255; -8位計數(shù)器設置BEGINPROCESS ( CLK ) ISBEGINIF CLKEVENT AND CLK= 1 THEN IF LD= 1 THEN COUNT=D; -LD為高電平時加載預置數(shù)ELSE COUNT=COUNT+1; -否則繼續(xù)計數(shù) END IF; END IF;END PROCESS;PROCESS (CLK, COUNT) ISBEGIN IF CLKEVENT AND CLK=1 THEN IF COUNT=255 THEN CAO= 1;ELSE CAOCLK,LD=LD1,D=A,CAO=CAO1);U2:LCNT8
17、 PORT MAP(CLK=CLK,LD=LD2,D=B,CAO=CAO2);PROCESS(CAO1,CAO2) ISBEGINIF CAO1= 1 THEN PSINT= 0;ELSIF CAO2 EVENT AND CAO2= 1 THEN PSINT=1;END IF;END PROCESS;LD1=NOT PSINT;LD2=PSINT;PSOUT=PSINT;END ARCHITECTURE ART; 任務四任務四 數(shù)字秒表的設計數(shù)字秒表的設計 階段一階段一 設計思路設計思路階段二階段二 VHDLVHDL程序程序 階段一階段一 設計思路設計思路今需設計一個計時范圍為今需設計一個計時
18、范圍為0.01秒秒1小時的小時的數(shù)字秒表,首先需要獲得一個比較精確的數(shù)字秒表,首先需要獲得一個比較精確的計時基準信號,這里是周期為計時基準信號,這里是周期為1/100 s的計的計時脈沖。其次,除了對每一計數(shù)器需設置時脈沖。其次,除了對每一計數(shù)器需設置清零信號輸入外,還需在六個計數(shù)器設置清零信號輸入外,還需在六個計數(shù)器設置時鐘使能信號,即計時允許信號,以便作時鐘使能信號,即計時允許信號,以便作為秒表的計時起、停控制開關為秒表的計時起、??刂崎_關 。因此數(shù)字秒表可由一個分頻器、四個十進因此數(shù)字秒表可由一個分頻器、四個十進制計數(shù)器制計數(shù)器(1/100秒、秒、1/10秒、秒、1秒、秒、1分分)以以及兩
19、個六進制計數(shù)器及兩個六進制計數(shù)器(10秒、秒、10分分)組成,組成,如圖如圖6-7所示。所示。圖圖6-7 數(shù)字秒表電路邏輯圖數(shù)字秒表電路邏輯圖階段二階段二 VHDLVHDL程序程序 1) 3 MHz100 Hz分頻器的源程序CLKGEN.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CLKGEN IS PORT (CLK:IN STD_LOGIC; -3 MHz信號輸入 NEWCLK:OUT STD_LOGIC); -100 Hz計時時鐘信號輸出END ENTITY CLKGEN;ARCHITECTURE ART OF CLKGEN IS
20、 SIGNAL CNTER:INTEGER RANGE 0 TO 10#29999#; -十進制計數(shù)預制數(shù)BEGINPROCESS(CLK) IS -分頻計數(shù)器,由3 MHz時鐘產(chǎn)生100 Hz信號BEGIN IS IF CLKEVENT AND CLK=1 THEN IF CNTER=10#29999# THEN CNTER=0;-3 MHz信號變?yōu)?00 Hz,計數(shù)常數(shù)為30 000ELSE CNTER=CNTER+1; END IF; END IF;END PROCESS;PROCESS(CNTER) IS -計數(shù)溢出信號控制BEGIN IF CNTER=10#29999# THEN N
21、EWCLK=1; ELSE NEWCLK=0; END IF;END PROCESS;END ARCHITECTURE ART; 2) 六進制計數(shù)器的源程序CNT6.VHD(十進制計數(shù)器的源程序CNT10.VHD與此類似)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 ISPORT (CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; ENA: IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC ); END ENTITY C
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)系統(tǒng)中的能量流動與轉換試題及答案
- 2024年CPMM時間規(guī)劃試題及答案
- 傳染病院感防控課件
- 人類自身基因組與健康的關系試題及答案
- 2025年強振加速度儀合作協(xié)議書
- 出血熱培訓知識課件
- 關于2024年CPMM的試題及答案
- 自我提升與國際物流師試題及答案
- 2024年CPMM深入學習試題及答案
- 2024年CPMM成功秘訣試題及答案
- 干細胞與干細胞治療
- 春季常見傳染病預防知識培訓
- 中建履帶吊安拆安全專項施工方案
- 醫(yī)學論文格式與寫作課件
- 市場監(jiān)監(jiān)督管理執(zhí)法講座
- 2024年天翼云從業(yè)者認證考試題庫大全(含答案)
- 煤礦開采安全管理培訓課件
- 2024年度博物館展覽設計合同
- 胰島素皮下注射標準解讀
- 出售渣土合同范例
- 2024年甘肅省高考地理試卷(含答案逐題解析)
評論
0/150
提交評論