基于.--VHDL的數(shù)字鐘設(shè)計(jì)_第1頁(yè)
基于.--VHDL的數(shù)字鐘設(shè)計(jì)_第2頁(yè)
基于.--VHDL的數(shù)字鐘設(shè)計(jì)_第3頁(yè)
基于.--VHDL的數(shù)字鐘設(shè)計(jì)_第4頁(yè)
基于.--VHDL的數(shù)字鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.wd安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院畢業(yè)論文設(shè)計(jì)題 目:基于VHDL的數(shù)字鐘設(shè)計(jì)系 別:電子信息技術(shù)系專 業(yè):電子信息工程技術(shù)學(xué) 號(hào):202154427學(xué)生姓名:王翀指導(dǎo)教師:王俊職 稱:二一四年五月月十三日【摘要】20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技術(shù)較為先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)展了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件如CPLD、FPGA的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。 EDA技術(shù)在電子系統(tǒng)設(shè)計(jì)領(lǐng)域越來(lái)越普及,本設(shè)計(jì)主要利用VHDL語(yǔ)言在EDA平臺(tái)上設(shè)計(jì)一個(gè)電子數(shù)字鐘,【關(guān)鍵詞】數(shù)字

2、鐘 EDA VHDL語(yǔ)言目錄摘要:. 1 關(guān)鍵詞:. 1 緒論.31.設(shè)計(jì)目的 . 42.設(shè)計(jì)內(nèi)容 .43.設(shè)計(jì)原理 .43.1數(shù)字鐘的根本工作原理.43.2數(shù)字鐘設(shè)計(jì)的電路原理圖.6.4.單元模塊的設(shè)計(jì).64.1秒計(jì)數(shù)器的模塊.64.2分計(jì)數(shù)器的模塊.84.3時(shí)計(jì)數(shù)器的模塊.104.4整點(diǎn)報(bào)時(shí)器模塊.124.5調(diào)時(shí)調(diào)分模塊.134.6 LED顯示譯碼器模塊.155.仿真結(jié)果.17.結(jié)語(yǔ). 17參考文獻(xiàn) . 18緒論是電子設(shè)計(jì)自動(dòng)化lcctronic Design Automation的縮寫,是90年代初從CAD計(jì)算機(jī)輔助設(shè)備,CAM(計(jì)算機(jī)輔助制造),CAT計(jì)算機(jī)輔助測(cè)試和CAE計(jì)算機(jī)輔助工

3、程的概念開(kāi)展而來(lái)的。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語(yǔ)言HDL完成的設(shè)計(jì)文件,自動(dòng)的完成邏輯編譯,化簡(jiǎn),分割,綜合及優(yōu)化,布局布線,仿真以及對(duì)特定目標(biāo)芯片的適配編譯和編程下載等工作,這種將設(shè)計(jì)實(shí)體內(nèi)外局部的概念是VHDL系統(tǒng)設(shè)計(jì)的根本點(diǎn)。應(yīng)用VHDL進(jìn)展工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的。其優(yōu)點(diǎn)是:與其它硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而解決了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最正確的硬件描述語(yǔ)言,強(qiáng)大的行為描述能力是避開(kāi)具體的器件構(gòu)造,從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證;VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能和可行性,及時(shí)可對(duì)設(shè)計(jì)進(jìn)展。

4、它的計(jì)時(shí)周期為24小時(shí),顯示滿刻度為24時(shí)59分59秒,另外還具有校時(shí)功能和鬧鐘功能??偟某绦蛴蓭讉€(gè)各具不同功能的單元模塊程序拼接而成,其中包括分頻程序模塊、時(shí)分秒計(jì)數(shù)和設(shè)置程序模塊、比擬器程序模塊、三輸入數(shù)據(jù)選擇器程序模塊、譯碼顯示程序模塊和拼接程序模塊。并且使用QUARTUS II軟件進(jìn)展電路波形仿真,下載到EDA實(shí)驗(yàn)箱進(jìn)展驗(yàn)證。1.設(shè)計(jì)目的 1熟練地運(yùn)用數(shù)字系統(tǒng)的設(shè)計(jì)方法進(jìn)展數(shù)字系統(tǒng)設(shè)計(jì); 2能進(jìn)展較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì); 3按要求設(shè)計(jì)一個(gè)數(shù)字鐘。 2.設(shè)計(jì)內(nèi)容 1要求顯示秒、分、時(shí),顯示格式如下:圖顯示格式2可清零、可調(diào)時(shí),具有整點(diǎn)報(bào)時(shí)功能。3.設(shè)計(jì)原理3.1數(shù)字鐘的根本工作原理:數(shù)字鐘

