EDA-數(shù)字秒表設(shè)計_第1頁
EDA-數(shù)字秒表設(shè)計_第2頁
EDA-數(shù)字秒表設(shè)計_第3頁
EDA-數(shù)字秒表設(shè)計_第4頁
EDA-數(shù)字秒表設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、電 子 設(shè) 計 自 動 化大 作 業(yè)題目數(shù)字秒表設(shè)計學院控制科學與工程學院班級自動化 0803 姓名學號二 oo 一一年五月十二日題 目:數(shù)字秒表的設(shè)計一、設(shè)計要求:(1) 數(shù)字秒表的計時精度是10ms; (2)復位開關(guān)可以在任何情況下使用,計時在計時過程中,只要按一下復位開關(guān),計時器就清零,并做好下次計時的準備;(3)具有啟 / 停開關(guān),即按一下啟 / 停開關(guān),啟動計時器開始計時,再按一下啟 / 停開關(guān)則停止計時。(4) 數(shù)字秒表的計時范圍是0 秒59分秒,顯示的最長時間為59 分59 秒二、總體設(shè)計:1、總體結(jié)構(gòu)圖輸入sel 模塊選通過 3-8 譯碼輸入到 choice 中2、各模塊功能1

2、)sel模塊:將掃描信號輸給選擇(choice) 模塊2)選擇模塊:按掃描信號的指定選擇輸出3)3-8 譯碼模塊:通過 sel給的信號來控制 8 位數(shù)碼管位的亮滅4)計時模塊:分別對毫秒,秒,分計時 5) 顯示模塊:通過 choice 模塊的輸出信號來控制時鐘控 制 選 擇 模通過數(shù)據(jù)的編碼控制數(shù)三、單元模塊設(shè)計1、模塊名 : sel模塊設(shè)計(1)模塊功能 : clk 為掃描時鐘脈沖, selout 端不停的發(fā)出掃描到的信號(2)端口定義 : clk 為信號輸入端 selout2.0為選擇到的信號輸出(3)vhdl 源程序library ieee;use sel is port(clk: in

3、 std_logic; selout: out std_logic_vector(2 downto 0);end sel;architecture one of sel is signal count: std_logic_vector(2 downto 0);begin process(clk) begin if clkevent and clk=1 then if (count=101) then count=000; else count=count+1; end if; end if; end process; selout=count; end one;(4)仿真結(jié)果說明:來一個上升

4、沿, selout 的值增 1,可以證明模塊是正確的。2、模塊名 : 選擇模塊設(shè)計(1)模塊功能 :按掃描信號的指定選擇輸出(2)端口定義 : a,b,c為控制信號; data13.0, data23.0, data33.0, data43.0, data53.0, data63.0分別是毫秒的低位,毫秒的高位,秒的低位,秒的高位,分的低位,分的高位的數(shù)據(jù)值; ch_out3.0為選擇輸出端。(3)vhdl 源程序library ieee;use choice isport(a,b,c:in std_logic;data1,data2,data3,data4,data5,data6:in st

5、d_logic_vector(3 downto 0);ch_out:out std_logic_vector( 3 downto 0);end choice;architecture behave of choice issignal ch:std_logic_vector(2 downto 0); beginch(2)=c;ch(1)=b;ch(0)ch_outch_outch_outch_outch_outch_out null;end case; end process;end behave;(4)仿真結(jié)果說明:abc的值遞增,ch_out選擇輸出data1,data2,data3,da

6、ta4,data5,data6的值,證明模塊是正確的3、模塊名 : 3-8譯碼模塊設(shè)計(1)模塊功能 :通過 sel給的信號來控制 8 位數(shù)碼管位的亮滅。(2)端口定義 : 輸入端 sel2.0 值大小來選擇輸出q的值輸出端 q7.0 來控制燈哪位亮(3)vhdl 源程序library ieee;use decode3_8 isport(sel: in std_logic_vector(2 downto 0);q : out std_logic_vector(7 downto 0);end decode3_8;architecture a of decode3_8 isbeginq = whe

7、n sel = 0 else when sel = 1 else when sel = 2 else when sel = 3 else when sel = 4 else when sel = 5 else ;end a;(4)仿真結(jié)果說明: sel 的值遞增, q的相應(yīng)位會亮,證明模塊是正確的。41 模塊名: 毫秒計時模塊設(shè)計(1)模塊功能 :對毫秒位的計數(shù)(2)端口定義 : clk為信號時鐘輸入端 reset為復位端 pause為暫停端 co為進位信號輸出端 qh:毫秒信號的高位輸出端 ql: 毫秒信號的低位輸出端(3)vhdl 源程序library ieee;use m100 ispo

8、rt(clk:in std_logic;reset:in std_logic;pause:in std_logic;co:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end m100;architecture behave of m100 isbeginco=1 when (qh=1001 and ql=1001) else 0; process(clk,reset,pause)beginif(reset=0) thenqh=0000;ql=0000;el

9、sif(pause=0)then qh=qh; ql=ql;elsif (clkevent and clk=1) thenif (ql=1001) thenql=0000;if (qh=1001) thenqh=0000; else qh=qh+1;end if; else ql=ql+1;end if;end if; end process;end behave;(4)仿真結(jié)果說明:毫秒為 100進制,高位和地位都是10進制,高位到 10 會有進位,可以證明模塊的正確性模塊名 : 秒計時模塊設(shè)計(1)模塊功能 :對毫秒位的計數(shù)(2)端口定義 : clk為信號時鐘輸入端 reset為復位端 p

10、ause為暫停端 co為進位信號輸出端 qh:毫秒信號的高位輸出端 ql: 毫秒信號的低位輸出端(3)vhdl 源程序library ieee;use m60_sec isport(reset:in std_logic; pause:in std_logic;ci:in std_logic;co:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end m60_sec;architecture behave of m60_sec isbegin co=1 whe

11、n (qh=0101 and ql=1001 and ci=1) else 0;process(reset,pause,ci)beginif(reset=0) thenqh=0000;ql=0000; elsif(pause=0)then qh=qh; ql=ql; elsif (cievent and ci=1) thenif (ql=1001) thenql=0000;if (qh=0101) thenqh=0000; else qh=qh+1;end if; else ql=ql+1;end if;end if;end process;end behave;(4)仿真結(jié)果說明:秒進制為

12、60 進制,高位到 6 會有進位,低位為 10 進制,可以證明模塊的正確性模塊名 : 分計時模塊設(shè)計(1)模塊功能 :對毫秒位的計數(shù)(2)端口定義 : clk為信號時鐘輸入端 reset為復位端 pause為暫停端 co為進位信號輸出端 qh:毫秒信號的高位輸出端 ql: 毫秒信號的低位輸出端(3)vhdl 源程序library ieee;use m60_min isport(reset:in std_logic; pause:in std_logic; ci:in std_logic;qh:buffer std_logic_vector(3 downto 0); ql:buffer std_

13、logic_vector(3 downto 0);end m60_min;architecture behave of m60_min isbeginprocess(reset,pause,ci)beginif(reset=0) thenqh=0000;ql=0000;elsif(pause=0)then qh=qh; ql=ql; elsif (cievent and ci=1) thenif (ql=1001) thenql=0000;if (qh=0101) then qh=0000; else qh=qh+1; end if; else qlq_showq_showq_showq_sh

14、owq_showq_showq_showq_showq_showq_shownull;end case;end process;end behave;(4)仿真結(jié)果說明:隨著 adr 的值增加,q_show輸出相應(yīng)的值,數(shù)碼管相應(yīng)的段會亮,證明模塊是正確的四、數(shù)字秒表 整體組裝1、頂層原理圖1. 工作情況輸入信號經(jīng)過分頻器輸給計時模塊,計時模塊的各位輸給選擇(choice) 模塊,選擇模塊選擇輸出,再經(jīng)過轉(zhuǎn)碼(bcd_7)模塊控制數(shù)碼管段的亮滅;輸入信號的另一路經(jīng)過分頻器給掃描(sel)模塊,sel的輸出信號一方面給 choice 模塊提供提供選擇信號, 另一方面又給譯碼器(decode3_8) 模塊提供譯碼信號來控制燈位的亮滅。,pause 和reset 分別控制暫停和復位。 2. 模塊間的連接關(guān)系:掃 描 (sel) 模塊 的 輸 出端接 譯 碼(decode3_8) 模 塊和 選 擇(choice) 模塊,計時模塊接選擇(choice) 模塊,選擇 (choice) 模塊將選到的信號給轉(zhuǎn)碼 (bcd_7)模塊控制數(shù)碼管段的亮滅2、仿真結(jié)果說明:輸入信號后,數(shù)碼管會不停的被掃描,段和位會選擇亮,可以證明模塊的正確性管腳分配:管腳編號管腳定義管腳編號管腳定義153clk50mh

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論