基于VHDL的電子秒表的設計_第1頁
基于VHDL的電子秒表的設計_第2頁
基于VHDL的電子秒表的設計_第3頁
基于VHDL的電子秒表的設計_第4頁
基于VHDL的電子秒表的設計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、EDA技術及應用課程設計報告題 目: 基于VHDL的電子秒表的設計 院 (系): 機電與自動化學院 專業(yè)班級: 學生姓名: 學 號: 指導教師: 2015年 1月 5日至2015 年 1月9日華中科技大學武昌分校制目 錄1 課程設計的目的及主要內(nèi)容12 設計模塊1 2.1系統(tǒng)總體框圖及功能設計 1 2.1.1系統(tǒng)總體框圖1 2.1.2模塊功能設計2 2.2 六十進制計數(shù)器 2 2.2.1 六十進制計數(shù)器設計思路 2 2.2.2 六十進制計數(shù)器仿真結(jié)果 3 2.3 二十四進制計數(shù)器 4 2.3.1 二十四進制計數(shù)器設計思路 42.3.2 二十四進制計數(shù)器仿真結(jié)果 5 2.4 分頻器 6 2.4.

2、1 分頻器設計思路 6 2.4.2 分頻器仿真結(jié)果 7 2.5 LED顯示 7 2.5.1 LED顯示模塊設計思路7 2.5.2 LED顯示模塊仿真結(jié)果10 2.6 頂層仿真 113 課程設計總結(jié) 124 主要參考資料 131 課程設計目的及主要內(nèi)容 (1)運用數(shù)字系統(tǒng)的設計方法進行數(shù)字系統(tǒng)設計; (2)能進行較復雜的數(shù)字系統(tǒng)設計; (3)數(shù)字中的工作原理,工作流程圖與原理方框圖,自頂向下的數(shù)字系統(tǒng)設計方法。具體內(nèi)容: 設計一個電子秒表,給定時鐘信號為256HZ,要求系統(tǒng)達到以下功能: (1)用6個數(shù)碼管分別顯示時、分、秒, 計時范圍為:00: 00: 00 23: 59:59。(2)計時精度

3、是1s。(3)具有啟/ 停開關, 復位開關, 可以在任何情況下使用。2設計模塊2.1 系統(tǒng)總體框圖及功能設計2.1.1系統(tǒng)總體框圖 電子秒表的基本工作原理就是不斷輸出連續(xù)脈沖給加法計數(shù)器,加法計數(shù)器通過譯碼器來顯示它所記憶的脈沖周期個數(shù)。 根據(jù)系統(tǒng)設計要求, 系統(tǒng)的底層設計主要由六十進制計數(shù)器模塊、二十四進制計數(shù)器模塊、分頻模塊、LED顯示模塊組成。系統(tǒng)頂層設計圖如圖1所示。圖1 系統(tǒng)頂層設計圖圖1中左邊為三個輸入信號en,clk,reset,分別為啟動/停止開關,時鐘信號和復位開關。中間從上至下依次為count24,count60,count60,fenpinqi。右邊是clock1和輸出信

4、號wei3.0, led6.0。2.1.2模塊功能設計 本系統(tǒng)由六十進制計數(shù)器模塊、二十四進制計數(shù)器模塊、分頻模塊執(zhí)行計時功能, 輸入信號是256 Hz,通過分頻后為1hz,時鐘信號是1 Hz 作為秒表的秒輸入, 秒為60 進制計數(shù)器, 分也為60 進制計數(shù)器, 小時采用二十四進制計數(shù)器, 各級進位作為高位的使能控制。2.2 六十進制計數(shù)器2.2.1 六十進制計數(shù)器設計思路 設計一個八位的六十進制計數(shù)器模塊,輸入信號為en、reset、clk,分別為使能、復位和時鐘信號,輸出信號為qa30、qb30、rco,分別為低4位輸出、高4位輸出和進位。圖2 六十進制計數(shù)器示意圖六十進制計數(shù)器模塊部分V

5、HDL 源程序如下。LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); rco: OUT STD_LOGIC); END count60;ARCHITECTURE a OF count60 ISBEGINprocess(clk)variable tma