5、以其顯示時(shí)間的直觀性、走時(shí)準(zhǔn)確性作為一種計(jì)時(shí)工具,數(shù)字鐘的根本組成局部離不開(kāi)計(jì)數(shù)器,在控制邏輯電路的控制下完成預(yù)定的各項(xiàng)功能。數(shù)字鐘的根本原理方框圖: 數(shù)字鐘實(shí)現(xiàn)原理框圖1時(shí)鐘計(jì)數(shù):完成時(shí)、分、秒的正確計(jì)時(shí)并且顯示所計(jì)的數(shù)字;對(duì)秒、分 60進(jìn)制計(jì)數(shù),即從0到59循環(huán)計(jì)數(shù),時(shí)鐘24進(jìn)制計(jì)數(shù),即從0到23循環(huán)計(jì)數(shù),并且在數(shù)碼管上顯示數(shù)值。 2時(shí)間設(shè)置:手動(dòng)調(diào)節(jié)分鐘、小時(shí),可以對(duì)所設(shè)計(jì)的時(shí)鐘任意調(diào)時(shí)間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過(guò)實(shí)驗(yàn)板上的鍵7和鍵4進(jìn)展任意的調(diào)整,因?yàn)槲覀冇玫臅r(shí)鐘信號(hào)均是1HZ的,所以每LED燈變化一次就來(lái)一個(gè)脈沖,即計(jì)數(shù)一次。 3清零功能:reset為復(fù)位鍵,低電平

6、時(shí)實(shí)現(xiàn)清零功能,高電平時(shí)正常計(jì)數(shù)??梢愿鶕?jù)我們自己任意時(shí)間的復(fù)位。 4蜂鳴器在整點(diǎn)時(shí)有報(bào)時(shí)信號(hào)產(chǎn)生,蜂鳴器報(bào)警。產(chǎn)生“滴答.滴答的報(bào)警聲音。 5LED燈在時(shí)鐘顯示時(shí)有把戲顯示信號(hào)產(chǎn)生。即根據(jù)進(jìn)位情況,LED不停的閃爍,從而產(chǎn)生“把戲信號(hào)。 根據(jù)總體方框圖及各局部分配的功能可知,本系統(tǒng)可以由秒計(jì)數(shù)器、分鐘計(jì)數(shù)器、小時(shí)計(jì)數(shù)器、整點(diǎn)報(bào)時(shí)、分的調(diào)整以及小時(shí)的調(diào)整和一個(gè)頂層文件構(gòu)成。采用自頂向下的設(shè)計(jì)方法,子模塊利用VHDL語(yǔ)言設(shè)計(jì),頂層文件用原理圖的設(shè)計(jì)方法。顯示:小時(shí)采用數(shù)字時(shí)鐘 控制單元 時(shí)調(diào)整 分調(diào)整 使能端信號(hào) CLK信號(hào) 時(shí)顯示 分顯示 秒顯示 24進(jìn)制 60進(jìn)制 60進(jìn)制 LED顯示 整點(diǎn)

