版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程設(shè)計(論文)任務(wù)書</p><p> 專業(yè)班級: 學(xué)生姓名: 指導(dǎo)教師(簽名): </p><p><b> 目 錄</b></p><p> 一、數(shù)字時鐘設(shè)計的背景2</p><p> 二、數(shù)字時鐘設(shè)計的目的2</p>&l
2、t;p> 三、數(shù)字時鐘的功能3</p><p> 四、數(shù)字時鐘的設(shè)計3</p><p><b> 1.設(shè)計思路3</b></p><p> 1.1數(shù)字時鐘控制器的輸入輸出總體框圖3</p><p> 1.2數(shù)字時鐘控制器的總體設(shè)計框圖3</p><p><b>
3、 2. 方案論證4</b></p><p> 2.1 數(shù)字鐘設(shè)計方案論證4</p><p> 3. 單元模塊設(shè)計部分4</p><p> 3.1 時鐘分頻模塊4</p><p> 3.2 時分秒計時控制電路模塊6</p><p> 3.3譯碼顯示模塊15</p><
4、;p> 4. 系統(tǒng)仿真16</p><p> 4.1數(shù)字鐘仿真圖16</p><p> 4.2 數(shù)字鐘原理圖17</p><p> 五、課程設(shè)計總結(jié)19</p><p> 一、數(shù)字時鐘設(shè)計的背景</p><p> 本學(xué)期我們完成了《EDA技術(shù)基礎(chǔ)》課程的學(xué)習(xí),相應(yīng)的已經(jīng)學(xué)習(xí)了有關(guān)的硬件語言:V
5、HDL語言,通過課程學(xué)習(xí)過程中理論與實踐的結(jié)合,已經(jīng)對應(yīng)用VHDL語言和EDA技術(shù)來設(shè)計電路有一些了解。</p><p> 二、數(shù)字時鐘設(shè)計的目的</p><p> 1.掌握多級計數(shù)器級聯(lián)的原理和其設(shè)計方法;</p><p> 2.掌握多個數(shù)碼管顯示的原理與方法;</p><p> 3.掌握用FPGA技術(shù)的層次化設(shè)計方法;</p
6、><p> 4.進(jìn)一步掌握用VHDL硬件描述語言的設(shè)計思想,熟練的用原理圖方式或VHDL語言設(shè)計各種進(jìn)制的數(shù)字計數(shù)器(6進(jìn)制、10進(jìn)制、12進(jìn)制);</p><p> 5.了解有關(guān)數(shù)字系統(tǒng)的設(shè)計。</p><p><b> 三、數(shù)字時鐘的功能</b></p><p> 1.能顯示1/10秒、秒、分、時,能以12H循環(huán)
7、計數(shù)。</p><p> 2.精度是0.1秒。</p><p> 3.具有系統(tǒng)清零、暫停系統(tǒng)并使系統(tǒng)重新工作的功能。</p><p> 4可以進(jìn)行調(diào)時調(diào)分調(diào)秒的功能擴(kuò)展。</p><p><b> 四、數(shù)字時鐘的設(shè)計</b></p><p><b> 1.設(shè)計思路</b&
8、gt;</p><p> 基于VHDL語言,用TOP_DOWN的思想進(jìn)行設(shè)計。</p><p> 1.1數(shù)字時鐘控制器的輸入輸出總體框圖</p><p><b> Clk 時鐘輸入</b></p><p> CLRN(清零端)七段數(shù)碼管的輸入</p><p><b> ?。ㄩ_始
9、/停止信號)</b></p><p> START/STOP</p><p> 1.2數(shù)字時鐘控制器的總體設(shè)計框圖</p><p><b> CLRN(清零端)</b></p><p><b> 置“1”</b></p><p> START/STOP&
10、lt;/p><p><b> CLK</b></p><p><b> 2. 方案論證</b></p><p> 2.1 數(shù)字鐘設(shè)計方案論證</p><p> 十進(jìn)制計數(shù)器、六進(jìn)制計數(shù)器、二進(jìn)制計數(shù)器以及由此級聯(lián)成的六十進(jìn)制計數(shù)器、十二進(jìn)制計數(shù)器構(gòu)成數(shù)字時鐘的計數(shù)部分;輸入25MHZ的時鐘經(jīng)分
11、頻器產(chǎn)生100HZ的時鐘進(jìn)入計數(shù)器電路;</p><p> 對于停止/開始的控制部分功能的實現(xiàn)有兩種方案:方案一 有普通門電路連接計數(shù)器的clrn、ldn和en,使其分別為“1”、“1”和“0”,則有各計數(shù)器真值表可知輸出Q值不變,從而實現(xiàn)該功能。方案二 輸入一個由T觸發(fā)器構(gòu)成的控制時鐘,來實現(xiàn)該功能。本設(shè)計采用的是方案二。</p><p> 3. 單元模塊設(shè)計部分</p&
12、gt;<p> 單元設(shè)計模塊分為三大部分:時鐘分頻模塊,時分秒計時控制電路模塊和譯碼顯示模塊。</p><p> 3.1 時鐘分頻模塊</p><p><b> 如圖3.1所示:</b></p><p><b> 圖 3.1</b></p><p><b> 程序如
13、下:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity div is</p><p> port(clr,clk: in bit;q: buffer bit);</p><p><b
14、> end div;</b></p><p> architecture a of div is</p><p> signal counter:integer range 0 to 12499;</p><p><b> begin</b></p><p> process(clr,clk)
15、</p><p><b> begin</b></p><p> if (clk='1' and clk'event) then </p><p> if clr='1' then</p><p> counter<=0;</p><p&
16、gt; elsif counter=12499 then</p><p> counter<=0;</p><p> q<= not q;</p><p><b> else</b></p><p> counter<=counter+1;</p><p><b&
17、gt; end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end a;</b></p><p><b> 其仿真波形如下:</b></p><
18、p> 3.2 時分秒計時控制電路模塊</p><p> 3.2.1時分秒計時控制電路模塊門控時鐘電路</p><p> 門控時鐘采用T觸發(fā)器來實現(xiàn),采用作為時鐘信號并將其輸入置1,當(dāng)每發(fā)生一次上沿跳變,其狀態(tài)就改變一次。與門另一輸入為分頻器的輸出Q。</p><p> 3.2.1.1 原理如圖 3.2.1.1 所示:</p><p&
19、gt;<b> 置“1”</b></p><p> START/STOP門控時鐘</p><p><b> Q</b></p><p><b> 圖 3.2.1.1</b></p><p> 3.2.1.2 門控電路T觸發(fā)器設(shè)計</p><p&g
20、t; 如圖3.2.1.2所示:</p><p><b> 圖 3.2.1.2</b></p><p><b> 程序如下:</b></p><p> library IEEE; </p><p> use IEEE.std_logic_1164.all; </p><p
21、> use IEEE.std_logic_unsigned.all; </p><p> entity tttt is </p><p><b> port ( </b></p><p> CLOCK : in std_logic ;--clock </p><p> RESET : in std_log
22、ic ;--reset </p><p> t_IN : in std_logic ;--data in </p><p> t_OUT : out std_logic --data out </p><p><b> ); </b></p><p> end tttt; </p><p>
23、; architecture a of tttt is </p><p> signal REG_t_OUT : std_logic ; -- internal signals </p><p><b> begin </b></p><p> process (CLOCK,RESET) begin </p><p&
24、gt; if (RESET = '1') then -- asynchronous reset </p><p> REG_t_OUT <= '0'; </p><p> elsif (CLOCK'event and CLOCK = '1') then </p><p> if t_IN =
25、9;1' then</p><p> REG_t_OUT<= not REG_t_OUT;</p><p><b> end if;</b></p><p><b> end if; </b></p><p> end process; </p><p>
26、; t_OUT <= REG_t_OUT ; </p><p><b> end a;</b></p><p><b> 其仿真波形如下:</b></p><p> 3.2.2 時分秒計時控制電路模塊十分之一秒計數(shù)電路</p><p> 如圖3.2.2所示:</p>&
27、lt;p><b> 圖3.2.2</b></p><p><b> 程序如下:</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.
28、all;</p><p> entity cout10v is</p><p><b> port(</b></p><p> clrn,ldn,en,clk :in std_logic;</p><p> da :in std_logic_vector(3 downto 0);</p><p
29、> qa :out std_logic_vector(3 downto 0);</p><p> rco :out std_logic</p><p><b> );</b></p><p> end cout10v ;</p><p> architecture a of cout10v is</
30、p><p><b> begin</b></p><p> process(clk)</p><p> variable tmpa :std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if cl
31、rn='0' then tmpa:="0000";</p><p> else if(clk'event and clk='1') then</p><p> if ldn='0' then tmpa:=da; </p><p> elsif en='1' then
32、</p><p> if tmpa="1001" then</p><p> tmpa:="0000";</p><p> elsif tmpa="1101" then</p><p> tmpa:="0000";</p><p>
33、;<b> else</b></p><p> tmpa:=tmpa+1;</p><p><b> end if; </b></p><p><b> end if;</b></p><p><b> end if;</b></p>
34、<p><b> end if;</b></p><p><b> qa<=tmpa;</b></p><p> rco<= tmpa(0) and tmpa(3) and en;</p><p> end process ;</p><p><b>
35、end a;</b></p><p><b> 其仿真波形如下:</b></p><p> 3.2.3 時分秒計時控制電路模塊秒計數(shù)電路</p><p><b> 如圖3.2.3示:</b></p><p><b> 如圖 3.2.3</b></p&g
36、t;<p><b> 其程序如下:</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cout60_v
37、 is</p><p><b> port(</b></p><p> clrn,ldn,en,clk :in std_logic;</p><p> da :in std_logic_vector(3 downto 0);</p><p> db :in std_logic_vector(2 downto 0)
38、;</p><p> qa :out std_logic_vector(3 downto 0);</p><p> qb :out std_logic_vector(2 downto 0);</p><p> rco :out std_logic</p><p><b> );</b></p>&l
39、t;p> end cout60_v;</p><p> architecture a of cout60_v is</p><p><b> begin</b></p><p> process(clk)</p><p> variable tmpa :std_logic_vector(3 downto
40、0);</p><p> variable tmpb:std_logic_vector(2 downto 0);</p><p><b> begin</b></p><p> if clrn='0' then tmpb:="000";tmpa:="0000";</p>
41、<p> else if(clk'event and clk='1') then</p><p> if ldn='0' then tmpa:=da;tmpb:=db; </p><p> elsif en='1' then</p><p> if tmpa="1001&qu
42、ot; then</p><p> tmpa:="0000";tmpb:=tmpb+1;</p><p> elsif (tmpb="101" and tmpb="1001") then </p><p> tmpa:="0000";tmpb:="000";&l
43、t;/p><p><b> else</b></p><p> tmpa:=tmpa+1;</p><p><b> end if; </b></p><p><b> end if;</b></p><p><b> end if;&l
44、t;/b></p><p><b> end if;</b></p><p> qa<=tmpa;qb<=tmpb;</p><p> rco<=tmpb(0) and tmpb(2) and tmpa(0) and tmpa(3) and en;</p><p> end process
45、 ;</p><p><b> end a;</b></p><p><b> 其仿真波形如下:</b></p><p> 3.2.4 時分秒計時控制電路模塊分計數(shù)電路</p><p> 如圖3.2.4所示:</p><p><b> 如圖 3.2.4&l
46、t;/b></p><p><b> 其程序如下:</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
47、 entity cout60_v is</p><p><b> port(</b></p><p> clrn,ldn,en,clk :in std_logic;</p><p> da :in std_logic_vector(3 downto 0);</p><p> db :in std_logic_ve
48、ctor(2 downto 0);</p><p> qa :out std_logic_vector(3 downto 0);</p><p> qb :out std_logic_vector(2 downto 0);</p><p> rco :out std_logic</p><p><b> );</b&g
49、t;</p><p> end cout60_v;</p><p> architecture a of cout60_v is</p><p><b> begin</b></p><p> process(clk)</p><p> variable tmpa :std_logic_
50、vector(3 downto 0);</p><p> variable tmpb:std_logic_vector(2 downto 0);</p><p><b> begin</b></p><p> if clrn='0' then tmpb:="000";tmpa:="0000&
51、quot;;</p><p> else if(clk'event and clk='1') then</p><p> if ldn='0' then tmpa:=da;tmpb:=db; </p><p> elsif en='1' then</p><p> if tm
52、pa="1001" then</p><p> tmpa:="0000";tmpb:=tmpb+1;</p><p> elsif (tmpb="101" and tmpb="1001") then </p><p> tmpa:="0000";tmpb:=&q
53、uot;000";</p><p><b> else</b></p><p> tmpa:=tmpa+1;</p><p><b> end if; </b></p><p><b> end if;</b></p><p><
54、b> end if;</b></p><p><b> end if;</b></p><p> qa<=tmpa;qb<=tmpb;</p><p> rco<=tmpb(0) and tmpb(2) and tmpa(0) and tmpa(3) and en;</p><p&
55、gt; end process ;</p><p><b> end a;</b></p><p><b> 其仿真波形如下:</b></p><p> 3.2.5 時分秒計時控制電路模塊時計數(shù)電路</p><p> 如圖3.2.5所示:</p><p> 圖 3
56、.2.5 </p><p><b> 其程序如下:</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
57、 entity cout12_v is</p><p><b> port(</b></p><p> clrn,ldn,en,clk :in std_logic;</p><p> da :in integer range 0 to 9;</p><p> db :in integer range 0 to 1
58、;</p><p> qa :out integer range 0 to 9;</p><p> qb :out integer range 0 to 1</p><p><b> );</b></p><p> end cout12_v;</p><p> architecture
59、a of cout12_v is</p><p><b> begin</b></p><p> process(clk)</p><p> variable tmpa :integer range 0 to 9;</p><p> variable tmpb:integer range 0 to 1;</
60、p><p><b> begin</b></p><p> if clrn='0' then tmpb:=0;tmpa:=0;</p><p> else if(clk'event and clk='1') then</p><p> if ldn='0' t
61、hen tmpa:=da;tmpb:=db; </p><p> elsif en='1' then</p><p> if tmpa=9 then</p><p> tmpa:=9;tmpb:=tmpb+1;</p><p> elsif tmpb=1 and tmpb=1 then</p><
62、;p> tmpb:=0;tmpa:=0;</p><p> else tmpa:=tmpa+1; </p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p&
63、gt;<p><b> end if;</b></p><p> qa<=tmpa;qb<=tmpb;</p><p> end process ;</p><p><b> end a;</b></p><p><b> 其仿真波形如下:</b&
64、gt;</p><p><b> 3.3譯碼顯示模塊</b></p><p><b> 如圖3.3</b></p><p><b> 圖 3.3</b></p><p><b> 其程序如下:</b></p><p> l
65、ibrary ieee;</p><p> use ieee.std_logic_1164.all;</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
66、 0));</p><p><b> end;</b></p><p> architecture one of disp is</p><p><b> begin</b></p><p> process(d)</p><p><b> begin&l
67、t;/b></p><p><b> case d is</b></p><p> when "0000"=>q<="0111111";</p><p> when "0001"=>q<="0000110";</p>
68、<p> when "0010"=>q<="1011011";</p><p> when "0011"=>q<="1001111";</p><p> when "0100"=>q<="1100110";</p
69、><p> when "0101"=>q<="1101101";</p><p> when"0110"=>q<="1111101";</p><p> when "0111"=>q<="0100111";&l
70、t;/p><p> when"1000"=>q<="1111111";</p><p> when"1001"=>q<="1101111";</p><p> when others=>q<="0000000";</p>
71、;<p><b> end case;</b></p><p> end process;</p><p><b> end one;</b></p><p><b> 其仿真波形如下:</b></p><p><b> 4. 系統(tǒng)仿真<
72、/b></p><p><b> 4.1數(shù)字鐘仿真圖</b></p><p> 4.2 數(shù)字鐘原理圖</p><p><b> 如圖4.2所示:</b></p><p><b> 五、課程設(shè)計總結(jié)</b></p><p> 通過對數(shù)字時鐘
73、的設(shè)計,我對VHDL語言有了更深層次的了解。多級計數(shù)器級聯(lián)的原理和其設(shè)計方法基本掌握了多級計數(shù)器級聯(lián)的原理和其設(shè)計方法;并對FPGA技術(shù)的層次化設(shè)計方法有了初步的掌握;加深了用VHDL硬件描述語言的設(shè)計思想和有關(guān)數(shù)字系統(tǒng)的設(shè)計的理解,能夠用原理圖方式或VHDL語言設(shè)計各種進(jìn)制的數(shù)字計數(shù)器(6進(jìn)制、10進(jìn)制、12進(jìn)制)。</p><p><b> 參考文獻(xiàn):</b></p>&
74、lt;p> 王文虎 李賽斯 伍宗福 蔣冬初 田學(xué)軍 黎福海 方 寧 編著《EDA技術(shù)基礎(chǔ)》,湖南大學(xué)出版社.2008</p><p> 廖裕評 陸瑞強(qiáng) 編著《CPLDA 數(shù)字電路設(shè)計——使用MAX+plus2入門篇》,清華大學(xué)出版社.2003</p><p> 羅中華 楊戈 吳振庚 編著《EDA與可編程實驗教程》,重慶大學(xué)出版社.2007</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda數(shù)字時鐘課程設(shè)計
- eda課程設(shè)計--數(shù)字時鐘的設(shè)計
- eda課程設(shè)計——數(shù)字時鐘設(shè)計
- eda課程設(shè)計---數(shù)字時鐘(鬧鐘)
- eda_課程設(shè)計報告--數(shù)字時鐘設(shè)計
- eda課程設(shè)計---多功能數(shù)字時鐘報告
- eda課程設(shè)計---關(guān)于多功能數(shù)字時鐘的設(shè)計
- eda課程設(shè)計——基于vhdl語言的數(shù)字時鐘設(shè)計
- eda課程設(shè)計報告(多功能數(shù)字時鐘的設(shè)計)
- eda課程設(shè)計報告---數(shù)字時鐘倒計時
- eda課程設(shè)計---電子時鐘
- eda課程設(shè)計--電子時鐘
- eda課程設(shè)計-- eda與數(shù)字系統(tǒng)課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- 課程設(shè)計--數(shù)字時鐘
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
評論
0/150
提交評論