可編程邏輯器件電路設(shè)計計時器的FPGA實現(xiàn)_第1頁
可編程邏輯器件電路設(shè)計計時器的FPGA實現(xiàn)_第2頁
可編程邏輯器件電路設(shè)計計時器的FPGA實現(xiàn)_第3頁
可編程邏輯器件電路設(shè)計計時器的FPGA實現(xiàn)_第4頁
可編程邏輯器件電路設(shè)計計時器的FPGA實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、可編程邏輯器件電路設(shè)計課程設(shè)計報告1/100s計時器的fpga實現(xiàn)姓 名: 班 級: 電信3 電信1 學 號: 指導老師: 日期: 2015.12.222015.12.29 華南農(nóng)業(yè)大學電子工程學院摘 要高精度計時器常用于體育競賽及各種要求有較精確定時的技術(shù)領(lǐng)域。通常,采用中規(guī)模集成電路即可實現(xiàn)高精度計時器的設(shè)計。本項研究將基于新一代硬件描述語言(hdl)、采取asic(專用集成電路)設(shè)計方法,實現(xiàn)1/100s計時器的前端設(shè)計。本計時器包括5個模塊:消抖模塊、時鐘分頻模塊、開關(guān)及控制模塊、時鐘定時模塊、 顯示模塊,以完成1/100s計時器所界定的功能。在消抖模塊中,將產(chǎn)生消除抖動后的rst0(

2、復位脈沖輸出)和en0(啟/停脈沖輸出)。時鐘分頻子模塊。clk_div實際上是一個用計數(shù)器進行分頻的分頻電路,得到用于計時的100hz脈沖信號和消除抖動的25hz脈沖信號??刂谱幽K是根據(jù)計時器的工作狀態(tài),控制是否輸出計數(shù)允許信號enable,它用于控制計數(shù)子模塊的計數(shù)工作。計時子模塊是一個定時計數(shù)器,用來產(chǎn)生要顯示的5位計時信息,當使能信號enable有效時計數(shù)器使能或暫停。計時器顯示模塊的輸入信號為計時模塊輸出的計時信息;它的輸出信號是wei和dig,驅(qū)動用于計時顯示的5個led七段顯示數(shù)碼管。在輸出信號中,由于六進制計數(shù)器循環(huán)計數(shù),led四段顯示數(shù)碼管循環(huán)點亮來顯示計時器的計時輸出。對

3、各個功能模塊進行硬件描述以后,然后采用新一代可編程邏輯器件開發(fā)軟件平臺quartus ii,進行邏輯功能仿真與時序驗證,并在fpga開發(fā)板上進行了綜合和適配。關(guān)鍵詞:計數(shù)器 hdl 集成電路設(shè)計 仿真目 錄1.方案選擇41/100s計時器的功能描述32.底層文件仿真與分析7 2.1 底層文件簡介7 2.2 底層文件仿真與分析82.2.1計時模塊的時序仿真82.2.2 控制模塊的時序仿真83.頂層文件仿真與分析113.1使用quartus ii 9.0自帶仿真器對設(shè)計進行仿真113.1.1 計時器的頂層設(shè)計113.1.2 頂層模塊的時序仿真與分析114.課程設(shè)計心得12abstract20參考文

4、獻13附錄(源代碼)141.方案選擇1/100s計時器的功能描述1. 這里將要討論的計時器的工作流程如下圖所示,功能描述如下:圖1-1計時器的工作流程圖(1)要求設(shè)置復位開關(guān)。當按下復位開關(guān)時,計時器清零并做好計時準備。在任何情況下只要按下復位開關(guān),計時器都要無條件地進行復位操作,即使是在計時過程中也要無條件地進行清零操作。(2)要求設(shè)置啟/停開關(guān)。實際上啟/停開關(guān)的使用方法與傳統(tǒng)的機械式計時器完全相同:當按下啟/停開關(guān)后,將啟動計時器并開始計時;當再次按下啟/停開關(guān)時,將終止計時器的計時操作。(3)要求計時精度大于0.01s。在體育競賽中運動員的成績計時是以0.01s為最小單位的,因此要求設(shè)

5、計的計時器能夠顯示0.01s的時間。(4) 計時器的最長計時時間為2分鐘,需要一個5位的顯示器,顯示的最長時間為1分59.99秒(5)要求有電源復位信號的系統(tǒng)上電復位電路。2. 根據(jù)上面對計時器的功能描述,可以對該計時器的輸入和輸出電路進行以下推理。首先來對計時器的輸入電路進行描述:(1)首先要按下復位開關(guān)rst進行計時器的復位清零操作,使計時器作好計時準備。(2)當做好計時準備后按下計時器的啟/停開關(guān)en,計時器開始計時,計時器的最小計時單位是0.01s;計時完畢后再按一下計時器的啟/停開關(guān)en,這時將終止計時器的計時操作。(3)由于計時器的計時精度為0.01s,所以提供給計時器內(nèi)部定時的時

