版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 題 目: 數(shù)字鐘的設(shè)計與制作</p><p><b> 目錄</b></p><p> 1.設(shè)計思路…………………………………………………………………………………… 3</p><p> 1.1總體結(jié)構(gòu)………………………………………………………………………………... 3</p>&l
2、t;p> 2.方案論證與選擇…………………………………………………………………………… 3</p><p> 2.1.數(shù)字鐘方案論證與選擇………………………………………………………………... 3</p><p> 3.單元模塊設(shè)計部分………………………………………………………………………… 3</p><p> 3.1.CN6模塊的設(shè)計…………
3、…………………………………………………………….. 3</p><p> 3.2.SEL61模塊的設(shè)計…………………………………………………………………….. 4</p><p> 3.3.DISP模塊的設(shè)計……………………………………………………………………… 5</p><p> 3.4.K4模塊的設(shè)計………………………………………………………………
4、………… 6</p><p> 3.4.1.CNT10模塊的設(shè)計………………………………………………………………. 6</p><p> 3.4.2.CNT6模塊的設(shè)計……………………………………………………………….. 7</p><p> 3.4.3.CNT101模塊的設(shè)計……………………………………………………………… 8</p>
5、<p> 3.4.4.CNT61模塊的設(shè)計……………………………………………………………….. 9</p><p> 3.4.5 CNT23模塊的設(shè)計……………………………………………………………….. 10</p><p> 4.系統(tǒng)仿真…………………………………………………………………………………… 11</p><p> 4.1.數(shù)
6、字鐘仿真圖……………………………………………………………………………. 11</p><p> 4.2.數(shù)字鐘編譯報告………………………………………………………………………... 12</p><p> 4.3.數(shù)字鐘原理圖…………………………………………………………………………… 12</p><p><b> EDA數(shù)字鐘設(shè)計</
7、b></p><p> 中文摘要:數(shù)字鐘學習的目的是掌握各類計數(shù)器及它們相連的設(shè)計方法;掌握多個數(shù)碼管顯示的原理與方法;掌握FPGA技術(shù)的層次化設(shè)計方法;掌握用VHDL語言的設(shè)計思想以及整個數(shù)字系統(tǒng)的設(shè)計。此數(shù)字鐘具有時,分,秒計數(shù)顯示功能,以24小時為計數(shù)循環(huán);能實現(xiàn)清零,調(diào)節(jié)小時,分鐘以及整點報時的功能。</p><p> 關(guān)鍵詞:數(shù)字鐘,計數(shù)器,數(shù)碼管,F(xiàn)PGA,VHDL&
8、lt;/p><p><b> 設(shè)計思路</b></p><p> 基于VHDL語言,用Top_Down的思想進行設(shè)計。</p><p> 1.1 確定總體結(jié)構(gòu),如圖1-1所示。</p><p><b> 圖1-1</b></p><p> 2. 方案論證與選擇</
9、p><p> 2.1 數(shù)字鐘方案論證與選擇:方案一是用CN6無進位六進制計數(shù)器選擇數(shù)碼管的亮滅以及對應(yīng)的數(shù),循環(huán)掃描顯示,用SEL61六選一選擇器選擇給定的信號輸出對應(yīng)的數(shù)送到七段碼譯碼器。K4模塊進行復位,設(shè)置小時和分,輸出整點報時信號和時,分,秒信號。作品中選方案二。方案二也采用自頂向下的設(shè)計方法,它由秒計數(shù)模塊,分計數(shù)模塊,小時計數(shù)模塊,報警模塊,秒分時設(shè)置模塊和譯碼模塊六部分組成。兩者設(shè)計方式,功能實現(xiàn)方面
10、都差不多,作品中選擇的是方案一。</p><p> 3. 單元模塊設(shè)計部分</p><p> 單元模塊設(shè)計部分分四個部分,介紹數(shù)字鐘選擇顯示數(shù)碼管和對應(yīng)的數(shù)模塊CN6,信號選擇模塊SEL61,七段碼譯碼器模塊DISP和復位,秒,分,時顯示,設(shè)置模塊。</p><p> 3.1 CN6模塊的設(shè)計</p><p> 即無進位的六進制計數(shù)器
11、,由此提供選擇信號,可提供選擇信號,選擇顯示的數(shù)碼管及對應(yīng)的數(shù),循環(huán)掃描顯示。如圖1-2</p><p><b> 圖1-2</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_u
12、nsigned.all;</p><p> entity cn6 is</p><p> port(res,clk : in std_logic;</p><p> cout : out std_logic_vector(2 downto 0));</p><p><b> end cn6;</b></p&
13、gt;<p> architecture rtl of cn6 is</p><p> signal q : std_logic_vector(2 downto 0);</p><p><b> begin</b></p><p> process(res,clk)</p><p><b>
14、; begin</b></p><p> if res='0' then</p><p><b> q<="000";</b></p><p> elsif(clk'event and clk='1') then</p><p> i
15、f(q=5) then</p><p><b> q<="000";</b></p><p><b> else</b></p><p><b> q<=q+1;</b></p><p><b> end if;</b&g
16、t;</p><p><b> end if;</b></p><p> end process;</p><p><b> cout<=q;</b></p><p><b> end rtl;</b></p><p> 3.2 SEL6
17、1模塊的設(shè)計</p><p> 即六選一選擇器,如圖1-3所示,對于給定的信號,輸出對應(yīng)的數(shù),送到七段碼譯碼器。</p><p><b> 圖1-3</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p&
18、gt; entity sel61 is</p><p> port(sel : in std_logic_vector(2 downto 0);</p><p> a,b,c,d,e,f : in std_logic_vector(3 downto 0);</p><p> q : out std_logic_vector(3 downto 0));<
19、/p><p><b> end;</b></p><p> architecture rtl of sel61 is</p><p><b> begin</b></p><p> process(a,b,c,d,e,f,sel)</p><p> variable c
20、out : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> case sel is</p><p> when "000"=>cout:=a;</p><p> when "001"=>
21、cout:=b;</p><p> when "010"=>cout:=c;</p><p> when "011"=>cout:=d;</p><p> when "100"=>cout:=e;</p><p> when others=>cout:
22、=f;</p><p><b> end case;</b></p><p><b> q <=cout;</b></p><p> end process;</p><p><b> end rtl;</b></p><p> 3.3
23、DISP模塊的設(shè)計</p><p> 即七段譯碼器,如圖1-4所示,對于輸入的4位BCD碼進行譯碼,輸出7位,Q0~Q6分別外接數(shù)碼管a~g段顯示。</p><p><b> 圖1-4</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;
24、</p><p> entity disp is</p><p> port(d : in std_logic_vector(3 downto 0);</p><p> q : out std_logic_vector(6 downto 0));</p><p><b> end;</b></p>
25、<p> architecture one of disp is</p><p><b> begin</b></p><p> process(d)</p><p><b> begin</b></p><p><b> case d is</b><
26、/p><p> when "0000"=>q<="0111111";</p><p> when "0001"=>q<="0000110";</p><p> when "0010"=>q<="1011011"
27、;</p><p> when "0011"=>q<="1001111";</p><p> when "0100"=>q<="1100110";</p><p> when "0101"=>q<="1101101&
28、quot;;</p><p> when"0110"=>q<="1111101";</p><p> when "0111"=>q<="0100111";</p><p> when"1000"=>q<="11111
29、11";</p><p> when"1001"=>q<="1101111";</p><p> when others=>q<="0000000";</p><p><b> end case;</b></p><p>
30、 end process;</p><p><b> end one;</b></p><p> 3.4 K4模塊的設(shè)計</p><p><b> 圖1-5</b></p><p> 如圖1-5,RES是整個系統(tǒng)的復位鍵,低電平有效,復位時,各個輸出都為零,時間顯示0時0分0秒;clk是輸
31、入時鐘,提供秒信號,上升沿觸發(fā),每出發(fā)一次,時間增加一秒;HRTMP,MIN10TMP,MINTMPKEYI可以分別設(shè)置小時位,10分位,分位,起到調(diào)時的作用,高電平有效,有效時,每來一個CLK時鐘(1s),所對應(yīng)的位都將以各自的計數(shù)循環(huán);</p><p> RING是整點報時;SEC,SEC10,MIN,MIN10,HR,HR10都輸出四位BCD碼,用于計數(shù)。</p><p> 3.
32、4.1 CNT10模塊設(shè)計</p><p> 10進制計數(shù)器。CLK為秒信號;RES是復位信號,與CLK同步;EN為選通信號;COUT3..0]輸出秒個位;CA是進位信號。如圖1-6所示。</p><p><b> 圖1-6</b></p><p> library ieee;</p><p> use ieee
33、.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt10 is</p><p> port(en,res,clk: in std_logic;</p><p> ca : out std_logic;</p>
34、<p> cout : out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture rtl of cnt10 is</p><p> signal q : std_logic_vector(3 downto 0);</p&g
35、t;<p><b> begin</b></p><p> p1 : process(en,clk,res)</p><p><b> begin</b></p><p> if(clk'event and clk='1') then</p><p>
36、 if(res='0') then</p><p> q<="0000";</p><p> elsif(en='1') then</p><p> if(q=9) then</p><p> q<="0000";</p><p&g
37、t;<b> else</b></p><p><b> q<=q+1;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;<
38、/b></p><p> end process p1;</p><p> p2 : process(q)</p><p><b> begin</b></p><p> if(q=9) then</p><p><b> ca<=en;</b><
39、/p><p><b> else</b></p><p><b> ca<='0';</b></p><p><b> end if;</b></p><p> end process p2;</p><p><b>
40、 cout<=q;</b></p><p><b> end rtl;</b></p><p> 3.4.2 CNT6模塊設(shè)計</p><p> 即進制計數(shù)器,CLK為秒信號;RES為復位信號,與CLK同步;EN為選通信號;COUT[3..0]輸出秒的十位;CA是進位信號。如圖1-7所示。</p><
41、;p><b> 圖1-7</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt6 is</p>
42、<p> port(en,res,clk: in std_logic;</p><p> ca : out std_logic;</p><p> cout : out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> ar
43、chitecture rtl of cnt6 is</p><p> signal q : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> p1 : process(en,clk,res)</p><p><b> begin&
44、lt;/b></p><p> if(clk'event and clk='1') then</p><p> if(res='0') then</p><p> q<="0000";</p><p> elsif(en='1') then<
45、/p><p> if(q=5) then</p><p> q<="0000";</p><p><b> else</b></p><p><b> q<=q+1;</b></p><p><b> end if;</b
46、></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p1;</p><p> p2 : process(q)</p><p><b> begin</
47、b></p><p> if(q=5) then</p><p><b> ca<=en;</b></p><p><b> else</b></p><p><b> ca<='0';</b></p><p>
48、<b> end if;</b></p><p> end process p2;</p><p><b> cout<=q;</b></p><p><b> end rtl;</b></p><p> 3.4.3 CNT101模塊設(shè)計</p>
49、<p> 即十進制計數(shù)器,輸出分的個位。EN接CNT6的進位CA,產(chǎn)生正常的時鐘;EN2由外部斷口控制,可用來調(diào)節(jié)時間,高電平有效,輸出將以秒的速度遞增循環(huán)。如圖1-8 所示。</p><p><b> 圖1-8</b></p><p> library ieee;</p><p> use ieee.std_logic_11
50、64.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cnt101 is --output minitute's gewei</p><p> port(en2,en,res,clk : in std_logic;</p><p> c
51、a : out std_logic; --jingwei</p><p> cout : out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture rtl of cnt101 is</p><p>
52、signal q : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> p1 : process(en,en2,clk,res)</p><p><b> begin</b></p><p> if(clk'e
53、vent and clk='1') then</p><p> if(res='0') then</p><p> q<="0000";</p><p> elsif(en='1'or en2='1') then</p><p> if(q=9)
54、 then</p><p> q<="0000";</p><p><b> else</b></p><p><b> q<=q+1;</b></p><p><b> end if;</b></p><p>&
55、lt;b> end if;</b></p><p><b> end if;</b></p><p> end process p1;</p><p> p2 : process(q)</p><p><b> begin</b></p><p>
56、 if(q=9) then</p><p><b> ca<=en;</b></p><p><b> else</b></p><p><b> ca<='0';</b></p><p><b> end if;</b&g
57、t;</p><p> end process p2;</p><p><b> cout<=q;</b></p><p><b> end rtl;</b></p><p> 3.4.4 CNT61模塊的設(shè)計</p><p> 六進制計數(shù)器,輸出分的各位。E
58、N接CNT101的進位CA,產(chǎn)生正常的時鐘;EN2由外部端口控制,可用來調(diào)節(jié)時間,高電平有效,輸出分的十位將以秒的速度遞增循環(huán)。如圖1-9所示。</p><p><b> 圖1-9</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><
59、;p> use ieee.std_logic_unsigned.all;</p><p> entity cnt61 is --output minitute's shiwei</p><p> port(en2,en,res,clk : in std_logic;</p><p> ca : out std_logic;
60、 --jingwei</p><p> cout : out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture rtl of cnt61 is</p><p> signal q : std_logic_ve
61、ctor(3 downto 0);</p><p><b> begin</b></p><p> p1 : process(en,en2,clk,res)</p><p><b> begin</b></p><p> if(clk'event and clk='1'
62、;) then</p><p> if(res='0') then</p><p> q<="0000";</p><p> elsif(en='1'or en2='1') then</p><p> if(q=5) then</p><p&
63、gt; q<="0000";</p><p><b> else</b></p><p><b> q<=q+1;</b></p><p><b> end if;</b></p><p><b> end if;</b
64、></p><p><b> end if;</b></p><p> end process p1;</p><p> p2 : process(q)</p><p><b> begin</b></p><p> if(q=5) then</p>
65、;<p><b> ca<=en;</b></p><p><b> else</b></p><p><b> ca<='0';</b></p><p><b> end if;</b></p><p>
66、 end process p2;</p><p><b> cout<=q;</b></p><p><b> end rtl;</b></p><p> 3.4.5 CNT23模塊設(shè)計</p><p> 24進制計數(shù)器,輸出時個位和時十位,由兩個選通信號EN和EN2控制,EN2用來
67、調(diào)時。如圖1-10所示。</p><p><b> 圖1-10</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p&g
68、t; entity cnt23 is </p><p> port(en2,en,res,clk : in std_logic;</p><p> a,b : out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> arc
69、hitecture rtl of cnt23 is</p><p> signal aout,bout : std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> p1 : process(en,en2,clk,res)</p><p><b
70、> begin</b></p><p> if(res='0') then</p><p> aout<="0000";</p><p> bout<="0000";</p><p> elsif(clk'event and clk=
71、9;1') then</p><p> if(en='1' or en2='1') then</p><p> if bout>1 then</p><p> if aout>2 then</p><p> aout<="0000" ;</p>
72、<p> bout<="0000";</p><p><b> else</b></p><p> aout<=aout+1;</p><p><b> end if;</b></p><p> elsif(aout=9) then</p
73、><p> aout<="0000";</p><p> bout<=bout+1;</p><p><b> else</b></p><p> aout<=aout+1;</p><p><b> end if;</b><
74、/p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p1 ;</p><p><b> end rtl;</b></p><p><b> 4.系統(tǒng)仿
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- EDA課程設(shè)計--數(shù)字鐘的設(shè)計與制作.doc
- eda數(shù)字鐘課程設(shè)計
- 數(shù)字鐘--eda課程設(shè)計
- eda數(shù)字鐘課程設(shè)計
- eda課程設(shè)計--帶有整點報時的數(shù)字鐘設(shè)計與制作
- eda課程設(shè)計報告---數(shù)字鐘設(shè)計
- 數(shù)字鐘eda課程設(shè)計報告
- eda課程設(shè)計報告--數(shù)字鐘
- 數(shù)字鐘課程設(shè)計---多功能數(shù)字鐘的設(shè)計與制作
- 課程設(shè)計---數(shù)字鐘的設(shè)計與制作
- eda課程設(shè)計——多功能數(shù)字鐘
- eda課程設(shè)計---基于fpga的數(shù)字鐘設(shè)計
- 課程設(shè)計---數(shù)字鐘的設(shè)計與制作 (2)
- eda數(shù)字鐘課程設(shè)計--用vhdl語言實現(xiàn)數(shù)字鐘的設(shè)計
- eda課程數(shù)字鐘設(shè)計報告
- eda實現(xiàn)多功能數(shù)字鐘課程設(shè)計
- 數(shù)電課程設(shè)計--數(shù)字鐘的設(shè)計與制作
- 數(shù)電課程設(shè)計--數(shù)字鐘的設(shè)計與制作
- eda課程設(shè)計報告--基于vhdl的數(shù)字鐘的設(shè)計
- 課程設(shè)計----多功能數(shù)字鐘的設(shè)計仿真與制作
評論
0/150
提交評論