數(shù)字秒表的系統(tǒng)設計_第1頁
數(shù)字秒表的系統(tǒng)設計_第2頁
數(shù)字秒表的系統(tǒng)設計_第3頁
數(shù)字秒表的系統(tǒng)設計_第4頁
數(shù)字秒表的系統(tǒng)設計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3 數(shù)字秒表的系統(tǒng)設計3.1 系統(tǒng)的整體設計數(shù)字秒表的設計主要是一個計數(shù)電路,首先對一個時鐘進行不同的分頻,然后將分頻出的時鐘分別送給相應的模塊,毫秒計數(shù)器,秒計數(shù)器,分計數(shù)器,時計數(shù)器,然后經(jīng)過譯碼電路送給數(shù)碼管,顯示出相應數(shù)字,具體的秒表設計系統(tǒng)框圖如下所示。 圖3.1 系統(tǒng)框圖本次設計采用1.25mhz的基準輸入脈沖,將其進行12500分頻后得到100hz的標準脈沖,因為秒表的精確度要求為0.01s,所以需要用100hz的脈沖。分頻模塊的輸出脈沖作為計時模塊的輸入,當?shù)谝粋€模塊計數(shù)滿100后向秒進位,當秒計數(shù)滿60后向分進位,分記滿60后向小時計數(shù),然后將要顯示的數(shù)字進行譯碼后送給七段數(shù)

2、碼管進行顯示即可。3.2 秒表的層次化設計 3.2.1 分頻模塊 分頻電路在eda的各種設計電路中應用非常多。我們經(jīng)常用分頻電路來實現(xiàn)多種我們需要的不同頻率的脈沖。分頻的基本原理就是將一個頻率比較高的數(shù)字脈沖經(jīng)過是當?shù)奶幚砗?,輸出一個或者多個頻率相對較低數(shù)字脈沖,它的實質(zhì)是計數(shù)器,計數(shù)的大小即分頻常數(shù)有輸入和輸出的比值決定,它的輸出是依據(jù)分頻常數(shù)對輸出信號的低電平和高電平的控制。另外分頻器可分為整數(shù)分頻和小數(shù)分頻,本次設計采用整數(shù)分頻。本次設計的精確度為0.01s,首先需要一個準確的計時基準時鐘,它的周期為10ms,即需要用100hz的計時時鐘,本次設計提供的時鐘信號源為1.25mkhz,先經(jīng)

3、過12500分頻后可以獲得100hz的時鐘,讓100hz作為計時模塊的輸入,用vhdl語言實現(xiàn)如下。library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port ( en, clock: in std_logic ;clk1: out std_logic);end fenpin; architecture bhv of fenpin is begin process(clock)variable cout:integer:=0;begin if clockeven

4、t and clock=1 and en=1 thencout:=cout+1;if cout=6250 then clk1=0; elsif cout12500 then clk1=1;else cout:=0;end if; end if; end process;end bhv;3.2.2 計時電路模塊計時電路是eda進行各種數(shù)字電路的設計時幾乎是不可缺少的一部分,可用于分頻,定時電路的定時,基本的計數(shù)功能,甚至還可以用來做數(shù)學運算等。本次的數(shù)字秒表的設計中用到很多計數(shù)器,比如進行時鐘分頻時用到兩種計數(shù)器,一個十進制和一個一百進制的,計數(shù)時用到一個100進制、兩個60進制和一個24進制的