6、鐘信號頻率應該大于100hz。這里取20mhz,所以該計時器還應該有一個100hz的時鐘輸入信號clk。3. 計時器的輸出電路可以描述為:(1)由于計時器的最長計時時間為1分59.99秒,因此需要一個5位的顯示器。這樣,在設(shè)計中就需要一個五條輸出線,用來選通指定的一位led七段顯示數(shù)碼管。(2)顯示器的每一位都采用led七段顯示數(shù)碼管進行顯示,因此輸出電路要有七條輸出線連接在led七段顯示數(shù)碼管上。4. 對計時器的輸入和輸出電路進行推理以后,就可以很容易地給出計時器的輸入和輸出信號。首先給出計時器的輸入信號:(1)外部時鐘信號clk;(2)復位開關(guān)信號rst:用于對計時器進行清零并做好計時準備

7、;(3)啟/停開關(guān)信號。en按下啟/停開關(guān)后,將啟動計時器并開始計時;當再次按下啟/停開關(guān)時,將終止計時器的計時操作; 5. 輸出信號的描述為:(1)led七段顯示數(shù)碼管的選通信號wei5:0:用于時器的6個led七段顯示數(shù)碼管進行選通;(2)led七段顯示數(shù)碼管的輸出信號dig7:0:用于控制led七段顯示數(shù)碼管的顯示操作。確定了計時器的輸入輸出信號以后,就可以給出該計時器的結(jié)構(gòu)框圖了。計時器的系統(tǒng)結(jié)構(gòu)框圖如圖1-1所示,它說明了整個數(shù)字系統(tǒng)的外部輸入和輸出情況。abc defg 7 6 5 4 3 2 1 0 dig weirst enclk圖1-2 計時器的結(jié)構(gòu)框圖6. 綜上所述,可以確

8、定計時器的基本方案如下:1.方案一:如圖 1-2所示,本方案分為時鐘分頻模塊、按鍵輸入模塊、功能控制模塊、計時模塊和顯示控制模塊。其中時鐘分頻模塊對系統(tǒng)時鐘信號作適當分頻后向按鍵輸入模塊、功能控制模塊、計時模塊提供必要的時鐘控制信號;按鍵輸入模塊則實現(xiàn)按鍵信號的實時檢測與消除抖動功能,為功能控制模塊提供及時穩(wěn)定的按鍵輸入信號。功能控制模塊則根據(jù)按鍵輸入狀態(tài)實現(xiàn)復位、啟動/停止計數(shù)的外部操作功能;計時模塊根據(jù)功能控制模塊的控制信號實現(xiàn)要求的計時功能,然后把當前計時值輸送到顯示模塊進行顯示;顯示控制模塊采用靜態(tài)驅(qū)動數(shù)碼管的顯示方式,顯示實時計時值。圖 1-2方案一計時器的模塊結(jié)構(gòu)圖方案二:通過分頻

9、器得到1hz和100hz的時鐘信號,按分、秒、毫秒分別計數(shù)然后通過器輸出到數(shù)碼管。為兼顧開發(fā)周期和系統(tǒng)資源的合理分配,本系統(tǒng)采方案二實現(xiàn)1/100計時器的功能。2.底層文件仿真與分析2.1 底層文件簡介在任何自頂向下的vhdl設(shè)計描述中,設(shè)計人員常常將整個設(shè)計的系統(tǒng)劃分為幾個模塊,然后采用結(jié)構(gòu)描述方式對整個系統(tǒng)進行描述,本設(shè)計亦是如此?,F(xiàn)在根據(jù)前面描述的結(jié)構(gòu)功能,來確定計時器數(shù)字系統(tǒng)需要使用哪些模塊以及這些模塊之間的關(guān)系。由于計時器的復位開關(guān)和啟/停開關(guān)采用按鍵的輸入方式,其產(chǎn)生時刻和持續(xù)時間的長短是隨機不定的,且存在因開關(guān)簧片反彈引起的電平抖動現(xiàn)象,因此必須在每個開關(guān)后面安排一個消抖和同步化

10、電路模塊,以保證系統(tǒng)能捕捉到輸入脈沖,并保證每按一鍵,只形成一個寬度為系統(tǒng)時鐘周期的脈沖。同步電路的方案很多,圖2-1是一種既有消抖功能又有同步功能的電路,應用得非常廣泛。 (1)時鐘分頻模塊(fenpin):時鐘分頻模塊分為兩部分,分別使用子模塊將外部20mhz的時信號分頻為占空比為50的時鐘信號clk_250hz和clk_100hz。其中,clk_250hz作為消除抖動和提供顯示的掃描時鐘,clk_100hz作為定時計數(shù)的脈沖信號。由此可知,fenpin子模塊實際上是一個用計數(shù)器進行分頻的分頻電路,其結(jié)構(gòu)和輸入輸出信號關(guān)系如圖2-4所示。為實現(xiàn)嚴格的同步,該模塊采用同步計數(shù)電路。圖2-4

