

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)學(xué)院</b></p><p> 數(shù)字邏輯課程設(shè)計(jì)報(bào)告</p><p><b> 數(shù)字鐘的設(shè)計(jì)</b></p><p> 班級(jí): </p><p> 學(xué)號(hào): </p&g
2、t;<p> 姓名: </p><p> 同組者: </p><p> 日期: 2010.7.2 </p><p><b> 1 題目與要求</b></p><p><b> 1.1 問(wèn)題
3、的提出</b></p><p> 設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,具有以下功能:</p><p> 1、秒、分為00~59六十進(jìn)制計(jì)數(shù)器。</p><p> 2、時(shí)為00~23二十四進(jìn)制計(jì)數(shù)器。</p><p><b> 3、整點(diǎn)報(bào)時(shí)。</b></p><p><b> 4、數(shù)碼
4、管顯示。</b></p><p><b> 5、校時(shí)功能。</b></p><p><b> 1.2 設(shè)計(jì)原理</b></p><p> 數(shù)字鐘的主體是計(jì)數(shù)器,它記錄并顯示接收到的秒脈沖個(gè)數(shù),其中秒和分為模60計(jì)數(shù)器,小時(shí)是模24計(jì)數(shù)器,分別產(chǎn)生3位BCD碼。BCD碼經(jīng)譯碼,驅(qū)動(dòng)后接數(shù)碼管顯示電路。&l
5、t;/p><p> 秒模60計(jì)數(shù)器的進(jìn)位作為分模60計(jì)數(shù)器的時(shí)鐘,分模60計(jì)數(shù)器的進(jìn)位作為模24計(jì)數(shù)器的時(shí)鐘。</p><p> 為了實(shí)現(xiàn)手動(dòng)調(diào)整時(shí)間,在外部增加了switch,add,clk和set按鍵,在switch值為1時(shí),正常計(jì)數(shù);switch值為0時(shí)校對(duì)時(shí)間,此時(shí)set為10時(shí)校對(duì)分,set為11時(shí)校對(duì)時(shí),校對(duì)動(dòng)作是通過(guò)clk來(lái)實(shí)現(xiàn)的,clk按下一次對(duì)應(yīng)的數(shù)值加1;同時(shí)還在外部增
6、加了一個(gè)清零按鍵clear,當(dāng)clear為1時(shí)執(zhí)行清零操作。數(shù)字鐘顯示為59分52,54,56,58秒時(shí),報(bào)時(shí)鬧鐘會(huì)響起。</p><p><b> 2 設(shè)計(jì)過(guò)程</b></p><p><b> 2.1 邏輯描述</b></p><p><b> 源代碼:</b></p><
7、;p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity clock is<
8、;/p><p> port(clk,switch,clear,add:in std_logic;</p><p> set :in std_logic_vector(1 downto 0);</p><p> second0,second1,minute0,minute1,hour0,hour1:out std_logic_vector(3
9、downto 0);</p><p> naozhong:out std_logic_vector(0 downto 0));</p><p><b> end;</b></p><p> architecture arch of clock is</p><p> signal clk0,clr,m0,m1,m
10、2,m3,m4:std_logic;</p><p> signal cout0:std_logic_vector(3 downto 0);</p><p> signal cout1:std_logic_vector(3 downto 0);</p><p> signal cout2:std_logic_vector(3 downto 0);</p&
11、gt;<p> signal cout3:std_logic_vector(3 downto 0);</p><p> signal cout4:std_logic_vector(3 downto 0);</p><p> signal cout5:std_logic_vector(3 downto 0);</p><p> signal co
12、ut6:std_logic_vector(0 downto 0);</p><p><b> begin</b></p><p> start:process(switch)</p><p><b> begin</b></p><p> if(switch='0')then
13、</p><p> clk0<=clk;</p><p><b> else</b></p><p> if(add='1')then</p><p> clk0<='1';</p><p><b> else</b>&l
14、t;/p><p> clk0<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process start;</p><p> p1:process(clr,c
15、lk0)</p><p><b> begin</b></p><p> if(set="00" or set="01")then</p><p> if(clr='1')then</p><p> cout0<="0000";m0
16、<='0';</p><p> elsif( rising_edge (clk0)) then</p><p> if(cout0="1001") then</p><p> cout0<="0000";m0<='1';</p><p><b
17、> else</b></p><p> cout0<=cout0+'1';m0<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b>
18、end if;</b></p><p> end process p1;</p><p> p2:process(clr,m0)</p><p><b> begin</b></p><p> if(set="00" or set="01")then</p
19、><p> if(clr='1') then</p><p> cout1<="0000";m1<='0';</p><p> elsif( rising_edge (m0)) then</p><p> if(cout1="0101") then<
20、/p><p> cout1<="0000";m1<='1';</p><p><b> else</b></p><p> cout1<=cout1+'1';m1<='0';</p><p><b> end if;
21、</b></p><p><b> end if;</b></p><p> elsif(set="10")then</p><p> if(clk0='1')then</p><p><b> m1<='1';</b>&
22、lt;/p><p><b> else</b></p><p><b> m1<='0';</b></p><p><b> end if;</b></p><p><b> end if;</b></p><
23、p> end process p2;</p><p> p3:process(clr,m1)</p><p><b> begin</b></p><p> if(set="00" or set="10")then</p><p> if(clr='1
24、9;) then</p><p> cout2<="0000";m2<='0';</p><p> elsif(rising_edge (m1)) then</p><p> if(cout2="1001") then</p><p> cout2<="
25、;0000";m2<='1';</p><p><b> else</b></p><p> cout2<=cout2+'1';m2<='0';</p><p><b> end if;</b></p><p><
26、;b> end if;</b></p><p><b> end if;</b></p><p> end process p3;</p><p> p4:process(clr,m2)</p><p><b> begin</b></p><p>
27、; if(set="00" or set="10")then</p><p> if(clr='1') then</p><p> cout3<="0000";m3<='0';</p><p> elsif( rising_edge (m2)) then&
28、lt;/p><p> if(cout3="0101") then</p><p> cout3<="0000";m3<='1';</p><p><b> else</b></p><p> cout3<=cout3+'1';m
29、3<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p> elsif(set="11")then</p><p> if(clk0='1')then</
30、p><p><b> m3<='1';</b></p><p><b> else</b></p><p><b> m3<='0';</b></p><p><b> end if;</b></p&g
31、t;<p><b> end if;</b></p><p> end process p4;</p><p> p5:process(clr,m3)</p><p><b> begin</b></p><p> if(set="00" or set=&
32、quot;11")then</p><p> if(clr='1') then</p><p> cout4<="0000";m4<='0';</p><p> elsif( rising_edge (m3)) then</p><p> if(cout4=&q
33、uot;1001" ) then</p><p> cout4<="0000";m4<='1';</p><p> elsif(cout5="0010" and cout4="0011")then</p><p> cout4<="0000&quo
34、t;;m4<='1';</p><p><b> else</b></p><p> cout4<=cout4+'1';m4<='0';</p><p><b> end if;</b></p><p><b>
35、 end if;</b></p><p><b> end if;</b></p><p> end process p5;</p><p> p6:process(clr,m4)</p><p><b> begin</b></p><p> if(s
36、et="00" or set="11")then</p><p> if(clr='1') then</p><p> cout5<="0000";</p><p> elsif( rising_edge (m4)) then</p><p> if(c
37、out5="0010" and cout4="0011") then</p><p> cout5<="0000";</p><p><b> else</b></p><p> cout5<=cout5+'1';</p><p&g
38、t;<b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p6;</p><p> p7:process(clk0,clear)</p>
39、;<p><b> begin</b></p><p> if(rising_edge(clk0)) then</p><p> if(cout5>="0010" and cout4="0011" and cout3="0101" and cout2="1001"
40、 and cout1="0101" and cout0="1001") then</p><p><b> clr<='1';</b></p><p><b> else</b></p><p><b> clr<='0';
41、</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> if(clear='1')then</p><p><b> clr<='1';</b>&l
42、t;/p><p><b> else</b></p><p> clr<='0';</p><p><b> end if;</b></p><p> end process p7;</p><p> p8:process(m0,m1,
43、m2,m3)</p><p><b> begin</b></p><p> if(cout3="0101" and cout2="1001" and cout1="0101" and (cout0="0010" or cout0="0100" or cout0=&
44、quot;0110" or cout0="1000"</p><p><b> )) then</b></p><p> cout6<="1";</p><p><b> else</b></p><p> cout6<=&quo
45、t;0";</p><p><b> end if;</b></p><p> end process p8;</p><p> output:process(m0,m1,m2,m3,m4)</p><p><b> begin</b></p><p>
46、second0<=cout0;</p><p> second1<=cout1;</p><p> minute0<=cout2;</p><p> minute1<=cout3;</p><p> hour0 <=cout4;</p><p> hour1 <=cou
47、t5;</p><p> naozhong <=cout6;</p><p> end process output;</p><p><b> end arch;</b></p><p> 2.2 編譯(Compilation)</p><p> 將實(shí)驗(yàn)VHDL代碼寫(xiě)入后,利用編
48、譯工具對(duì)代碼進(jìn)行編譯,檢查代碼中是否出現(xiàn)錯(cuò)誤,在編譯通過(guò)之后才能進(jìn)行仿真,下載等操作</p><p> 2.3 邏輯功能仿真(Simulation)</p><p> 編譯通過(guò)后,利用仿真工具對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行仿真,預(yù)先知道可編程芯片在設(shè)計(jì)系統(tǒng)中的運(yùn)行狀態(tài)。</p><p> 先建立向量波形文件,進(jìn)入仿真環(huán)境后,利用仿真工具欄中的工具設(shè)定各個(gè)輸入,最后開(kāi)始功能仿真
49、</p><p><b> 仿真圖: </b></p><p> 2.4下載(Programming)</p><p> 仿真結(jié)果與預(yù)期結(jié)果一致之后,就可以通過(guò)下載電纜將設(shè)計(jì)結(jié)果燒錄到可編程邏輯器件中,然后才可以接線進(jìn)行實(shí)際結(jié)果驗(yàn)證。</p><p><b> 2.5 驗(yàn)證</b><
50、;/p><p> 接通電路后,觀察最終結(jié)果是否符合要求。Switch鍵置1,看時(shí)鐘是否正常計(jì)數(shù);清零鍵置1,看時(shí),分,秒是否都清零;switch鍵置0,set鍵置10或11,并且同時(shí)按clk鍵,分或者是時(shí)是否實(shí)現(xiàn)了調(diào)整;時(shí)鐘顯示到鬧鐘所對(duì)應(yīng)時(shí)間時(shí),是否會(huì)有聲音等。</p><p><b> 3 設(shè)計(jì)總結(jié)</b></p><p> 通過(guò)這次VH
51、DL課程設(shè)計(jì),我學(xué)到了很多,對(duì)于原本掌握的不好的數(shù)字邏輯相關(guān)知識(shí),在課程設(shè)計(jì)具體實(shí)踐中有了很深刻的認(rèn)識(shí),在這次VHDL課程設(shè)計(jì)過(guò)程中遇到了不少困難,如對(duì)VHDL語(yǔ)言掌握有一定欠缺,在改善代碼過(guò)程中花費(fèi)了不少時(shí)間,因?qū)浖牧私獠粔?,模擬仿真時(shí)也遇到阻礙,不過(guò)最終經(jīng)過(guò)思考和合作解決了問(wèn)題。這次設(shè)計(jì)加強(qiáng)了我們動(dòng)手思考,解決問(wèn)題的能力。</p><p><b> 5 參考文獻(xiàn)</b></p
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字邏輯課程設(shè)計(jì)---數(shù)字鐘的設(shè)計(jì)
- 數(shù)字邏輯課程設(shè)計(jì)--數(shù)字鐘的設(shè)計(jì)
- 數(shù)字邏輯課程設(shè)計(jì)報(bào)告---數(shù)字鐘
- 數(shù)字邏輯課程設(shè)計(jì)---多功能數(shù)字鐘
- 數(shù)字邏輯課程設(shè)計(jì)---多功能數(shù)字鐘 (2)
- 數(shù)字邏輯課程設(shè)計(jì)報(bào)告--多功能數(shù)字鐘
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字邏輯課程設(shè)計(jì)---多功能數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)字電子課程設(shè)計(jì)---數(shù)字鐘
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)--數(shù)字鐘的設(shè)計(jì)
- 課程設(shè)計(jì)-- 數(shù)字鐘的設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字鐘的設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)---多功能數(shù)字鐘的設(shè)計(jì)與制作
- 數(shù)字邏輯課程設(shè)計(jì)報(bào)告——多功能數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論