基于VHDL的數(shù)字鐘設(shè)計(jì).doc
《基于VHDL的數(shù)字鐘設(shè)計(jì).doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于VHDL的數(shù)字鐘設(shè)計(jì).doc(18頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院畢業(yè)論文(設(shè)計(jì))題 目: 基于VHDL的數(shù)字鐘設(shè)計(jì) 系 別:電子信息技術(shù)系專(zhuān) 業(yè):電子信息工程技術(shù)學(xué) 號(hào):201254427學(xué)生姓名:王翀指導(dǎo)教師:王俊職 稱(chēng):二一四年 五月 月 十三 日【摘要】 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ù)字鐘 EDA VHDL語(yǔ)言 目錄摘要:. 1 關(guān)鍵詞:. 1 緒論.31.設(shè)計(jì)目的 . 4 2.設(shè)計(jì)內(nèi)容 .4 3.設(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顯示譯碼器模塊.15 5.仿真結(jié)果.17.結(jié)語(yǔ). 17參考文獻(xiàn) . 18 緒論 是電子設(shè)計(jì)自動(dòng)化(lcctronic Design Automation)的縮寫(xiě),是90年代初從CAD(計(jì)算機(jī)輔助設(shè)備),CAM(計(jì)算機(jī)輔助制造),CAT(計(jì)算機(jī)輔助測(cè)試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來(lái)的。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語(yǔ)言HDL完成的設(shè)計(jì)文件,自動(dòng)的完成邏輯編譯,化簡(jiǎn),分割,綜合及優(yōu)化,布局布線(xiàn),仿真以及對(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)具體的器件結(jié)構(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)行。它的計(jì)時(shí)周期為24小時(shí),顯示滿(mǎn)刻度為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ù)字鐘以其顯示時(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ù)位鍵,低電平時(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)警聲音。 5)LED燈在時(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)報(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 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(reset=0) then count=0000000; -若reset為0,則異步清零 elsif(clkevent and clk=1)then -否則,若clk上升沿到 if(count(3 downto 0)=1001)then -若個(gè)位計(jì)時(shí)恰好到“1001”即9 if(count16#60#)then -又若count小于16#60#,即60H if(count=1011001)then -又若已到59D enmin_1=1;count=0000000; -則置進(jìn)位為1及count復(fù)0 else count=count+7; -未到59D,則加7,而+7=+1+6,則作“加6校正” end if; else -若count不小于16#60#(即count等于或大于16#60#) count=0000000; -count復(fù)0 end if; -end if(count16#60#) elsif(count16#60#)then -若個(gè)位計(jì)數(shù)未到“1001”則轉(zhuǎn)此句再判 count=count+1; -若count16#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 std_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)then count=0000000; -若reset=0,則異步清零 elsif(clkevent and clk=1)then -否則,若clk上升沿到 if(count(3 downto 0)=1001)then -若個(gè)位計(jì)時(shí)恰好到“1001”即9 if(count16#60#)then -又若count小于16#60#,即60if(count=1011001)then -又若已到59D enhour_1=1; -則置進(jìn)位為1count=0000000; -count復(fù)0 ELSE count=count+7; -若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(count16#60#)then count=count+1; -若count16#60#則count加1 enhour_1=0after 100 ns; -沒(méi)有發(fā)生進(jìn)位 else count=0000000; -否則,若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 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; -若reset=0,則異步清零 elsif(clkevent and clk=1)then -否則,若clk上升沿到 if (count(3 downto 0)=1001)then -若個(gè)位計(jì)時(shí)恰好到1001即9 if(count=16#23#)then -23進(jìn)制 count=count+7; -若到23D則 else count=000000; -復(fù)0 end if; elsif(count16#23#)then -若未到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í)器模塊 LIBRARY 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); signal count1:std_logic_vector (1 downto 0); BEGIN speaker:process(clk) begin speak=10)then count1=00; -count1為三進(jìn)制加法計(jì)數(shù)器 else count1=count1+1; end if; end if; end if; end 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; 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 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=101)then count=000; else countdaout=sec(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=sec(6 downto 4);dpdaout=min(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=min(6 downto 4);dpdaout=hour(3 downto 0);dpdaout(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:OUT std_logic_vector(6 downto 0); end deled; ARCHITECTURE fun OF deled IS BEGIN led=1111110when num=0000else 0110000when num=0001else 1101101when num=0010else 1111001when num=0011else 0110011when num=0100else 1011011when num=0101else 1011111when num=0110else 1110000when num=0111else 1111111when num=1000else 1111011when num=1001else 1110111when num=1010else 0011111when num=1011else 1001110when num=1100else 0111101when num=1101else 1001111when num=1110else 1000111when num=1111; END fun;編譯過(guò)程:仿真圖如下:5.仿真結(jié)果 下圖是最后仿真的結(jié)果,但是總是無(wú)法選中芯片,都是000,得不到正確的結(jié)果??赡艿脑蚴荈PGA的時(shí)鐘輸出為20MHZ,經(jīng)過(guò)分頻器得到1KHZ和1HZ的頻率需要多次的計(jì)數(shù),由于計(jì)數(shù)值太大無(wú)法得到正確的仿真結(jié)果。數(shù)字鐘仿真波形 6.結(jié)語(yǔ) 本次試驗(yàn)的數(shù)字時(shí)鐘能只夠顯示時(shí)間,其它功能如鬧鈴、調(diào)時(shí)、分、秒都能在此基礎(chǔ)上進(jìn)一步的實(shí)現(xiàn),由于時(shí)間有限只能調(diào)試到這里。 經(jīng)過(guò)努力,簡(jiǎn)易電子時(shí)鐘的設(shè)計(jì)基本上算是完成了,在整個(gè)設(shè)計(jì)中,我最大的體會(huì)就是:難!我們?cè)诒敬蔚恼n程設(shè)計(jì)中,發(fā)現(xiàn)了很多問(wèn)題,同時(shí)做起來(lái)也很難不順手,看著簡(jiǎn)單的電路,要?jiǎng)邮职阉O(shè)計(jì)出來(lái)實(shí)非易事,主要原因是我們沒(méi)有經(jīng)常動(dòng)手設(shè)計(jì)電路,這就要求我們?cè)谝院蟮膶W(xué)習(xí)中,應(yīng)該注意到這一點(diǎn),更重要的是我們要學(xué)會(huì)把從書(shū)本上學(xué)到的知識(shí)和實(shí)際電路聯(lián)系起來(lái),這不論對(duì)我們以后的學(xué)習(xí)還是就業(yè),都會(huì)起到很大的促進(jìn)和幫助,我相信,通過(guò)這次的課程設(shè)計(jì),在下一階段的學(xué)習(xí)中我們會(huì)更加努力,力爭(zhēng)把這門(mén)課學(xué)好學(xué)精。 同時(shí)通過(guò)本次課程設(shè)計(jì),鞏固了我們以前學(xué)過(guò)的專(zhuān)業(yè)知識(shí),通過(guò)這次的程序設(shè)計(jì),使我們對(duì)數(shù)字系統(tǒng)結(jié)構(gòu)也有了更進(jìn)一步的了解與認(rèn)識(shí),同時(shí)對(duì)數(shù)據(jù)庫(kù)軟件技術(shù),語(yǔ)言等系列知識(shí)都有了一定的了解與認(rèn)識(shí)。使用技術(shù)開(kāi)發(fā)頁(yè)面的能力也有了提高,也使我們把理論與實(shí)踐從正真意義上結(jié)合了起來(lái),考驗(yàn)了我們的動(dòng)手能力,查閱相關(guān)資料的能力,還有組織材料的能力。通過(guò)此次實(shí)踐,我們從中可以找出自己知識(shí)的不足與欠缺,以便我們?cè)谌蘸蟮膶W(xué)習(xí)中得以改進(jìn)與提高。 經(jīng)過(guò)本次設(shè)計(jì)使我們對(duì)所學(xué)習(xí)到的知識(shí)得以進(jìn)一步實(shí)踐,這將對(duì)我們走出校園走向社會(huì)走向工作崗位奠定堅(jiān)實(shí)的基礎(chǔ)。最后感謝老師對(duì)我們的指導(dǎo),以及同學(xué)們對(duì)我的幫助,使得實(shí)驗(yàn)?zāi)軌蝽樌瓿?!參考文獻(xiàn)1潘松,黃繼業(yè).VHDL設(shè)計(jì)初步 J.EDA技術(shù)實(shí)用教材,2009,5-29:70-82.2華成英,童詩(shī)白.集成運(yùn)算放大電路J.模擬電子基礎(chǔ),2006,5-4:185-187.3閻石.時(shí)序邏輯電路 M.北京:高等教育出版社,2008. 4李建東,郭梯云,鄔國(guó)揚(yáng).移動(dòng)通信.第四版.M.西安:西安電子科技大學(xué)出版社,2006. 5沈明山編著,EDA技術(shù)及可編程器件應(yīng)用實(shí)訓(xùn) 北京:科學(xué)出版社 6崔建明主編,電工電子EDA仿真技術(shù) 北京:高等教育出版社,2004- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 VHDL 數(shù)字 設(shè)計(jì)
鏈接地址:http://italysoccerbets.com/p-6704885.html