11、時鐘產(chǎn)生子模塊結(jié)構(gòu)和輸入輸出信號關(guān)系(2)控制模塊(ctrl):控制子模塊的輸入信號是消抖子模塊輸出的啟/??刂泼}沖en0和復位脈沖信號rst0。其輸出信號是計數(shù)允許信號en和復位脈沖信號rst,它用于控制計數(shù)子模塊的計數(shù)工作。計時器工作時,en端輸出高電平,計時器停止工作時en端輸出低電平。由此可見,控制子模塊是根據(jù)計時器的工作狀態(tài),控制是否輸出計數(shù)允許脈沖的電路。(3)計時模塊(count):計時模塊的輸入信號為:去除抖動后的復位信號 rst0;系統(tǒng)電源復位信號rst0;計時器的內(nèi)部計時時鐘信號clk_100hz;計時模塊的輸出信號為:分個位信號f_q;秒十位信號miao_q2;秒個位信號

12、miao_q1;0.1s位信號xiao_q2;0.01s位信號miao_q1。該模塊是一個定時計數(shù)器,用來產(chǎn)生要顯示的5位計時信息。 (4)顯示模塊(display):顯示子模塊的輸入信號來自定時計數(shù)子模塊的輸出,它們是pfc,f_q,miao_q2,miao_q1,xiao_q2,miao_q1。輸出信號是。wei和dig,用來驅(qū)動6個7段led數(shù)碼顯示管。clk是六進制計數(shù)器的計數(shù)脈沖,在該計數(shù)脈沖驅(qū)動下,六進制計數(shù)器的6個狀態(tài)000b101b按順序循環(huán)變化,其輸出經(jīng)譯碼電路顯示位選擇譯碼器譯碼產(chǎn)生選通6位數(shù)碼管之一的wei信號。與此同時,clk還作為計時位選擇電路的選擇信號,選擇對應位的

13、數(shù)據(jù)。首先通過信號。wei5:0來進行6個led七段顯示數(shù)碼管的選擇,然后將輸出信號dig6:0送到相應的led七段顯示數(shù)碼管上以完成計時器計時的顯示。由于六進制計數(shù)器循環(huán)計數(shù),因此每個位的顯示時間約為0.006ms,刷新頻率為150hz。這樣在6個7段led數(shù)碼管上就可以看到一個穩(wěn)定的數(shù)字時間顯示。7段顯示關(guān)系表如表2-5所示。表 2-5 7段顯示關(guān)系表 段數(shù)字hgfedcba011000000111111001210100100310110000410011001510010010610000010711111000810000000910010000r10001000e10000110c

14、11000110通過上面的模塊劃分,可以設(shè)計出如圖2-6所示的計時器模塊結(jié)構(gòu)原理圖以及模塊之間的連接關(guān)系。圖2-6 計時器的模塊劃分2.2 底層文件仿真與分析2.2.1計時模塊的時序仿真仿真結(jié)果如圖3-1所示。圖 3-1 計時模塊仿真波形圖由仿真波形圖可以看出,當系統(tǒng)電源復位信號rst為低電平時,若使能信號en有效則計數(shù)器開始有效計數(shù)。圖中顯示出out_min, out_10s,out_1s,out_10ms,out_100ms的進位情況。10ms,100ms與1s位由0到9,圖中顯示為0000到1001;10s位由0到6,min由0到1。en為控制器信號。2.2.2 控制模塊的時序仿真圖 2

15、-2 控制模塊仿真波形圖stst是啟動/暫停按鍵,程序邏輯如圖:當接收到脈沖信號,en會改變高地電平,計數(shù)器接收到高/低電平,實現(xiàn)繼續(xù)、停止計數(shù),計算機仿真速度較快顯示信號有延遲,但符合要求。3.頂層文件仿真與分析3.1使用quartus ii 9.0自帶仿真器對設(shè)計進行仿真3.1.1 計時器的頂層設(shè)計前面己經(jīng)詳細地討論了計時器中各個模塊的設(shè)計細節(jié)以及相應的vhdl描述。最后把這些模塊組裝起來,以形成計時器數(shù)字系統(tǒng)的完整設(shè)計。下面根據(jù)圖2-6所示的計時器各個模塊的連接關(guān)系,給出計時器的頂層設(shè)計的vhdl描述,其中5個模塊單元是以元件的形式給出的。計時器的頂層設(shè)計的vhdl描述如“附錄:1 1/