5、計數(shù)器。計數(shù)器的基本工作原理是將多個觸發(fā)器按照一定的順序連接起來,按照不同的觸發(fā)器的狀態(tài)遵循不同的規(guī)律來記時鐘的個數(shù),有了這個計數(shù)的規(guī)律,我們就輕而易舉的對計數(shù)器進行vhdl描述了。本次設計把秒表的計時范圍把一般的擴展到小時了,有一個100進制的計數(shù)器,兩個60進制的和一個24進制的,毫秒和秒的vhdl語言描述如下,其它的模塊程序參考附錄a。1、100進制的計數(shù)器,輸出為0.1s和0.01slibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minsecond isport(clk1,r

6、es, pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end minsecond;architecture sec of minsecond issignal hout,lout:std_logic_vector(3 downto 0); begin process(clk1,res, pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=hout; lout1000) th

7、en if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if; end process; l=lout; h=hout;end sec;2、60進制的計數(shù)器以秒為例。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ent

8、ity second isport( clk2,res,pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end second;architecture sec of second issignal hout,lout:std_logic_vector(3 downto 0); begin process(clk2,res,pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=h

9、out; lout0100) then if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if;end process; l=lout; hwwwwwwwwww=1101111;-顯示9end case; end process;end dis;3.3 數(shù)字秒表頂層設計的描述本次設計數(shù)字秒表采用了原理圖輸入的方法進行

10、了描述,具體的過程:首先將每一個模塊進行編譯、綜合、仿真后,針對vhdl生成相應的圖符文件,然后將每個模塊的圖符文件和各自的vhdl放在一塊,最后用原理圖的方法將每個模塊連接在一塊,結(jié)果如圖3.2所示。 圖3.2 頂層設計原理圖 4 系統(tǒng)仿真4.1 quartus的簡介quartus開發(fā)軟件是altera公司推出的業(yè)內(nèi)比較領先的fpga設計軟件,具有最全面的開發(fā)環(huán)境,它較多的應用于大規(guī)模的邏輯電路的設計,提供了從設計輸入到器件編程的全部功能,與第三代設計軟件相比較,它具有更加完美的功能,支持度可編程邏輯器件的數(shù)量也越來越多,它設計的輸入,編譯和綜合仿真的過程都更加的簡單,同時在編譯和仿真的同時

11、會生成相應的報告。quartus軟件的設計方法很多,支持圖形編輯輸入法,文本輸入法,以及圖形和文本混用輸入法等多種編輯輸入法。同時器內(nèi)部有自帶的綜合器以及仿真器,可以完成從設計輸入到硬件配置的整個設計流程。4.1.1 quartus的特點1、最容易使用的可編程邏輯器件的設計軟件altera的 quartus ii軟件支持max ii器件和其他的max cpld系列,因為它提供最全面的開發(fā)環(huán)境,并且也是最易使用的,可以完成從設計輸入到硬件配置結(jié)束的整個設計項目流程。2、quartus ii給max+plus ii用戶帶來了很大的方便quartus ii提供了一個內(nèi)置的max+plus ii外觀選

12、項,兩者是兼容的,max+plus ii的使用者不需要學習一個新的界面,就能獲得quartus ii軟件的所有的功能,它比max+plus ii的性能更好,它比max+plus ii的性能平均快百分之十五左右,對于固定的設計其平均的器件資源減少了百分之五。3、器件的兼容quartus ii的核心器件不僅支持max 3000a系列、max7000系列、max9000系列、flex6000系列、flex10k系列之外,還支持max ii cpld系列,cyclone系列等等最新的fpga系列的器件。4、系統(tǒng)設計技術altera的 quartus ii軟件是第一個支持基于ip系統(tǒng)設計的軟件,它包含了

13、完整的自動的系統(tǒng)定義和實施,不需要最低層的硬件描述語言和原理圖。設計的人員可以在很短的時間內(nèi)實現(xiàn)自己先要的系統(tǒng)。5、時序逼近的方法quartus ii采用了以內(nèi)最先進的時序逼近的方法,使設計的人員能夠迅速的獲得自己設計的時序仿真的要求。這種時序逼近的方法是直接集成在它的工具包中,不需要單獨對其進行操作。6、驗證方法quartus ii不僅集成了第三方的eda的驗證工具和方案,還提供有高級多時鐘時序分析的能力,它可以讓使用者決定設計中的速率關鍵和性能受限路徑,以此來優(yōu)化關鍵的時序路徑。還包含了芯片編輯器,它可以在幾分鐘內(nèi)實現(xiàn)系統(tǒng)內(nèi)部的漸進式設計更改。altera 公司的quartus ii 作為

14、一種可編程邏輯的設計環(huán)境, 因為它的設計能力的強大和接口的簡單易用,越來越受到更多數(shù)字系統(tǒng)設計者的青睞。4.2 各個模塊的仿真在本次設計中,我采用了altera 公司的quartus ii做為仿真軟件,對各個模塊的源程序進行了編譯、綜合、仿真,并讓每個模塊的源程序生成相應的圖符元件,用于頂層電路的設計描述。每個模塊經(jīng)仿真后被驗證是正確的,具體的仿真波形如下。1、分頻仿真波形 分頻輸入clock為1.25mhz的輸入脈沖,en為使能端,當en為高電平時,分頻器開始工作,分頻輸出信號clk為100hz的脈沖。 圖5.1 分頻模塊的仿真波形從仿真波形中可以看出,當en為高電平時,分頻器開始工作,這時

15、輸出脈沖clk為正確輸出,從時間軸可以看出,clk的周期為10ms,頻率為周期的倒數(shù),因此輸出為100hz。2、毫秒的仿真波形 輸入的信號為clk2,暫停鍵用pause鍵控制,清零鍵用res控制,h和l為十分秒和百分秒的輸出,co為進位信號。圖5.2 毫秒的仿真波形從圖5.2可以看出,當時鐘的上升沿過來后,暫停鍵無效時,低位計數(shù)開始,計數(shù)計滿10后向高位進位,當高位記滿10后,即整體計數(shù)滿100后,進位信號co顯示高電平,如圖5.2中co所示,當暫停鍵pause為高電平時,低位計數(shù)器停止計數(shù),圖中顯示低位暫停在3,高位暫停在1處;當復位鍵res出現(xiàn)高電平時,低位和高位都顯示為零,仿真結(jié)果正確,

16、符合要求。3、秒的仿真波形秒的輸入脈沖是由前一個模塊的進位輸出作為時鐘信號clk2的,暫停鍵用pause控制,清零用res控制,l為秒的個位顯示,h為秒的十位顯示,co為進位信號。圖5.3 秒的仿真波形 從圖5.3可以得出,暫停鍵為高電平時,停止計數(shù);復位鍵為高電平時,全部清零;計數(shù)滿60后有輸出,仿真結(jié)果正確。分鐘、小時、和譯碼顯示模塊的仿真結(jié)果參考附錄。4、頂層設計的仿真波形clk作為分頻的輸入,en作為總的控制時鐘的開始,暫停鍵用pause控制,清零用res控制,w1-w8分別為秒表的低位到高位的8個數(shù)碼管顯示,高四位通過譯碼模塊連接,共7位,低四位硬件自帶的譯碼器,輸出為四位。圖5.3

17、頂層設計的仿真波形由圖5.3可得,秒表可以正常工作,當毫秒記滿100后秒開始計數(shù),秒計滿60后向分鐘有進位,與設計的預期成果一致。1、分鐘的vhdl語言描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport( clk2,res,pause:in std_logic; l,h:out std_logic_vector(3 downto 0); co:out std_logic);end minute;architecture min of minute issi

18、gnal hout,lout:std_logic_vector(3 downto 0); begin process(clk2,res,pause, hout, lout) begin if res=1 then hout=0000; lout=0000; elsif pause=1 then hout=hout; lout0100) then if (lout1000) then lout=0000; hout=0000; co=1; else lout=lout+1; end if; else if (lout=1001) then lout=0000; hout=hout+1; else lout=lout+1; co=0; end if; end if; end if;end process; l=lout; h=hout;end min; 2、小時的vhdl語言描述library ieee;use

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150