版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第7章 EDA技術(shù)綜合應(yīng)用設(shè)計舉例,7.1 彩燈控制器設(shè)計 7.2 電子鐘設(shè)計 7.3 電子搶答器設(shè)計 7.4 交通燈控制器設(shè)計 7.5 簡易數(shù)字頻率計設(shè)計 小結(jié),7.1 彩燈控制器設(shè)計,7.1.1彩燈控制器設(shè)計要求 1.要有多種花型變化(至少設(shè)計4種)。 2.多種花型可以自動變換,循環(huán)往復(fù)。 3.彩燈變換的快慢節(jié)拍可以選擇。 4.具有清零開關(guān)。 7.1.2系統(tǒng)設(shè)計方案 根據(jù)系統(tǒng)設(shè)計要求可知,整個系統(tǒng)共有三個輸入信號:控制彩燈節(jié)奏快慢的基準(zhǔn)時鐘信號(CLK)CLK_IN,系統(tǒng)清零信號CLR,彩燈節(jié)奏快慢選擇開關(guān)SPEED_KEY;共有16個輸出信號LED15.0,分別用于控制十六路彩燈。,下一
2、頁,返回,7.1 彩燈控制器設(shè)計,據(jù)此,我們可將整個彩燈控制器CDKZQ分為兩大部分:時序控制電路SXKZ和顯示控制電路XSKZ,整個系統(tǒng)的組成原理圖如圖7-1所示。 7.1.3各模塊VHDL源程序設(shè)計 1.時序控制電路的VHDL源程序 -SXKZ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SXKZ IS,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,PORT(CHOSE_KEY:IN STD_LOGIC; CLK:IN STD_LOGIC; CLR:IN STD
3、_LOGIC; CLK1:OUT STD_LOGIC); END ENTITY SXKZ; ARCHITECTURE ART OF SXKZ IS SIGNAL TEMP_CLK:STD_LOGIC; BEGIN PROCESS(CLK,CLR,CHOSE_KEY) IS VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,IF CLR=1 THEN -當(dāng)CLR=1時清零,否則正常工作 TEMP_CLK=0;TEMP:=000; ELSIF RISING_EDGE(CLK) THEN IF CHOSE
4、_KEY=1 THEN IF TEMP=011 THEN TEMP:=000; TEMP_CLK=NOT TEMP_CLK ; ELSE TEMP:=TEMP+1; END IF;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,-當(dāng)CHOSE_KEY=1時產(chǎn)生基準(zhǔn)時鐘頻率的1/4的時鐘信號,否則產(chǎn)生基準(zhǔn)時鐘 -頻率的1/8的時鐘信號 ELSE IF TEMP=111 THEN TEMP:=000; TEMP_CLK=NOT TEMP_CLK ; ELSE TEMP:=TEMP+1; END IF; END IF; END IF;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,END PROCE
5、SS; CLK1=TEMP_CLK; END ARCHITECTURE ART; 2. 顯示控制電路的VHDL源程序 -XSKZ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY XSKZ IS PORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); END ENTITY XSKZ;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,ARCHITECTURE ART OF XSKZ IS TYPE STATE IS(S0,S1,S2,S
6、3,S4,S5,S6); SIGNAL CURRENT_STATE:STATE; SIGNAL FLOWER:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(CLR,CLK1) IS CONSTANT F1:STD_LOGIC_VECTOR(15 DOWNTO 0):=0001000100010001; CONSTANT F2:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010101010101010; CONSTANT F3:STD_LOGIC_VECTOR(15 DOWNTO 0):=0011001100110011;,下一頁,
7、返回,上一頁,7.1 彩燈控制器設(shè)計,CONSTANT F4:STD_LOGIC_VECTOR(15 DOWNTO 0):=0100100100100100; CONSTANT F5:STD_LOGIC_VECTOR(15 DOWNTO 0):=1001010010100101; CONSTANT F6:STD_LOGIC_VECTOR(15 DOWNTO 0):=1101101101100110; -六種花型的定義 BEGIN IF CLR=1 THEN CURRENT_STATE=S0; ELSIF RISING_EDGE(CLK1) THEN,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計
8、,CASE CURRENT_STATE IS WHEN S0= FLOWER FLOWER FLOWER=F2; CURRENT_STATE=S3;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,WHEN S3= FLOWER FLOWER FLOWER FLOWER=F6; CURRENT_STATE=S1;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,END CASE; END IF; END PROCESS; LED=FLOWER; END ARCHITECTURE ART; 3. 整個電路系統(tǒng)的VHDL源程序 -CDKZQ.VHD LIBRARY IEEE; USE IEEE.STD
9、_LOGIC_1164.ALL; ENTITY CDKZQ IS PORT(CLK:IN STD_LOGIC;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,CLR:IN STD_LOGIC; SPEED_KEY:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); END ENTITY CDKZQ; ARCHITECTURE ART OF CDKZQ IS COMPONENT SXKZ IS PORT(SPEED_KEY:IN STD_LOGIC; CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; CLK1:OUT S
10、TD_LOGIC); END COMPONENT SXKZ;,下一頁,返回,上一頁,7.1 彩燈控制器設(shè)計,COMPONENT XSKZ IS PORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); END COMPONENT XSKZ; SIGNAL S1:STD_LOGIC; BEGIN U1:SXKZ PORT MAP(SPEED_KEY,CLK,CLR,S1); U2:XSKZ PORT MAP(S1,CLR,LED); END ARCHITECTURE ART;,下一頁,返回,上
11、一頁,7.1 彩燈控制器設(shè)計,7.1.4系統(tǒng)仿真波形 系統(tǒng)仿真后的結(jié)果分別如圖7-2、圖7-3、圖7-4所示。,返回,上一頁,7.2 電子鐘設(shè)計,7.2.1電子鐘設(shè)計要求 1.具有時、分、秒計數(shù)功能,且以24小時循環(huán)計時。 2.計時結(jié)果要用6個數(shù)碼管分別顯示時、分、秒的十位和個位。 3.具有清零的功能。 7.2.2系統(tǒng)設(shè)計方案 根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下的設(shè)計方法,系統(tǒng)的頂層原理圖如圖7-5所示,它由分頻模塊(FENPIN)、分和時60進(jìn)制BCD碼計數(shù)模塊(CNT60)、七段譯碼顯示模塊(SEG7)、選擇顯示數(shù)據(jù)模塊(MUX24_4)、動態(tài)掃描控制模塊(SCAN)和片選信號(SEL
12、)模塊等組成。 在圖7-5中,60進(jìn)制BCD碼計數(shù)模塊采用原理圖設(shè)計,其余模塊均為VHDL程序設(shè)計。60進(jìn)制BCD碼計數(shù)模塊的原理圖如圖7-6所示。,下一頁,返回,7.2 電子鐘設(shè)計,FENPIN分頻將1M時鐘信號分頻為1Hz,作為電子鐘的秒脈沖,送入六十進(jìn)制計數(shù)器CNT60進(jìn)行秒計時,秒計時滿60秒產(chǎn)生一個進(jìn)位信號CO,送入分計數(shù)器進(jìn)行分計數(shù)。當(dāng)分計數(shù)器計滿60分時,將其進(jìn)位信co號送至?xí)r計數(shù)器。 MUX24_4模塊為一個24選4數(shù)據(jù)選擇器。在SEL模塊輸出控制下將時、分、秒計數(shù)器的輸出6組BCD選出其中一組送入SEG7模塊進(jìn)行譯碼。 掃描控制模塊SCAN,在SEL模塊輸出控制下輪流點(diǎn)亮6數(shù)
13、碼管來顯示相對應(yīng)的數(shù)據(jù)。 7.2.3各模塊VHDL源程序設(shè)計 1二十四進(jìn)制計數(shù)器的VHDL源程序 -cnt24.vhd LIBRARY IEEE;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT24 IS PORT(CLK ,CLR:IN STD_LOGIC; CO:OUT STD_LOGIC; ten:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); one:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);
14、 END CNT24; ARCHITECTURE ART OF CNT24 IS BEGIN,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,CO=1WHEN(ten=0010AND one=0011 )ELSE0; PROCESS(CLK,CLR) BEGIN IF(CLR=0)THEN ten=0000; one=0000; ELSIF(CLKEVENT AND CLK=1)THEN IF(one=3)THEN one=0000; IF(ten=2)THEN ten=0000,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,ELSE ten=ten+1; END IF; ELSe one=one+1;
15、 END IF; END IF; END PROCESS; END ART; 2. MUX24_4模塊的VHDL源程序 選擇顯示數(shù)據(jù)的模塊MUX24_4可根據(jù)不同的片選信號送出不同的要顯示的數(shù)據(jù)。,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,-mux24_4.VHD LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY mux24_4 IS PORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0); tenh,oneh:IN STD_LOGIC_VECTOR(3 DOWNTO 0); tenm,onem:IN STD_LOG
16、IC_VECTOR(3 DOWNTO 0); tens,ones:IN STD_LOGIC_VECTOR(3 DOWNTO 0); bcd:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END mux24_4; ARCHITECTURE behav OF mux24_4 IS,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,BEGIN PROCESS(sel) BEGIN CASE sel IS WHEN000=bcdbcdbcdbcdbcdbcdbcd=1111 ; END CASE;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,END PROCESS; END behav;
17、3. 片選信號SEL模塊的VHDL程序 SEL模塊是一個3位二進(jìn)制計數(shù)器,用來控制數(shù)碼管的片選信號。 -sel.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sel IS PORT(clk:IN STD_LOGIC; sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,END sel; ARCHITECTURE arc OF sel IS BEGIN PROCESS(clk) VARIABLE cnt:
18、STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF clkEVENT AND clk=1 THEN cnt:=cnt+1; END IF; sel=cnt; END PROCESS; END arc;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,4.分頻模塊FENPIN的VHDL源程序 模塊可實(shí)現(xiàn)十分頻,為提供l Hz的秒脈沖信號做好準(zhǔn)備。 -FENPIN.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY fenpin IS PORT(clk:IN STD_LOGIC; q:OUT STD_LOGIC); END
19、 fenpin; ARCHITECTURE arc OF fenpin IS BEGIN,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,PROCESS(clk) VARIABLE cnt: INTEGER RANGE 0 TO 999; BEGIN IF clkEVENT AND clk=1THEN IF cnt999 THEN cnt:=cnt+1; q=0; ELSE cnt:=0; q=1; END IF; END IF; END PROCESS; END arc;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,5. SEG7譯碼器的VHDL源程序 DISP模塊是BCD/ 7段譯碼器,完成BCD
20、向7段顯示碼的變換作用。 -SEG7.VHD LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY seg7 IS PORT ( BCD: INSTD_LOGIC_VECTOR(3 downto 0); SEGOUT : OUTSTD_LOGIC_VECTOR(6 downto 0) );,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,END seg7 ; ARCHITECTURE a OF seg7 IS BEGIN PROCESS (bcd) BEGIN CASE bcd IS WHEN x0 = SEGOUT SEGOUT SEGOUT SEGO
21、UT SEGOUT =0110110;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,WHEN x5 = SEGOUT SEGOUT SEGOUT SEGOUT SEGOUT SEGOUT =0000000; END CASE; END PROCESS ; END a;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,6.掃描控制SCAN模塊的VHDL源程序 SCAN模塊完成對6個LED數(shù)碼管的掃描控制功能。 -scan.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY scan IS PORT(sel:IN STD_LOGIC_VECTOR(2
22、 DOWNTO 0); seg6_com:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END scan; ARCHITECTURE behav OF scan IS BEGIN,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,PROCESS(clk) VARIABLE cnt: INTEGER RANGE 0 TO 999; BEGIN IF clkEVENT AND clk=1THEN IF cnt999 THEN cnt:=cnt+1; q=0; ELSE cnt:=0; q=1; END IF; END IF; END PROCESS; END arc;,下一頁,返回,
23、上一頁,7.2 電子鐘設(shè)計,PROCESS(sel) BEGIN CASE sel IS WHEN000=seg6_comseg6_comseg6_comseg6_comseg6_comseg6_comseg6_com=111111; END CASE; END PROCESS; END behav;,下一頁,返回,上一頁,7.2 電子鐘設(shè)計,7.2.4系統(tǒng)仿真波形 系統(tǒng)仿真后的結(jié)果分別如圖7-7、圖7-8和圖7-9所示。,返回,上一頁,7.3 電子搶答器設(shè)計,7.3.1搶答器設(shè)計要求 在許多比賽活動中,為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,通常設(shè)置一臺搶答器,通過數(shù)顯、燈光及音響等多種手段
24、指示出第一搶答者。同時,還可以設(shè)置計分、犯規(guī)及獎懲計錄等多種功能。本設(shè)計的具體要求是: 1.設(shè)計制作一個可容納四組參賽者的電子搶答器,每組設(shè)置一個搶答按鈕供搶答者使用。 2.電路具有第一搶答信號的鑒別和鎖存功能。 3.設(shè)置計分電路。 4. 設(shè)置犯規(guī)電路,下一頁,返回,7.3 電子搶答器設(shè)計,7.3.2系統(tǒng)設(shè)計方案 根據(jù)系統(tǒng)設(shè)計要求可知,系統(tǒng)的輸入信號有:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號CLR,系統(tǒng)時鐘信號CLK,計分復(fù)位端RST,加分按鈕端ADD,計時預(yù)置控制端LDN,計時使能端EN,計時預(yù)置數(shù)據(jù)調(diào)整按鈕TA、TB;系統(tǒng)的輸出信號有:四個組搶答成功與否的指示燈控制信號輸出口LEDA、
25、LEDB、LEDC、LEDD,四個組搶答時的計時數(shù)碼顯示控制信號若干,搶答成功組別顯示的控制信號若干,各組計分動態(tài)顯示的控制信號若干。 根據(jù)以上的分析,我們可將整個系統(tǒng)分為三個主要模塊:搶答鑒別模塊QDJB;搶答計時模塊JSQ;搶答計分模塊JFQ。對于需顯示的信息,需增加或外接譯碼器,進(jìn)行顯示譯碼??紤]到FPGA/CPLD的可用接口及一般EDA實(shí)驗(yàn)開發(fā)系統(tǒng)提供的輸出顯示資源的限制,這里我們將組別顯示和計時顯示的譯碼器內(nèi)設(shè),而將各組的計分顯示的譯碼器外接。整個系統(tǒng)的組成框圖如圖7-10所示。,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,7.3.3各模塊VHDL源程序設(shè)計 1. 搶答鑒別電路QD
26、JB的VHDL源程序 -QDJB.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR: IN STD_LOGIC; A, B, C, D: IN STD_LOGIC; A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,END ENTITY QDJB; ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:=00
27、01; CONSTANT W2: STD_LOGIC_VECTOR:=0010; CONSTANT W3: STD_LOGIC_VECTOR:=0100; CONSTANT W4: STD_LOGIC_VECTOR:=1000; BEGIN PROCESS(CLR,A,B,C,D) IS BEGIN IF CLR=1 THEN STATES=0000; ELSIF (A=1AND B=0AND C=0AND D=0) THEN,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,A1=1; B1=0; C1=0; D1=0; STATES=W1; ELSIF (A=0AND B=1AND C=0AN
28、D D=0) THEN A1=0; B1=1; C1=0; D1=0; STATES=W2; ELSIF (A=0AND B=0AND C=1AND D=0) THEN A1=1; B1=0; C1=1; D1=0; STATES=W3; ELSIF (A=0AND B=0AND C=0AND D=1) THEN A1=0; B1=0; C1=0; D1=1; STATES=W4; END IF; END PROCESS; END ARCHITECTURE ART;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,2. 計分器電路JFQ的VHDL源程序 -JFQ.VHD LIBRARY IEEE
29、; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JFQ IS PORT(RST: IN STD_LOGIC; ADD: IN STD_LOGIC; CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計
30、,END ENTITY JFQ ; ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS) IS VARIABLE POINTS_A2,POINTS_A1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B2,POINTS_B1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C2,POINTS_C1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D2,POINTS_D1: STD_LOGIC_VECT
31、OR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST=1 THEN,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,POINTS_A2:=0001; POINTS_A1:=0000; POINTS_B2:=0001; POINTS_B1:=0000; POINTS_C2:=0001; POINTS_C1:=0000; POINTS_D2:=0001; POINTS_D1:=0000; ELSIF CHOS=0001 THEN IF POINTS_A1=1001 THEN POINTS_A1:=0000; IF POINTS_A2=10
32、01 THEN POINTS_A2:=0000; ELSE POINTS_A2:=POINTS_A2+1; END IF;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,ELSE POINTS_A1:=POINTS_A1+1; END IF; ELSIF CHOS=0010 THEN IF POINTS_B1=1001 THEN POINTS_B1:=0000; IF POINTS_B2=1001 THEN POINTS_B2:=0000; ELSE POINTS_B2:=POINTS_B2+1; END IF;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,ELSE POINTS_B1:=P
33、OINTS_B1+1; END IF; ELSIF CHOS=0100 THEN IF POINTS_C1=1001 THEN POINTS_C1:=0000; IF POINTS_C2=1001 THEN POINTS_C2:=0000; ELSE POINTS_C2:=POINTS_C2+1; END IF;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,ELSE POINTS_C1:=POINTS_C1+1; END IF; ELSIF CHOS=1000 THEN IF POINTS_D1=1001 THEN POINTS_D1:=0000; IF POINTS_D2=1001 THE
34、N POINTS_D2:=0000; ELSE POINTS_D2:=POINTS_D2+1; END IF;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,ELSE POINTS_D1:=POINTS_D1+1; END IF; END IF; END IF; AA2=POINTS_A2; AA1=POINTS_A1; AA0=0000; BB2=POINTS_B2; BB1=POINTS_B1; BB0=0000; CC2=POINTS_C2; CC1=POINTS_C1; CC0=0000; DD2=POINTS_D2; DD1=POINTS_D1; DD0=0000; END PROC
35、ESS; END ARCHITECTURE ART;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,3.計時器電路JSQ的VHDL源程序 -JSQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB: IN STD_LOGIC; QA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
36、END ENTITY JSQ;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(TA,TB,CLR) IS BEGIN IF CLR=1 THEN DA=0000; DB=0000; ELSE IF TA=1 THEN,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,DA=DA+1 ; END IF; IF TB=1 THEN DB=DB+1; END I
37、F; END IF; END PROCESS; PROCESS(CLK) IS VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,IF CLR=1 THEN TMPA:=0000; TMPB:=0110; ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=DA; TMPB:=DB; ELSIF EN=1 THEN IF TMPA=0000 THEN TMPA:
38、=1001; IF TMPB=0000 THEN TMPB:=0110; ELSE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,END IF; END IF; QA=TMPA; QB=TMPB; END PROCESS; END ARCHITECTURE ART; 4. 譯碼器電路YMQ的VHDL源程序 -YMQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY YMQ I
39、S,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END YMQ; ARCHITECTURE ART OF YMQ IS BEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN 0000=DOUT7DOUT7DOUT7=1011011; -2,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,WHEN 0011=DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=000
40、0000; END CASE; END PROCESS; END ARCHITECTURE ART;,下一頁,返回,上一頁,7.3 電子搶答器設(shè)計,7.3.4系統(tǒng)仿真波形 系統(tǒng)仿真后的結(jié)果分別如圖7-11、圖7-12、圖7-13和圖7-14所示。,返回,上一頁,7.4 交通燈控制器設(shè)計,7.4.1交通燈控制器設(shè)計要求 設(shè)計一個由一條主干道和一條支干道的匯合點(diǎn)形成的十字交叉路口的交通燈控制器,具體要求如下: 1. 主、支干道各設(shè)有一個綠、黃、紅指示燈。 2. 主干道處于常允許通行狀態(tài),而支干道有車來才允許通行。 3. 當(dāng)主、支道均有車時,兩者交替允許通行。 4.主干道,支干道每次放行時間不得短于
41、30 s,在每次由亮綠燈變成亮紅燈的轉(zhuǎn)換過程中,要亮4 s的黃燈作為過渡,并進(jìn)行減計時顯示。,下一頁,返回,7.4 交通燈控制器設(shè)計,7.4.2系統(tǒng)設(shè)計方案 根據(jù)交通燈信號控制的要求,我們可用狀態(tài)機(jī)來實(shí)現(xiàn)交通燈控制器??刂破饔啥〞r器和兩部分組成,其原理方框圖如圖7-所示。SM,SB分別為主干道和支干道來車信號檢測,MR、MY、MG為主干道紅、黃、綠燈驅(qū)動信號輸出,BR、BY、BG為支干道紅、黃、綠燈驅(qū)動信號輸出。 7.4.3 VHDL源程序設(shè)計 -JTDKZ.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JTDKZ IS PORT(
42、CLK,SM,SB:IN BIT;-這里要求CLK為1 kHz,下一頁,返回,上一頁,7.4 交通燈控制器設(shè)計,IF (CLKEVENT AND CLK=1) THEN IF CLR = 0 THEN S:=0; ELSIF EN = 0 THEN S:=1; ELSE S:=S+1; END IF; CASE STATE IS WHEN A=MR=0;MY=0;MG=1; BR= 1;BY= 0;BG= 0; IF (SB AND SM)= 1 THEN IF S=29 THEN STATE=B;CLR:=0;EN:=0;,下一頁,返回,上一頁,7.4 交通燈控制器設(shè)計,ELSE STATE
43、MR= 0;MY= 1;MG= 0; BR= 1;BY= 0;BG= 0; IF S=3 THEN,下一頁,返回,上一頁,7.4 交通燈控制器設(shè)計,STATE MR= 1;MY= 0;MG= 0; BR= 0;BY= 0;BG = 1; IF (SM AND SB) = 1 THEN IF S=29 THEN STATE=D;CLR:=0;EN:=0; ELSE STATE=C;CLR:= 1;EN:=1; END IF;,下一頁,返回,上一頁,7.4 交通燈控制器設(shè)計,ELSIF SB = 0 THEN STATE MR= 1;MY=0;MG=0; BR=0;BY=1;BG= 0; IF S
44、 =3 THEN STATE=A;CLR:=0; EN:=0; ELSE STATE=D;CLR:=1;EN:=1;,下一頁,返回,上一頁,7.4 交通燈控制器設(shè)計,END IF ; END CASE; END IF; END PROCESS CNT; END ART; 7.4.4 系統(tǒng)仿真波形 系統(tǒng)仿真波形如圖7-15,圖7-16和圖7-17所示。,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,7.5.1數(shù)字頻率設(shè)計要求 設(shè)計一個四位十進(jìn)制的數(shù)字頻率計,要求具有以下功能: 1. 測量范圍:1 Hz10kHz 。 2. 測量誤差1。 3. 響應(yīng)時間15s。 4.顯示時間不少于1s。 5. 具有記憶
45、顯示的功能,即在測量過程中不刷新數(shù)據(jù),等數(shù)據(jù)過程結(jié)束后才顯示測量結(jié)果,給出待測信號的頻率值,并保存到下一次測量結(jié)束。,下一頁,返回,7.5 簡易數(shù)字頻率計設(shè)計,7.5.2系統(tǒng)設(shè)計方案 根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)的組成框圖如圖7-5所示,包括時基產(chǎn)生與測頻時序控制電路模塊,以及待測信號脈沖計數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。 1. 時基產(chǎn)生與測頻時序控制電路模塊 時基產(chǎn)生與測頻時序控制電路主要產(chǎn)生計數(shù)允許信號EN,清零信號CLR和鎖存信號LUCK。 2. 待測信號脈沖計數(shù)電路模塊 待測信號脈沖計數(shù)電路是對待測脈沖信號的頻率進(jìn)行測量,它可由4個十進(jìn)制加法計數(shù)器組成,其中EN為計數(shù)選通控制信號,C
46、LR為計數(shù)器清零信號。在計數(shù)器清零信號CLR清零后,當(dāng)計數(shù)選通控制信號EN有效時,開始對待測信號進(jìn)行計數(shù)。,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,如果計數(shù)選通控制信號EN的寬度為Is,那么計數(shù)結(jié)果就為待測信號的頻率;如果計數(shù)選通控制信號EN的寬度為looms,那么待測信號的頻率等于計數(shù)結(jié)果10。 3. 鎖存與譯碼顯示控制電路模塊 鎖存與譯碼顯示控制電路用于實(shí)現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),直到測量過程結(jié)束后,鎖存顯示測量結(jié)果,并且保存到下一次測量結(jié)束。 鎖存與譯碼顯示電路的功能是對四位BCD碼進(jìn)行鎖存,并轉(zhuǎn)換為對應(yīng)的4組七段碼,用于驅(qū)動數(shù)碼管。,下一頁,返回,上一頁,7.5
47、 簡易數(shù)字頻率計設(shè)計,7.5.3各模塊VHDL源程序設(shè)計 1. 時基產(chǎn)生與測頻時序控制電路模塊的VHDL源程序 -clk_sx_CTRL LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clk_sx_CTRL IS PORT(CLK: IN STD_LOGIC; -系統(tǒng)時鐘 LOCK: OUT STD_LOGIC; -鎖存信號 EN: OUT STD_LOGIC; -計數(shù)允許信號 CLR: OUT STD_LOGIC); -清零信號,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計
48、設(shè)計,END; ARCHITECTURE ART OF clk_sx_CTRL IS SIGNAL Q : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK =1)THEN IF Q=1111 THEN Q=0000; ELSE Q=Q+1;,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,END IF; END IF; EN=NOT Q(3); LOCK=Q(3) AND NOT(Q(2) AND Q(1); CLR= Q(3) AND Q(2) AND NOT(Q(1); END PROC
49、ESS; END ART; 2. 待測信號脈沖計數(shù)電路模塊的VHDL源程序 (1)十進(jìn)制加法計數(shù)器的VHDL源程序 -Cnt10.vhd LIBRARY IEEE;,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY Cnt10 IS PORT(CLK,EN,CLR : IN STD_LOGIC; COUNT10 : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計數(shù)輸出信號 END Cnt10; ARCHITECTURE one
50、 OF Cnt10 IS BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR =1 THEN,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,COUNT10=0000; ELSIF (clkEVENT AND clk=1) THEN IF (EN = 1) then IF COUNT10 = 1001 THEN COUNT10=0000; ELSE COUNT10=COUNT10 + 1; END IF; END IF; END IF; END PROCESS; END one;,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,(2)待測信號脈沖計數(shù)器的VHDL源
51、程序 -F_IN_CNT.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164. ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY F_IN_CNT IS PORT(CLK: IN STD_LOGIC;-待測時鐘信號 EN: IN STD_LOGIC;-計數(shù)選通控制信號 CLR:IN STD_LOGIC;-計數(shù)器清零信號 QA,QB, QC, QD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);-結(jié)果輸出信號 END F_IN_CNT;,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,ARCHIT
52、ECTURE ART OF F_IN_CNT IS COMPONENT CNT10 PORT(CLK,EN,CLR:IN STD_LOGIC; COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); END COMPONENT; SIGNAL s2:STD_LOGIC; SIGNAL s3:STD_LOGIC; SIGNAL s4:STD_LOGIC; BEGIN,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,s2=NOT QA(3); s3=NOT QB(3); s4=NOT QC(3); U1:CNT10 PORT MAP(CLK,EN,CLR,QA)
53、; U2:CNT10 PORT MAP(s2,EN,CLR,QB); U3:CNT10 PORT MAP(s3,EN,CLR,QC); U4:CNT10 PORT MAP(s4,EN,CLR,QD); END ART; 3. 鎖存與譯碼顯示控制電路模塊的VHDL源程序 (1)譯碼顯示電路的VHDL源程序 - seg7,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY seg7 IS PORT ( bcd: IN STD_LOGIC_VECTOR(3 downto 0); dout: OUTSTD
54、_LOGIC_VECTOR(6 downto 0) ); END seg7 ; ARCHITECTURE a OF seg7 IS BEGIN,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,PROCESS (bcd) BEGIN CASE bcd IS WHEN x0 = dout dout dout dout dout dout dout dout =0000111;,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,WHEN x8 = dout dout dout =0000000; END CASE; END PROCESS ; END a; (2)鎖存與譯碼顯示控制模塊的VHDL源
55、程序 -LOCK.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LOCK IS,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,PORT(LOCK:IN STD_LOGIC; QA,QB,QC,QD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END; ARCHITECTURE ART OF LOCK IS SIGNAL L0,L1,L2,L3:STD_LOGIC_VECTOR(3 DOWNTO 0);
56、 COMPONENT SEG7 PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; BEGIN,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計,PROCESS(LOCK) BEGIN IF(LOCKEVENT AND LOCK=1)THEN L0= QA; L1= QB; L2= QC; L3= QD; END IF; END PROCESS; UO:SEG7 PORT MAP(L0,LEDA); U1:SEG7 PORT MAP(L1,LEDB);,下一頁,返回,上一頁,7.5 簡易數(shù)字頻率計設(shè)計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 路緣石施工方案
- 熱力能源站施工方案
- 液晶拼接屏施工方案
- 鐵路路基水害復(fù)舊施工方案
- 試車跑道施工方案
- 鐵路拱型護(hù)坡施工方案
- 2025年研磨拋光設(shè)備項(xiàng)目可行性研究報告
- 中國氣象信息化建設(shè)與IT應(yīng)用行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略研究報告
- 2025年輕型防震腳墊行業(yè)深度研究分析報告
- 2025年中國微凹黃檀行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 《無人機(jī)法律法規(guī)知識》課件-第1章 民用航空法概述
- 部編人教版六年級下冊語文1-6單元作文課件
- NB/T 11434.5-2023煤礦膏體充填第5部分:膠凝材料技術(shù)要求
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考物理試卷(5年真題+答案解析)
- 手術(shù)器械與敷料的傳遞
- 提高護(hù)士手衛(wèi)生執(zhí)行率PDCA案例匯報課件(32張)
- 日本人的色彩意識與自然觀
- 校園網(wǎng)絡(luò)系統(tǒng)的設(shè)計規(guī)劃任務(wù)書
- 部編版5年級語文下冊第五單元學(xué)歷案
- 建造師建設(shè)工程項(xiàng)目管理二局培訓(xùn)精簡版課件
- 電工(三級)理論知識考核要素細(xì)目表
評論
0/150
提交評論