6、: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);beginIf Reset ='0'then tma:="0000" tmb:="0000" elsif clk'event and clk='1' thenif en='1' thenrco<=tmb(2)and tmb(0)and tma(3)and tma(0); if tma="1001" then tma:="

7、;0000" if tmb="0101" then tmb:="0000" else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa<=tma;qb<=tmb; end process;END a;2.2.2 六十進制計數(shù)器仿真結(jié)果六十進制計數(shù)器模塊部分仿真結(jié)果如下圖3。圖3六十進制計數(shù)器仿真波形圖 CLK:時鐘信號 RST:復位信號 低電平清零 En:置數(shù)端 低電平不讓它繼續(xù)計數(shù)qb、qa:分別為輸出數(shù)的十位個位,qb取值范圍為0-5,qa取值范圍為0

8、-9rco:進位信號,當qb=5,qa=0, rco=0時,clk上升沿來到后,qb=0, qa=0, rco=1; 當qb=5,qa=0, rco=1時,clk上升沿來到后,qb=0, qa=0, rco=0。2.3 二十四進制計數(shù)器2.3.1 二十四進制計數(shù)器設計思路設計一個八位的二十四進制計數(shù)器模塊,輸入信號為en、reset、clk,分別為使能、復位和時鐘信號,輸出信號為qa30、qb30,分別為低4位輸出、高4位輸出。圖4 二十四進制計數(shù)器示意圖 二十四進制計數(shù)器模塊部分VHDL 源程序如下。LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE i

9、eee.std_logic_unsigned.ALL;ENTITY count24 ISPORT( en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); END count24;ARCHITECTURE a1 OF count24 ISBEGINprocess(clk)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);be

10、ginIf Reset = '0'then tma:="0000" tmb:="0000" else if clk'event and clk='1' then if en='1' then if tma="1001" then tma:="0000"tmb:=tmb+1; elsif tmb="0010" and tma="0011" then tma:="0000"tmb:="0000&

11、quot; else tma:=tma+1; end if; end if; end if;end if; qa<=tma;qb<=tmb; end process;END a1;2.3.2 二十四進制計數(shù)器仿真結(jié)果 二十四進制計數(shù)器模塊部分仿真結(jié)果如下圖5。圖5二十四進制計數(shù)器仿真波形圖 CLK:時鐘信號 RST:復位信號 低電平清零 En:置數(shù)端 低電平不讓它繼續(xù)計數(shù) qb、qa:輸出的四位二進制數(shù),分別對于要輸出數(shù)的十位個位 2.4 分頻器2.4.1 分頻器設計思路分頻器原理:輸入一個較高的頻率,比如750kHz,則設計算法,使得每輸入7500個脈沖輸出一個脈沖,這樣輸出端口

12、就提供一個100Hz的頻率。輸入信號為clk和rst,分別為時鐘信號和復位信號,輸出信號為clk_out,為分頻器1HZ的時鐘信號輸出。圖6 分頻器示意圖 分頻器模塊部分VHDL 源程序如下。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi IS PORT (CLK,RST:in std_logic; CLK_OUT:out std_logic); END fenpinqi;ARCHITECTURE behav OF fenpinqi ISsignal clk_dat

13、a:std_logic;SIGNAL CNT6 : INTEGER := 0;BEGIN PROCESS(CLK) BEGIN IF RST = '0' THEN CNT6<=0 ; ELSIF CLK'EVENT AND CLK='1' THEN IF CNT6=2 THEN clk_data<=NOT clk_data;CNT6<=0;ELSE CNT6<=CNT6+1; END IF; END IF; CLK_OUT<=clk_data; END PROCESS;END behav; 2.4.2 分頻器仿真結(jié)果 分頻器

14、模塊部分仿真結(jié)果如下圖7。圖7分頻器仿真波形圖 CLK:輸入分頻前的時鐘信號 RST:復位信號 低電平清零 Clkout:輸出分頻后的時鐘信號 2.5 LED顯示2.5.1 LED顯示模塊設計思路 LED有著顯示亮度高,響應速度快的特點,最常用的是七段式LED顯示器,又稱數(shù)碼管。七段LED顯示器內(nèi)部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。LED數(shù)碼管的ga七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼(段碼),如顯示”0”,字形碼為3fh。數(shù)碼管的接口有靜態(tài)接口和動態(tài)接口。動態(tài)接口采用各數(shù)碼管循環(huán)輪

