




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、安徽工業經濟職業技術學院畢業論文(設計)題 目: 基于VHDL的數字鐘設計 系 別:電子信息技術系專 業:電子信息工程技術學 號:201254427學生姓名:王翀指導教師:王俊職 稱:二一四年 五月 月 十三 日【摘要】 20世紀90年代,國際上電子和計算機技術較為先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。 EDA技術在電子系統設計領域越來越普及,本設計主要利用VHDL語言在EDA平臺上設計一個電子數字鐘
2、, 【關鍵詞】數字鐘 EDA VHDL語言 目錄摘要:. 1 關鍵詞:. 1 緒論.31.設計目的 . 4 2.設計內容 .4 3.設計原理 .43.1數字鐘的基本工作原理.43.2數字鐘設計的電路原理圖.6.4.單元模塊的設計.64.1秒計數器的模塊.64.2分計數器的模塊.84.3時計數器的模塊.104.4整點報時器模塊.124.5調時調分模塊.134.6 LED顯示譯碼器模塊.15 5.仿真結果.17.結語. 17參考文獻 . 18 緒論 是電子設計自動化(lcctronic Design Automation)的縮寫,是90年代初從CAD(計算機輔助設備),CAM(計算機輔助制造),C
3、AT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術是以計算機為工具,根據硬件描述語言HDL完成的設計文件,自動的完成邏輯編譯,化簡,分割,綜合及優化,布局布線,仿真以及對特定目標芯片的適配編譯和編程下載等工作,這種將設計實體內外部分的概念是VHDL系統設計的基本點。應用VHDL進行工程設計的優點是多方面的。其優點是:與其它硬件描述語言相比,VHDL具有更強的行為描述能力,從而解決了他成為系統設計領域最佳的硬件描述語言,強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規模電子系統的重要保證;VHDL豐富的仿真語句和庫函數,使得在任何大系統的設計早期就能查
4、驗設計系統的功能和可行性,及時可對設計進行。它的計時周期為24小時,顯示滿刻度為24時59分59秒,另外還具有校時功能和鬧鐘功能。總的程序由幾個各具不同功能的單元模塊程序拼接而成,其中包括分頻程序模塊、時分秒計數和設置程序模塊、比較器程序模塊、三輸入數據選擇器程序模塊、譯碼顯示程序模塊和拼接程序模塊。并且使用QUARTUS II軟件進行電路波形仿真,下載到EDA實驗箱進行驗證。 1.設計目的 1)熟練地運用數字系統的設計方法進行數字系統設計; 2)能進行較復雜的數字系統設計; 3)按要求設計一個數字鐘。 2.設計內容 1)要求顯示秒、分、時,顯示格式如下: 圖顯示格式2)可清零、可調時,具有整
5、點報時功能。3.設計原理 3.1數字鐘的基本工作原理: 數字鐘以其顯示時間的直觀性、走時準確性作為一種計時工具,數字鐘的基本組成部分離不開計數器, 在控制邏輯電路的控制下完成預定的各項功能。數字鐘的基本原理方框圖: 數字鐘實現原理框圖1)時鐘計數:完成時、分、秒的正確計時并且顯示所計的數字;對秒、分 60進制計數,即從0到59循環計數,時鐘24進制計數,即從0到23循環計數,并且在數碼管上顯示數值。 2)時間設置:手動調節分鐘、小時,可以對所設計的時鐘任意調時間,這樣使數字鐘真正具有使用功能。我們可以通過實驗板上的鍵7和鍵4進行任意的調整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一
6、次就來一個脈沖,即計數一次。 3)清零功能:reset為復位鍵,低電平時實現清零功能,高電平時正常計數。可以根據我們自己任意時間的復位。 4)蜂鳴器在整點時有報時信號產生,蜂鳴器報警。產生“滴答.滴答”的報警聲音。 5)LED燈在時鐘顯示時有花樣顯示信號產生。即根據進位情況,LED不停的閃爍,從而產生“花樣”信號。 根據總體方框圖及各部分分配的功能可知,本系統可以由秒計數器、分鐘計數器、小時計數器、整點報時、分的調整以及小時的調整和一個頂層文件構成。采用自頂向下的設計方法,子模塊利用VHDL語言設計,頂層文件用原理圖的設計方法。顯示:小時采用數字時鐘 控制單元 時調整 分調整 使能端信號 CL
7、K信號 時顯示 分顯示 秒顯示 24進制 60進制 60進制 LED顯示 整點報時 花樣顯示 24進制,而分鐘均是采用6進制和10進制的組合。3.2數字鐘設計的電路原理圖 24進制數字鐘的電路圖4.單元模塊的設計4.1.秒計數器模塊 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 dow
8、nto 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秒時的進位信號 BEGIN daout<=count; -enmin_2由clk調制后的手動調分脈沖信號串 enmin_2<=(setmin and clk); -setmin為手動調分控制信號,高電平有效 enmin<=(enmin_1 or enmin_2); -enmin為向分進位信號
9、 process(clk,reset,setmin) begin if(reset='0') then count<="0000000" -若reset為0,則異步清零 elsif(clk'event and clk='1')then -否則,若clk上升沿到 if(count(3 downto 0)="1001")then -若個位計時恰好到“1001”即9 if(count<16#60#)then -又若count小于16#60#,即60H if(count="1011001")
10、then -又若已到59D enmin_1<='1'count<="0000000" -則置進位為1及count復0 else count<=count+7; -未到59D,則加7,而+7=+1+6,則作“加6校正” end if; else -若count不小于16#60#(即count等于或大于16#60#) count<="0000000" -count復0 end if; -end if(count<16#60#) elsif(count<16#60#)then -若個位計數未到“1001”則轉
11、此句再判 count<=count+1; -若count<16#60#則count加1 enmin_1<='0' after 100 ns; -則沒有發生進位 else end if; end if; end process; end fun 編譯過程:仿真圖如下:4.2分計數器模塊 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; enho
12、ur: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,setho
13、ur) begin if(reset='0')then count<="0000000" -若reset=0,則異步清零 elsif(clk'event and clk='1')then -否則,若clk上升沿到 if(count(3 downto 0)="1001")then -若個位計時恰好到“1001”即9 if(count<16#60#)then -又若count小于16#60#,即60if(count="1011001")then -又若已到59D enhour_1<
14、='1' -則置進位為1count<="0000000" -count復0 ELSE count<=count+7; -若count未到59D,則加7,即作“加6校正” end if; -使前面的16#60#的個位轉變為8421BCD的容量 else count<="0000000" -count復0(有此句,則對無效狀態電路可自啟動) end if; elsif(count<16#60#)then count<=count+1; -若count<16#60#則count加1 enhour_1<=
15、'0'after 100 ns; -沒有發生進位 else count<="0000000" -否則,若count不小于16#60#count復0 end if; end if; end process; END fun; 編譯過程:仿真圖如下:4.3.時計數器模塊 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_vect
16、or(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(clk'event and clk='1')then -否則,若clk上升沿到 if (count(3 downto
17、0)="1001")then -若個位計時恰好到1001即9 if(count<=16#23#)then -23進制 count<=count+7; -若到23D則 else count<="000000" -復0 end if; elsif(count<16#23#)then -若未到23D,則count進1 count<=count+1; else -否則清零 count<="000000" end if; end if; end process; END fun; 編譯過程:仿真圖如下:4.4
18、.整點報時器模塊 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 dow
19、nto 0); signal 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為三進制加法計數器 else count1<=count1+1; end if; end if;
20、 end if; end process speaker; lamper:process(clk) begin if(rising_edge(clk)then if(coun<="10")then if(coun="00")then lamp<="001" -循環點亮三只燈 elsif(coun="01")then lamp<="010" elsif(coun="10")then lamp<="100" end if; coun&l
21、t;=coun+1; else coun<="00" end if; end if; end process lamper; END fun; 編譯過程:仿真圖如下:4.5調時調分模塊 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)
22、; 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 coun
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'
24、daout(2 downto 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'
25、 when others=>daout(3 downto 2)<="00" daout(1 downto 0)<=hour(5 downto 4);dp<='0' end case; end process; end fun; 編譯過程:仿真圖如下: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
26、0); led:OUT 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 "01
27、10011"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&
28、quot;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;編譯過程:仿真圖如下:5.仿真結果 下圖是最后仿真的結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑行業安全生產合同
- 合同制員工福利待遇調整趨勢
- 代理區域銷售合同書
- 【課件】串聯電路與并聯電路+課件-高二上學期物理人教版(2019)必修第三冊
- 2025年度IT服務外包合同范本
- 云南省元馬中學重點中學2025年初三下學期第一次質量抽測數學試題含解析
- 供水供電合同
- 天津天獅學院《機械制圖上》2023-2024學年第二學期期末試卷
- 蘇州科技大學天平學院《幼兒歌曲彈唱》2023-2024學年第一學期期末試卷
- 浙江海洋大學《半導體制造與工藝》2023-2024學年第二學期期末試卷
- GB/T 3045-2024普通磨料碳化硅化學分析方法
- 人格障礙患者的護理
- 人工智能大模型
- 2022年全國統一高考數學試卷(新高考ⅰ)
- 1輸變電工程施工質量驗收統一表式(線路工程)-2024年版
- 2024年全國鄉村振興職業技能大賽“育嬰”賽項考試題庫(決賽用)
- 《內在強大:應變萬難的力量》記錄
- TSHJX 067-2024 基于TACS的全自動運行線路綜合聯調技術規范
- 2024至2030年中國擦窗機器人產業競爭現狀及投資決策建議報告
- 益母草顆粒的保肝作用機制
- 中國經濟史教學課件第八章近代農業經濟的發展
評論
0/150
提交評論