7、報(bào)時(shí) 把戲顯示 24進(jìn)制,而分鐘均是采用6進(jìn)制和10進(jìn)制的組合。3.2數(shù)字鐘設(shè)計(jì)的電路原理圖 24進(jìn)制數(shù)字鐘的電路圖4.單元模塊的設(shè)計(jì)4.1.秒計(jì)數(shù)器模塊 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY second IS PORT( clk,reset,setmin:IN STD_LOGIC; enmin:OUT STD_LOGIC; daout:out std_logic_vector(6 downto 0); END entity second; ARCHITECTURE

8、 fun OF second IS SIGNAL count:STD_LOGIC_VECTOR(6 downto 0); SIGNAL enmin_1,enmin_2:STD_LOGIC; -enmin_1為59秒時(shí)的進(jìn)位信號(hào) BEGIN daout<=count; -enmin_2由clk調(diào)制后的手動(dòng)調(diào)分脈沖信號(hào)串 enmin_2<=(setmin and clk); -setmin為手動(dòng)調(diào)分控制信號(hào),高電平有效 enmin<=(enmin_1 or enmin_2); -enmin為向分進(jìn)位信號(hào) process(clk,reset,setmin) begin if(res

9、et='0') then count<="0000000" -假設(shè)reset為0,那么異步清零 elsif(clk'event and clk='1')then -否那么,假設(shè)clk上升沿到 if(count(3 downto 0)="1001")then -假設(shè)個(gè)位計(jì)時(shí)恰好到“1001即9 if(count<16#60#)then -又假設(shè)count小于16#60#,即60H if(count="1011001")then -又假設(shè)已到59D enmin_1<='1&

10、#39;count<="0000000" -那么置進(jìn)位為1及count復(fù)0 else count<=count+7; -未到59D,那么加7,而+7=+1+6,那么作“加6校正 end if; else -假設(shè)count不小于16#60#即count等于或大于16#60# count<="0000000" -count復(fù)0 end if; -end ifcount<16#60# elsif(count<16#60#)then -假設(shè)個(gè)位計(jì)數(shù)未到“1001那么轉(zhuǎn)此句再判 count<=count+1; -假設(shè)count&

11、lt;16#60#那么count加1 enmin_1<='0' after 100 ns; -那么沒(méi)有發(fā)生進(jìn)位 else end if; end if; end process; end fun 編譯過(guò)程:仿真圖如下:4.2分計(jì)數(shù)器模塊 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY minute IS PORT( clk,clk1,reset,sethour:IN STD_LOGIC; enhour:OUT STD_LOGIC; daout:out st

12、d_logic_vector(6 downto 0); END entity minute; ARCHITECTURE fun OF minute IS SIGNAL count:STD_LOGIC_VECTOR(6 downto 0); SIGNAL enhour_1,enhour_2:STD_LOGIC; BEGIN daout<=count; enhour_2<=(sethour and clk1); enhour<=(enhour_1 or enhour_2); process(clk,reset,sethour) begin if(reset='0'

13、)then count<="0000000" -假設(shè)reset=0,那么異步清零 elsif(clk'event and clk='1')then -否那么,假設(shè)clk上升沿到 if(count(3 downto 0)="1001")then -假設(shè)個(gè)位計(jì)時(shí)恰好到“1001即9 if(count<16#60#)then -又假設(shè)count小于16#60#,即60if(count="1011001")then -又假設(shè)已到59D enhour_1<='1' -那么置進(jìn)位為1cou

14、nt<="0000000" -count復(fù)0 ELSE count<=count+7;-假設(shè)count未到59D,那么加7,即作“加6校正 end if; -使前面的16#60#的個(gè)位轉(zhuǎn)變?yōu)?421BCD的容量 else count<="0000000" -count復(fù)0有此句,那么對(duì)無(wú)效狀態(tài)電路可自啟動(dòng) end if; elsif(count<16#60#)then count<=count+1; -假設(shè)count<16#60#那么count加1 enhour_1<='0'after 100 n

15、s; -沒(méi)有發(fā)生進(jìn)位 else count<="0000000" -否那么,假設(shè)count不小于16#60#count復(fù)0 end if; end if; end process; END fun; 編譯過(guò)程:仿真圖如下:4.3.時(shí)計(jì)數(shù)器模塊 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY hour IS PORT( clk,reset:IN STD_LOGIC; daout:out std_logic_vector(5 downto 0); END

16、entity hour; ARCHITECTURE fun OF hour IS SIGNAL count:STD_LOGIC_VECTOR(5 downto 0); BEGIN daout<=count; process(clk,reset) begin if(reset='0')then count<="000000" -假設(shè)reset=0,那么異步清零 elsif(clk'event and clk='1')then -否那么,假設(shè)clk上升沿到 if (count(3 downto 0)="1001&qu

17、ot;)then -假設(shè)個(gè)位計(jì)時(shí)恰好到1001即9 if(count<=16#23#)then -23進(jìn)制 count<=count+7; -假設(shè)到23D那么 else count<="000000" -復(fù)0 end if; elsif(count<16#23#)then -假設(shè)未到23D,那么count進(jìn)1 count<=count+1; else -否那么清零 count<="000000" end if; end if; end process; END fun; 編譯過(guò)程:仿真圖如下:4.4.整點(diǎn)報(bào)時(shí)器模塊 L

18、IBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY alert IS PORT( clk:IN STD_LOGIC; dain:IN STD_LOGIC_VECTOR (6 DOWNTO 0); speak:OUT STD_LOGIC; lamp:OUT STD_LOGIC_VECTOR (2 DOWNTO 0); END alert; ARCHITECTURE fun OF alert IS signal coun:std_logic_vector (1 downto 0); si

19、gnal count1:std_logic_vector (1 downto 0); BEGIN speaker:process(clk) begin speak<=count1(1); if(clk'event and clk='1')then if(dain="0000000")then if(count1>="10")then count1<="00" -count1為三進(jìn)制加法計(jì)數(shù)器 else count1<=count1+1; end if; end if; end if; e

20、nd process speaker; lamper:process(clk) begin if(rising_edge(clk)then if(coun<="10")then if(coun="00")then lamp<="001" -循環(huán)點(diǎn)亮三只燈 elsif(coun="01")then lamp<="010" elsif(coun="10")then lamp<="100" end if; coun<=coun+1;

21、 else coun<="00" end if; end if; end process lamper; END fun; 編譯過(guò)程:仿真圖如下:4.5調(diào)時(shí)調(diào)分模塊 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY seltime IS PORT( clk1,reset:IN STD_LOGIC; sec,min:IN STD_LOGIC_VECTOR(6 downto 0); hour:in

22、std_logic_vector(5 downto 0); daout:OUT STD_LOGIC_vector(3 downto 0); dp:OUT std_LOGIC; sel:out std_logic_vector(2 downto 0); END seltime; ARCHITECTURE fun OF seltime IS SIGNAL count:STD_LOGIC_vector(2 downto 0); BEGIN sel<=count; process(clk1,reset) begin if(reset='0')then count<=&quo

23、t;000" elsif(clk1'event and clk1='1')then if(count>="101")then count<="000" else count<=count+1; end if; end if; case count is when"000"=>daout<=sec(3 downto 0);dp<='0' when"001"=>daout(3)<='0'daout(2 do

24、wnto 0)<=sec(6 downto 4);dp<='0' when"010"=>daout<=min(3 downto 0);dp<='1' when"011"=>daout(3)<='0'daout(2 downto 0)<=min(6 downto 4);dp<='0' when"100"=>daout<=hour(3 downto 0);dp<='1' when othe

25、rs=>daout(3 downto 2)<="00" daout(1 downto 0)<=hour(5 downto 4);dp<='0' end case; end process; end fun; 編譯過(guò)程:仿真圖如下:4.6.LED顯示譯碼器模塊 LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY deled IS PORT(num:IN std_logic_vector(3 downto 0); led:OU

26、T std_logic_vector(6 downto 0); end deled; ARCHITECTURE fun OF deled IS BEGIN led<="1111110"when num="0000"else "0110000"when num="0001"else "1101101"when num="0010"else "1111001"when num="0011"else "0110011"

27、;when num="0100"else "1011011"when num="0101"else "1011111"when num="0110"else "1110000"when num="0111"else "1111111"when num="1000"else "1111011"when num="1001"else "1110111"when num="1010"else "0011111"when num="1011"else "1001110"when num="1100"else "0111101"when num="1101"else "1001111"when num="1110"else "1000111"when num="1111" END fun;編譯過(guò)程:仿真圖如下:5.仿真結(jié)果 下列圖是最后仿

溫馨提示

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

評(píng)論

0/150

提交評(píng)論