15、流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性 ,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完 成各數(shù)碼管的輪流點亮(數(shù)位選擇)。將二十四進制計數(shù)器和2個六十進制計數(shù)器的輸出作為LEDA顯示模塊的輸入,在時鐘信號的控制下通過此模塊完成6個LED數(shù)碼管的顯示,輸出信號為WEI20和LED60,分別為位選信號和段碼輸出。圖8 LED顯示示意圖圖9 LED數(shù)碼管結(jié)構(gòu)圖 LED顯示模塊部分VHDL 源程序如下。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

16、ENTITY clock1 IS PORT(CLK: IN STD_LOGIC;S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0);WEI: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY;ARCHITECTURE behave OF clock1 ISSIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0;SIGNAL SHUJU: STD_LOGIC_VECTOR(3 DOWNTO 0);BE

17、GIN PRO1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THENCNT6 <= CNT6 + 1;CASE CNT6 ISWHEN 0 => WEI <= "000" SHUJU <= S1;WHEN 1 => WEI <= "001" SHUJU <= S2; WHEN 2 => WEI <= "010" SHUJU <= S3;WHEN 3 => WEI <= "011&quo

18、t; SHUJU <= S4;WHEN 4 => WEI <= "100" SHUJU <= S5;WHEN 5 => WEI <= "101" SHUJU <= S6;CNT6<=0;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS;PRO2: PROCESS(SHUJU)BEGINCASE SHUJU ISWHEN "0000" => LED<= "1111110" ;WHEN "0001&

19、quot; => LED<= "0110000" ; WHEN "0010" => LED<= "1101101" ; WHEN "0011" => LED<= "1111001" ; WHEN "0100" => LED<= "0110011" ; WHEN "0101" => LED<= "1011011" ; WHEN "0110"

20、 => LED<= "1011111" ; WHEN "0111" => LED<= "1110000" ; WHEN "1000" => LED<= "1111111" ; WHEN "1001" => LED<= "1111011" ; WHEN others=> LED<= "0000000" ; END CASE;END PROCESS;END ; 2.5.2 LED顯

21、示模塊仿真結(jié)果 LED顯示模塊部分仿真結(jié)果如下圖10。圖10 LED顯示模塊仿真波形圖 Clk:時鐘信號 s1,s2,s3,s4,s5,s6:輸入的的四位二進制數(shù) led:輸出的七位二進制數(shù),對應數(shù)碼管腳的輸出gfedcba wei:輸出的三位而進制數(shù)(輸出范圍為000-101),控制led輸出,當wei=000時,led輸出s1對應的十進制數(shù)的數(shù)碼管腳gfedcba當wei=001時,led輸出s2對應的十進制數(shù)的數(shù)碼管腳gfedcba當wei=010時,led輸出s3對應的十進制數(shù)的數(shù)碼管腳gfedcba當wei=011時,led輸出s4對應的十進制數(shù)的數(shù)碼管腳gfedcba當wei=10

22、0時,led輸出s5對應的十進制數(shù)的數(shù)碼管腳gfedcba當wei=101時,led輸出s6對應的十進制數(shù)的數(shù)碼管腳gfedcba2.6 頂層仿真 頂層仿真仿真波形如下圖11 圖11頂層仿真仿真波形CLK:時鐘信號 RST:復位信號 低電平清零 En:置數(shù)端 低電平不讓它繼續(xù)計數(shù)led:輸出的七位二進制數(shù),對應數(shù)碼管腳的輸出gfedcbawei:輸出的三位而進制數(shù)(輸出范圍為000-101),控制led輸出,當wei=000時,led輸出對于秒鐘的個位當wei=001時,led輸出對于秒鐘的十位當wei=010時,led輸出對于分鐘的個位當wei=011時,led輸出對于分鐘的十位當wei=100時,led輸出對于時鐘的個位當wei=101時,led輸出對應時鐘的十位3 課程設計總結(jié)通過本次課程設計,把EDA

溫馨提示

  • 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

提交評論