16、100s計時器fpga實現(xiàn)頂層模塊”所示。3.1.2 頂層模塊的時序仿真與分析圖3-6 頂層模塊仿真波形圖在波形圖中,外部時鐘信號clk為頻率20mhz的方波時鐘脈沖信號,en為外部啟/停開關(guān)信號,rst為整體復位開關(guān)信號。有仿真結(jié)果可以得出當系統(tǒng)通過完全復位以后,打開en開關(guān)以后計數(shù)器正常計數(shù),并輸出到顯示模塊中去。顯示模塊中wei為“00000001”時xiao_q1被選通,并輸出“0000110”即在led七段數(shù)碼管中顯示為“1”其他各個led七段數(shù)碼管均輸出“0111111”即顯示為“0”。仿真結(jié)果滿足設(shè)計要求。4.課程設(shè)計心得本課程設(shè)計基于vhdl語言,按照自頂向下的現(xiàn)代asic設(shè)計

17、方法,提出了一個高精度的數(shù)字計時器的設(shè)計方案。本計時器包括5個模塊:消抖輸入模塊、時鐘分頻模塊、控制模塊、計時模塊、 掃描模塊,以完成1/100s計時器所界定的功能。在鍵輸入模塊中,將產(chǎn)生消除抖動后的rst0(復位脈沖輸出)和en(啟/停脈沖輸出)。時鐘分頻子模塊。fenpin實際上是一個用計數(shù)器進行分頻的分頻電路,得到用于計時的100hz脈沖信號和消除抖動的25hz脈沖信號??刂谱幽K是根據(jù)計時器的工作狀態(tài),控制是否輸出計數(shù)允許信號en,它用于控制計數(shù)子模塊的計數(shù)工作。計時子模塊是一個定時計數(shù)器,用來產(chǎn)生要顯示的8位計時信息,當使能信號en有效時計數(shù)器開始有效計數(shù)。計時器顯示模塊的輸入信號為

18、計時模塊輸出的計時信息;它的輸出信號是wei和dig,驅(qū)動用于計時顯示的6個led七段顯示數(shù)碼管。在輸出信號中,由于六進制計數(shù)器循環(huán)計數(shù),led七段顯示數(shù)碼管循環(huán)點亮來顯示計時器的計時輸出。在完成對每個模塊的vhdl描述以后,實現(xiàn)了邏輯功能仿真與時序驗證,修改與優(yōu)化電路,進一步提高電路的性能。使用quartus ii自帶仿真器對各模塊進行仿真。選用altera公司的新一代可編程邏輯器件開發(fā)軟件平臺quartus ii。對該設(shè)計進行硬件驗證分析,運用該軟件生成相應的門級網(wǎng)表。在具體的fpga器件上進行了綜合和適配,按照設(shè)計要求對該設(shè)計進行了相應的操作。根據(jù)操作結(jié)果的驗證,該設(shè)計完全達到了設(shè)計要求

19、。本設(shè)計具有較強的實用性和可操作性。參 考 文 獻1.潘松,黃繼業(yè).eda技術(shù)實用教程.科學出版社.2005.2:145156.2.候伯亨,顧新.vhdl硬件描述語言與數(shù)字邏輯電路設(shè)計.西安電子科技大學.2004.11:4548.3.趙艷華 基于quartus ii的fpga/cpld設(shè)計與應用 電子工業(yè)出版社 2009附錄(源代碼)1.分頻模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity timer isport(clk:in std_logic;msec:out std_lo

20、gic;sec:out std_logic);end timer;architecture fz of timer isbegin msecgen:process(clk) variable cn:integer range 0 to 9;begin if rising_edge(clk) then cn:=cn+1; end if;if cn4 then msec=0;else msec49 then sec=0;else sec=1;end if;end process secgen;end fz;2.控制模塊:library ieee;use ieee.std_logic_1164.al

21、l;use ieee.std_logic_unsigned.all;entity controller isport(stst,rst:in std_logic; en:out std_logic);end controller;architecture ctl of controller issignal p:std_logic;beginprocess(stst) beginif stst=1 then p=not p ;end if;end process;en=p;end ctl;3.計時模塊:3.1毫秒計時library ieee;use ieee.std_logic_1164.al

22、l;use ieee.std_logic_unsigned.all;entity msec isport(rst:in std_logic; f10ms:in std_logic; en:in std_logic; out_10ms:out std_logic_vector(3 downto 0); out_100ms:out std_logic_vector(3 downto 0) );end msec;architecture bhv of msec issignal cnt0,cnt1:std_logic_vector(3 downto 0);beginprocess(f10ms,en,rst) variable cnt10:integer range 0 to 9;beginif (rst=1) then cnt0=0000; cnt1=0000; elsif (en=1) thenif rising_edge(f10ms) then if (cnt0=1001) then cnt0=0000; els

溫馨提示

  • 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

提交評論