版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本科畢業(yè)論文基于fpga的數(shù)字跑表設(shè)計(jì)digital stopwatch design based on fpga學(xué)院名稱:hi子信息與hl氣工程學(xué)院專業(yè)班級(jí):電子信息工程(專升本)2013級(jí)2016年5月畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指 導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致 謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包 含我為獲得i室院及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對(duì)本研 究提供過幫助和做出過貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說明并 表示了謝意。作者
2、簽名:指導(dǎo)教師簽名:日 期:日 期:使用授權(quán)說明本人完全了解工學(xué)院關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定, 即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán) 保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù); 學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以嬴利 為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名:日 期:摘要錯(cuò)誤!未定義書簽。abstract錯(cuò)誤!未定義書簽。引言錯(cuò)誤!未定義書簽。第一章緒論錯(cuò)誤!未定義書簽。1.1設(shè)計(jì)背景與意義錯(cuò)誤!未定義書簽。1.2跑表的發(fā)展趨勢(shì)錯(cuò)誤!未定義書簽。第二章實(shí)驗(yàn)的軟件環(huán)境錯(cuò)誤!未定義書簽。2.
3、1 max+plusu軟件錯(cuò)誤!未定義書簽。2.2 v11dl語言錯(cuò)誤!未定義書簽。第三章跑表的設(shè)計(jì)53. 1跑表的方案選擇53. 2跑表的程序流程圖63.3頂辰設(shè)計(jì)與vhdl源代碼73. 3.1頂層實(shí)體設(shè)計(jì)及viidl源代碼73. 3. 2頂層結(jié)構(gòu)體的設(shè)計(jì)83.4跑表的各個(gè)模塊分析93.4.1鍵輸入模塊93. 4. 2時(shí)鐘分頻模塊113.4. 3控制模塊133. 4. 4跑表計(jì)時(shí)模塊143. 4. 5跑表顯示模塊173.5仿真結(jié)果20*吉i吾22& i射23南犬24附錄a管腳引用表25附錄b跑表的程序代碼26基于fpga的數(shù)字跑表設(shè)計(jì)摘要:木數(shù)字跑表用于檢測(cè)需要準(zhǔn)確計(jì)吋或計(jì)吋場(chǎng)合較為
4、精確且比較精密的環(huán)境屮。在 現(xiàn)在的競(jìng)賽、科研、測(cè)驗(yàn)的環(huán)境中,跑表依然扮演著十分重要的角色。隨著電子技術(shù)的 發(fā)展,它冇著更加廣闊的發(fā)展空間、也冇著更加廣泛的應(yīng)用。本論文對(duì)數(shù)字跑表進(jìn)行了 電路設(shè)計(jì)與程序設(shè)計(jì),并劃分為五個(gè)模塊:鍵輸入模塊、分頻模塊、控制模塊、計(jì)時(shí)模 塊和顯示模塊。各個(gè)模塊通過合理的配合來實(shí)現(xiàn)跑表的功能,所冇功能語言都用vhdl 來完成描述。木實(shí)驗(yàn)主要借助altera公司開發(fā)的eda工具max+plus ii軟件作為編譯 和仿真的實(shí)驗(yàn)環(huán)境,主要利用epfi0k10lc84-4器件在fpga的實(shí)驗(yàn)箱上來完成數(shù)字跑 表的設(shè)計(jì)。關(guān)鍵詞:跑表;vhdl 語言;max+plus ii ; fp
5、gadigital stopwatch design based on fpgaabstract: the digital stopwatch for detection requires accurate timing or timing occasions more accurate and more sophisticated environment. in the current competition, scientific research,test environment,stopwatch still plays a very important role. with the
6、development of electronic technology,it has a more broad development space,also has a more extensive application. in this paper,the digital stopwatch were hardware circuit design and software design, and is divided into five modules: key input module, frequency module, control module,timing module a
7、nd display module. each module is realized by the stopwatch with reasonable,all functions are accomplished with vhdl description language. this experiment mainly by altera corporation development of eda tools max + plus ii software as compilation and simulation experiment environment,the main use of
8、 epfl0kl0ic84-4 device in fpga experimental box completed the design of digital stopwatch.keywords: stopwatch; vhdl language; max + plus ii; fpga本跑表無機(jī)械裝置,是用電子設(shè)備來完成數(shù)字跑表的設(shè)計(jì),它具有更k:的使用壽命 和更加精確的計(jì)時(shí)裝置,因此xl得到了廣泛的應(yīng)用。通過跑表的制作使我進(jìn)一步的了解 了各種中小規(guī)模集成電路的作用及特點(diǎn),使我進(jìn)一步的學(xué)習(xí)與掌握了各種組合邏輯電路 與吋序電路的原理和使用方法。人生苦短,日月如梭。吋間是人生屮最珍貴的東兩,但
9、當(dāng)事情不怎么重要的吋候, 這種遺忘倒不會(huì)出什么事。但一旦遇到了重要事情,一時(shí)的遺忘就會(huì)釀成大禍。例如: 在醫(yī)院屮,病體發(fā)作時(shí)間頻率值、手術(shù)的時(shí)間間隔、麻藥的藥效長(zhǎng)短等高危手術(shù)屮,計(jì) 時(shí)就顯得尤為重耍;在科研中,火箭的發(fā)射、飛機(jī)的起飛、導(dǎo)彈的攻擊、航母的運(yùn)行、 空間站的對(duì)接等高科技產(chǎn)品中,一秒鐘的誤差就會(huì)產(chǎn)生極其嚴(yán)重的后果;在競(jìng)賽中,即 使是相差0.01s那也會(huì)有一個(gè)先后,分秒必爭(zhēng)的理念就變得尤為的突出;在工程的測(cè)試 中;在萬物生k中等等觀測(cè)結(jié)果的情況下,這種對(duì)時(shí)問的精確度要求就變的非常高了, 這時(shí)對(duì)于數(shù)字跑表的研究就變得尤為突出的重耍。所以,制作一個(gè)精確計(jì)時(shí)的跑表系統(tǒng) 是多么明智的選擇。第一章
10、緒論1.1設(shè)計(jì)背景與意義現(xiàn)在電子產(chǎn)品已經(jīng)融入了我們身邊的每個(gè)角落,它使我們的生活變的更加的美滿和 和諧,同時(shí)也使電子產(chǎn)品的性能進(jìn)一步提高、功能進(jìn)一步強(qiáng)大,其中帶給我們最大的紅 利就是便捷?,F(xiàn)在的電子吋鐘也已經(jīng)布滿我們的生活里,如手機(jī)、電腦、手表、鐘表以及各大屮 小地點(diǎn)的公共場(chǎng)所里都有時(shí)鐘的出現(xiàn)。然而數(shù)字跑表的功能和用途有許多是電子鐘無法 用精確性和準(zhǔn)確性來取代的,跑表冇著這些獨(dú)特的特點(diǎn),也冇著不可被取代的趨勢(shì)。電 子產(chǎn)品朝著高精度高準(zhǔn)確度的方向發(fā)展,跑表依然如此。因此本設(shè)計(jì)不采用單片機(jī)、不 采用機(jī)械設(shè)備、而采用基于fpga來完成數(shù)字跑表的設(shè)計(jì)。隨著現(xiàn)場(chǎng)可編程門陣列的發(fā)展,電子系統(tǒng)向著集成化、大
11、規(guī)模和高速度等方向升級(jí) 的趨勢(shì)也愈加明敁,所以設(shè)計(jì)本跑表為打開fpga領(lǐng)域而研究fpga數(shù)字跑表具有里程 碑式的意義。1.2跑表的發(fā)展趨勢(shì)數(shù)字跑表已經(jīng)成為了人類在科技、競(jìng)賽和檢測(cè)中的一種十分必要的計(jì)時(shí)裝置,給人 們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。數(shù)字跑表的發(fā)展方向?qū)?huì)為以后的航空 航天、航空母艦、高鐵磁懸浮列車等科技方面做出更加可靠的計(jì)時(shí)參考和更加精確的依 據(jù),也會(huì)為競(jìng)技競(jìng)賽、公平競(jìng)爭(zhēng)等項(xiàng)0比賽提供更加公平公正的參考。第二章實(shí)驗(yàn)的軟件環(huán)境2.1 max+plusii 軟件本軟件主耍由層次顯示器、信息處理器、輸入編輯器、設(shè)計(jì)編譯器、設(shè)計(jì)校驗(yàn)器和 器件編程器一起構(gòu)成了一個(gè)完整獨(dú)立的eda設(shè)
12、計(jì)平臺(tái)。當(dāng)程序編譯完畢并能產(chǎn)生max+plusii或第3方eda工具的一系列文件和報(bào)告, 如圖2.1所示。第三方eda設(shè)計(jì)文件映射文件max+plus ii 設(shè)計(jì)文件(.gdf, . tdf,)功能仿其(.snf)max+plus ii 編譯器 >定時(shí)仿真(.snf)指定糊慣 信息(.acf)編程文件(.pof.sof.jed)第三方eda仿真和定吋文件(edo,vo,vho,sdo)閣 2.1 max+plus ii 編譯器定時(shí)分析器,有這樣的分析模式:時(shí)序邏輯電路性能分析模式。分析時(shí)序電路的性能,包括限制性能上冇限制的延遲, 還存最小的時(shí)鐘周期和最尚的電路丄作頻率。max+plusi
13、i的設(shè)計(jì)流程主要由設(shè)計(jì)輸入、設(shè)計(jì)編譯、功能仿真、吋序仿真、器件 編程等步驟來完成。2.2 vhdl 語言經(jīng)過多年的檢測(cè)與使用,最終工程師們吧v h d l定為標(biāo)準(zhǔn)硬件描述語言。vhdl語言的主要優(yōu)點(diǎn)是:(1) 有良好的可讀性,容易被讀者理解。(2) vhdl是通用硬件描述語言。(3) 用它從事設(shè)計(jì)工作,不用考慮線路布局問題,降低了設(shè)計(jì)的復(fù)雜度。(4) 接近于算法的推演,不必關(guān)心如何用邏輯電路實(shí)現(xiàn)這種算法的過程。vhdl語言結(jié)構(gòu)體的完整格式如下:architecture結(jié)構(gòu)體of實(shí)體名is 定義語句begin并行語句h j 并行語句2;end architecture結(jié)構(gòu)體名;vhdl屮實(shí)體的完
14、整格式如十*:entity實(shí)體名is generic (類屬表);port (端口 表);1 begin實(shí)體語句部分;end entity 實(shí)體名;它描述了一個(gè)系統(tǒng)或者電路的外觀圖。實(shí)體中的類屬和端1用來說明所設(shè)計(jì)的系統(tǒng) 或者電路與其它模塊通信的對(duì)象。實(shí)體語句部分定義實(shí)體接口中的公共信息。第三章跑表的設(shè)計(jì)3.1跑表的方案選擇方案一:設(shè)計(jì)一款基于爭(zhēng)片機(jī)的數(shù)字跑表。1. 核心用一塊at89c51和555定時(shí)器結(jié)合來完成;2. 硬件準(zhǔn)備好后,編輯程序下載、調(diào)試、試運(yùn)行;3. 試驗(yàn)成功盾將其包裝。方案二:設(shè)計(jì)一款基于fpga的數(shù)字跑表。1. 核心用fpga開發(fā)平臺(tái)和max+plusll操作平臺(tái)來完成;
15、2. 程序編輯好后,用軟件仿真運(yùn)行;3. 實(shí)驗(yàn)成功盾將其展示。方案比較:相同點(diǎn):這兩種方案的原理相似都分別由計(jì)數(shù)部分、顯示部分組成。都能按照設(shè)計(jì) 要求完成有百分秒計(jì)時(shí)功能的數(shù)字跑表。不同點(diǎn):方案一主耍是單片機(jī)來完成跑表,應(yīng)用范圍略廣,但考慮到單片機(jī)本身的特點(diǎn),不 適合結(jié)合比較高端的設(shè)備。方案二應(yīng)用領(lǐng)域比較廣泛,能結(jié)合許多設(shè)備,能夠更好、更精確的實(shí)現(xiàn)計(jì)吋功能。方案采用:根據(jù)以上方案分析和研究的可行性、價(jià)值性和意義性分析,數(shù)字跑表的設(shè)計(jì)采用方 案二。方案二設(shè)計(jì)主要山五個(gè)主要模塊組成:鍵輸入模塊(主要是消除抖動(dòng)之類的);時(shí) 鐘分頻模塊(輸出為100hz用于計(jì)吋、1khz用于數(shù)碼管動(dòng)態(tài)掃描);使能控制
16、模塊(實(shí) 現(xiàn)開始及暫停功能);計(jì)數(shù)器模塊(由模十計(jì)數(shù)器和模六計(jì)數(shù)器級(jí)聯(lián));敁示控制模塊 (包括數(shù)據(jù)選擇和顯示譯碼)。它是采用vhdl語言來設(shè)計(jì)的跑表系統(tǒng),能通過計(jì)算機(jī) 來完成,從而縮短了系統(tǒng)的開發(fā)時(shí)間,提高了系統(tǒng)的工作效率。其主要特點(diǎn)描述如下:(1)啟/停功能。在任何情況下只要按復(fù)位開關(guān),跑表都會(huì)無條件地執(zhí)行復(fù)位操作。(2) 計(jì)吋精度高于0.01秒,內(nèi)部定時(shí)時(shí)鐘信號(hào)頻率采用1000hz的吋鐘輸入信號(hào),以 24h為最長(zhǎng)計(jì)吋周期。(3) 對(duì)跑表進(jìn)行更換電源操作是由系統(tǒng)電源復(fù)位電路提供給跑表的電源復(fù)位信號(hào)來 控制跑表的復(fù)位操作。閣3.1跑表系統(tǒng)的結(jié)構(gòu)框閣3.2跑表的程序流程圖開始clr=1sl=9s
17、h=5?sh=sh+1結(jié)束圖3. 2秒計(jì)數(shù)進(jìn)程程序流程圖丌始圖3. 3分計(jì)數(shù)進(jìn)程稈序流稈圖3.3頂層設(shè)計(jì)與vhdl源代碼3.3.1頂層實(shí)體設(shè)計(jì)及vhdl源代碼在自頂向下的vhdl語言設(shè)計(jì)描述中,第一個(gè)應(yīng)該考慮的是描述頂層信號(hào)接口,如 圖3.4所示。到各個(gè)模塊到各個(gè)模塊tfsysresetelk圖3.4跑表各個(gè)模塊的迕接關(guān)系vhdl的系統(tǒng)接口是由實(shí)體說明來描述的。下面是跑表頂層實(shí)體說明的vhdl源代碼。源代碼1library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_uns
18、igned.all; entity stopwatch isport ( reset 1 : in stdjogic; on_off: in std_logic; sysreset: in stdjogic; elk : in stdjogic;choose : out std_logic_vector(7 downto 0); segment: out std_logic_vector(6 downto 0);end stopwatch;3.3.2頂層結(jié)構(gòu)體的設(shè)計(jì)因我們通常用的跑表大部分都由按鍵產(chǎn)生的,但這種操作會(huì)產(chǎn)生一定的誤差,因?yàn)?當(dāng)需要計(jì)吋的吋候你的手按下的速度,和按鍵接觸的速度以及彈
19、簧反應(yīng)的速度都直接影 響計(jì)吋的精度,因此設(shè)計(jì)一款消抖同步電路就顯的i分重要。根據(jù)大部分資料的情況, 本文采用了最普遍使用的一種消抖同步電路,結(jié)構(gòu)圖如3.5所示。cp閣3.5常用消抖同少電路根據(jù)閣3.4所示的各個(gè)模塊。將各個(gè)模塊描述如下:(1) 鍵輸入模塊復(fù)位鍵和開關(guān)鍵屬于鍵輸入模塊。這些都是跑表基本的輸入功能按鍵。(2) 吋鐘分頻模塊根據(jù)跑表要求的情況,用時(shí)鐘分頻模塊來進(jìn)行分頻,已達(dá)到各種功能模塊的需求。(3) 控制模塊控制模塊是由鍵輸入模塊導(dǎo)入信號(hào),再由相應(yīng)的程序功能分配相應(yīng)的操作,從而執(zhí) 行相應(yīng)的動(dòng)作,已完成所要控制的對(duì)象。(4) 跑表計(jì)吋模塊由輸入的控制鍵和時(shí)鐘分頻模塊的參考,跑表就根據(jù)
20、分頻數(shù)據(jù)在鍵輸入的命令下開 始計(jì)時(shí)。(5) 跑表顯示模塊由了跑表計(jì)吋模塊的數(shù)據(jù),數(shù)碼管就吋以根據(jù)提供的內(nèi)容,將其展現(xiàn)八個(gè)led七 段數(shù)碼管顯示上。3.4跑表的各個(gè)模塊分析3.4.1鍵輸入模塊因?yàn)橛卸秳?dòng)的緣故,會(huì)產(chǎn)生持續(xù)吋間長(zhǎng)短和不穩(wěn)定的情況。因此才要在跑表電路屮 加上一個(gè)鍵輸入模塊來減少誤差和抖動(dòng)現(xiàn)象。鍵輸入模塊的作用就是保證系統(tǒng)能夠撲捉 到精確的脈沖,保證每一個(gè)脈沖都能夠準(zhǔn)確無誤的被記錄i來,從而能使它產(chǎn)生一個(gè)寬 度為時(shí)鐘周期模塊的脈沖,保證時(shí)鐘周期模塊的正常讀取。如圖3-6所示它反映了開關(guān)脈沖on.offo的定時(shí)關(guān)系。jijimjlon offonoff jtmplon一offmp3ono
21、ff011 3.6鍵輸入模塊中輸入和輸ili信號(hào)的義系從圖3.6能看出:狀態(tài)控制信號(hào)on_off_tmpl是開關(guān)信號(hào)on_off在時(shí)鐘信號(hào)clkl的 下降沿進(jìn)行鎖存的鎖存信號(hào);而狀態(tài)控制信號(hào)tmp2是tmpl在吋鐘信號(hào)clkl的下降沿 進(jìn)行的鎖存信號(hào);控制信號(hào)on_off_tmp3是狀態(tài)控制信號(hào)on_off_tmp2的反相信號(hào);開 關(guān)脈沖就是時(shí)鐘信號(hào)clkl、控制信號(hào)on_off_tmpl、控制信號(hào)on_off_tmp3的邏輯與。根據(jù)圖3.6所示的定時(shí)關(guān)系對(duì)該鍵輸入模塊進(jìn)行vhdl描述,功能描述如卜*面源代 碼所示。源代碼2 library ieee;use ieee.std_logic_11
22、64.all;entity keyin isport (reset:in std_logic;on_off:in stdjogic;elk:in std_logic;clkl:in std_logic;reseto:out stdjogic;on_offo:out stdlogic);end keyin;architecture rtl of keyin issignalon_off_tmp 1: stdjogic;signalon_off_tmp2 : stdjogic;signalon一off一tmp3 : stdjogic;beginprocess(clkl)beginif ( clkl
23、 event and clkl =0)then on_off_tmp2 <= on_off_tmpl; on_off_tmp 1 <= on_off; on_off_tmp3 <= not on_off_tmp2;end if;end process;process(clk)beginif ( clkevent and elk =0)thenon_offo <= clkl and on_off_tmpl and on_off_tmp3;end if; end process;reseto <= reset;end rtl;哆ra晝k?必險(xiǎn)房23您必be慕ifi/s
24、* 5?a=o-翁明ref |0 onsname5time: 0 0nsinterval: |0 0ns0 0ns100.0ns(wmax+plus ii - k:bysjstopwatch - keyin. sef - vavefora edi tor' (jkx+plus ii £il« gditod«ytilitxas options indovreset卜 on_off -clk1 卜elkreseto on offo00000jwwlntuwltlrlnjltowjrmnrit圖3.7鍵入模塊仿真波形3.4.2時(shí)鐘分頻模塊分頻模塊的功能就是講一個(gè)
25、整的吋鐘信號(hào)進(jìn)行分割,分割成吋鐘需要的那種頻率。 如消除抖動(dòng)吋釗*信號(hào)為25hz那么就要對(duì)吋釗i進(jìn)行分配,分配給消除抖動(dòng)電路一個(gè)25hz 的頻率。跑表內(nèi)部也需要定時(shí)信號(hào),因此,也要將時(shí)鐘信號(hào)分配為一個(gè)是100hz的時(shí)鐘 信號(hào).那么就可以對(duì)一個(gè)1000hz的時(shí)鐘進(jìn)行10分頻后得到100hz,再將100hz進(jìn)行4 分頻就得到了 25hz 了。在本設(shè)計(jì)中clko是100hz的時(shí)鐘信號(hào)頻率,clkl是一個(gè)25hz 的吋鐘頻率。下面用語言來描述10分頻電路和4分頻電路。源代碼3 library ieee;use ieee.stdjogic_l 164.all; use ieee.stdogic_arit
26、h.all; use ieee.std_logic_unsigned.all;entity clk_divlo isport ( elk : in std_logic;reset : in std_logic; clk_div : out stdjogic); end clk_divlo;architecture rtl of clk_divlo issignal count:std_logic_vector (3 downto 0);beginprocess (elk) beginif ( elkevent and elk = 1 )thenif ( reset = t) thencount
27、 <= (others =o); elsif ( count = “1001”)then count <= ( others => 0);elsecount <= count +1; end if;end if; end process; process (elk) beginif ( elkevent and elk = 1 )then if( count = “1001”)thenclk_div <= 1 elseclk_div <= 0 ; end if;end if; end process;end rtl;在上面的源代碼中,第一步是將時(shí)鐘信號(hào)進(jìn)行了
28、 10分頻,第二步將時(shí)鐘信號(hào)進(jìn)行了 4分頻。這里得到的4分頻信號(hào)clkl與clko相與,所以就得到了一個(gè)有效的脈沖為 1ms的時(shí)鐘信號(hào)。uax+plus ii - h:bysjclk_div - clk_div. sef - waveform editor5ax+plus ii £ileeditgede&ssin utilities options indw qelp哆h(yuǎn)晝龍ebk?必黽易3您j園s麁 (b $涊思2 88 8pda3estart687 0nsll*ldend: 687.4nsh intefval:name:700 0ns皇81# sysreset elk00
29、00h 6 h6 h6 h 1 h 1 h 13®®cnz)®®eg®e®®0®3i0©s®®®e®®®3s®®e(ni33®®(nz®®®3e©®®®3ig©s®®®e®3®qs0®e(zxi-clk1 clko13/ div1o uo|count oi/ :66|d
30、ataa3.o dz deddataa3 0 is? _div4 u1|count 設(shè) 38|dataa1 0 l3z derldataa1 0圖3.8分頻模塊仿真波形3.4.3控制模塊控制模塊主要就是控制跑表的開始、暫停與停止,以及清零和復(fù)位,還有加減鍵的 控制??刂颇K主要的功能就是產(chǎn)生跑表的允許信號(hào),這個(gè)模塊的輸入信號(hào)就是去除抖 動(dòng)后的信號(hào),它還冇啟停信號(hào)、電源幵關(guān)信號(hào)、內(nèi)部計(jì)時(shí)信號(hào)。信號(hào)的時(shí)序關(guān)系如圖3.9所示。測(cè)刪刪刪刪jillsysreset h 或resetoon off0enable閣3.9輸入和輸出信兮的關(guān)系根據(jù)上而的時(shí)序關(guān)系,不難寫出控制模塊的vhdl描述??刂颇K的功能描
31、述如源 代碼4所示。源代碼4 library ieee;use ieee.std_logic_1164.all; entity control isport ( sysreset : in std_logic; reseto : in std_logic; on_offo : in std_logic; clko : in std一logic; enable : out stdjogic);end control;architecture rtl of control issignal strobe : stdjogic;beginprocess (sysreset,reseto,on_off
32、o) beginif (sysreset= 1 or reseto = 1 ) then strobe <= 0;elsif (on_offoevent and on_offo = 1 )then strobe <= not strobe;end if; end process;enable <= strobe;end rtl;l,ax+plns ii - h:bysjstopratch -【control, scf - waveform editor mkx+plus ii file edit view node assign utilities options windo
33、w help閣3.1()控制模塊仿真波形3.4.4跑表計(jì)時(shí)模塊跑表計(jì)吋模塊主耍就是面對(duì)跑表的計(jì)吋工作,由系統(tǒng)分頻來支配計(jì)時(shí)的工作,巾控 制電路的信號(hào)來安排跑表。計(jì)時(shí)模塊有八個(gè)部分組成,它們分別是:小時(shí)十位信號(hào)、小 時(shí)各位信號(hào)、分十位、分個(gè)位、秒十位、秒個(gè)位、秒0.1、秒0.01信號(hào)組成的。它是講1個(gè)三進(jìn)制計(jì)數(shù)器、5個(gè)十進(jìn)制和2個(gè)六進(jìn)制的計(jì)數(shù)器串連在一起的,從而 來實(shí)現(xiàn)這個(gè)跑表計(jì)吋模塊的功能效果。由以上條件和功能形成的跑表的計(jì)吋模塊的結(jié)構(gòu)框圖如3.4所示。下而我們就耍用源代碼來描述一下三進(jìn)制的、六進(jìn)制的和十進(jìn)制的計(jì)數(shù)器 源代碼5 library ieee;use ieee.std_logic_l
34、 164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity countlo isport ( reset: in std_logic;enable : in stdjogic; elk: in std_logic;cout : out stdjogic; q : out std_logic_vector(3 downto 0);end countlo;architecture rtl of countlo issignal q_tmp : std_logic_vector(3 downto 0)
35、;beginprocess(clk)beginif (elkevent and elk = 1 )then if (reset = 1)thenq_tmp <= (others => 0); elsif (enable = 1 )thenif (q_tmp =”1001”)then q_tmp <= (others => 0);elseq_tmp <= q_tmp+l;end if;end if; end if;q <= q_tmp; end process;cout <= 1 when q_tmp =1001” and enable =l else
36、0;end rtl;閣3.11跑表計(jì)時(shí)模塊的結(jié)構(gòu)框閣在這些計(jì)時(shí)的vhdl語言描述中,用元件形式調(diào)用計(jì)數(shù)器。但跑表的計(jì)時(shí)模塊的 vhdl源代碼如t所示max+plus ii h:byxjclk div tiatcounttr. xcf - vtvtform editorj max+plus ii filt edit vie* nodea:si gn utili ti es options window help哆0昌必險(xiǎn)恩舀曲泌為崮癦齒$涊2龍睜ref |0 0nstime: 170 8nsinterval: 1170 8nsname卜 sysreset 滬reseto 卜 enable 卜 c
37、lko hr10 菱hr mir)10 min sec 10secsec01 sec001 |count10:u0|q nl10 uolqjmp ;77|dataa3.o der|dataa3 0010hohohohohohohohohohohohoiljj000000ol16 丄 7g89x0l 1j6丄 7 丄 8 丄 9011 丄:6 _xz 78l 9丄:6 jl 78 丄 9 丄 0!(_1 工6 x 7x 8r 9x 0x1x :200.0ns300.0ns閣3.12計(jì)時(shí)模塊仿真波形3.4.5跑表顯示模塊跑表的理論上已經(jīng)成立y,但要想供大家觀測(cè)吸入信息,所以還是需要八個(gè)七段的 le
38、d顯示數(shù)碼管來展現(xiàn)給大家信息。跑表顯示模塊的結(jié)構(gòu)框閣如閣3.13所示。hrlominlominseclosecsecolsecool計(jì)時(shí)位選擇電路7 6 5 4 3 2q(0)(0qq七段顯示譯碼segment(0) segment(1) segment(2) segment(3) segment(4) segment(5) segment elkr qclkcount8sysreset顯示位選擇譯碼choose (0) choose (1) choose (2) choose (3) choose (4) choose (5) choose (6) choose (7閣3.13跑表顯示模塊的
39、結(jié)構(gòu)桐閣跑表的顯示模塊由counts位選擇電路、譯碼電路、位選擇譯碼四個(gè)電路部分組成。 卜*面就來描述一下顯示模塊的電路。首先描述的是八進(jìn)制計(jì)數(shù)器counts,這個(gè)八進(jìn)制計(jì)數(shù)器沒冇使能端口 enable和進(jìn)位輸出端口 cout,它的結(jié)構(gòu)與計(jì)數(shù)器的結(jié)構(gòu)基本上是 相同的。它的電路vhdl語言的描述如源代碼6所示。源代碼6 library ieee;use ieee.std_logic_l 164.all; use ieee.stdogic_arith.all; use ieee.std_logic_unsigned.all; entity count8 isport ( reset : in st
40、djogic; elk : in stdjogic;sel : out std_logic_vector(2 downto 0);end count8;architecture rtl of count8 issignal sel_tmp : std_logic_vector(2 downto 0);beginprocess(clk)beginif (clkevent and elk = 1 )then if (reset = 1)thensel_tmp <二(others => 0); elsif (seljmp 111 ”)thensel_tmp <= (others =
41、> 0);elsesel_tmp <= sel_tmp+1; end if;end if;sel <= sel_tmp;end process; end rtl;顯示位選的電路功能是根據(jù)counts的輸出來表示的,吋將他的信號(hào)傳輸?shù)揭粋€(gè)七段 顯示數(shù)碼管的choose信號(hào)上。當(dāng)輸出為000吋,這里的選通信號(hào)就被翻譯成丫 00000001 了。具體的敁示位選的譯碼電路的vhdl的描述如下所示。計(jì)時(shí)位選電路的輸出端口的計(jì)時(shí)數(shù)據(jù)的位數(shù)三種。分別是2位的、3位和4位的計(jì) 時(shí)數(shù)據(jù)。segment(0)segment(5)segment(1)segment segment c4)|segm
42、ent(2)segment(3)圖3.14 segment信號(hào)與數(shù)碼管的關(guān)系上面對(duì)的是數(shù)碼管其中一位的敁示模塊,它由七個(gè)塊組成的,每個(gè)位置都代表著一 個(gè)信號(hào)由0、1、2、3、4、5、6來組成的信號(hào)體。七段顯示譯碼電路vhdl描述如源代碼7所示。 源代碼7 library ieee;use ieee.std_logic_1164.all;entity seg7 isport (q : in std_logic_vector(3 downto 0); segment: out std_logic_vector(6 downto 0);end seg7;architecture rtl of seg
43、7 isbeginprocess(q)begincase q iswhen“0000” =segment <=“0111111”;when“0001” =segment <= “0000110”;when“0010” =segment <= “1011011”;when“0011”=segment <=“1001111”;when“0100” =segment <= “1100110”;when“0101” =segment <= “1101101”;when“0110”=segment <=“1111101”;when“01h” =segment &
44、lt;= “0100111”;when“1000” =segment <=“1111111”;when“1001”=segment <=“1101111”;whenothers => segment <= “00000000”;end case;end process;end rtl ;對(duì)跑表姑示模塊中的四個(gè)子電路描述以后,就可以進(jìn)行跑表兄示模塊的總體功能描述了。d運(yùn)h晝* max+plus ii £ile £di 1 yiew kode &ssi(n utilities options windowref |0 0nsj0e time: j
45、o.onsinterval: |0 0ns0.0nsname.100 0ns200.0nssysreseti>- elkni hr10min10min sec 10sech 1 h2 h3h4h5h6seedh 7sec001h 8choosesegmenti3? |count8 uoiselh7fhofefd27if7jfbkx7dva45678lrdfsefvfi6d66yllbfii4f-iyfdva-fi7fya5b27y-7dd/ t8 u0|seljmp :56|dataa2 0dl/ der|dataa2 0 q/ ecoder:ll1|sel liz choose u2|
46、selhohohohoho0x 1x2x34x5!6x70 1x230x 1x2x34x5t6x7x0x 1x2k30x 1x2x34i5i6x7x0x 1x2k30x 12t34x56x7x0x 1x2k30x 1i2i34x5i6x7x0x 1i2x3圖3.15顯示模塊仿真波形3.5仿真結(jié)果 仿真步驟:(1) 建立一個(gè)波形編輯文件:file-new-waveform editor file;(2) 鼠標(biāo)指到左邊區(qū)域,左鍵一衣鍵,選中;(3) list-移動(dòng)管腳-ok,把仿真用的管腳凋出來;(4) 設(shè)定參數(shù):options-grid size;file-end time;view-time
47、range;(5) 給定輸入信號(hào);(6) 保存.scf文件;(7) max+plus ii -simulator。仿真波形圖如圖3.16所示。start: 196.2nsll 呤i end: 1197.8ns| interval: 1.6nsnamesysreset reset 1900.0nson-off iclkchoose © segment lz div10:u0|count 離 66|dataa3 0 i2z der|dataa3.o 敵 _di'4:u1|count 參:38|dataa1.0derldataa1 0 渺 ounter u3|hr10 敝 _cou
48、nter:u3|hr nter:u3|min10 微 ounte:u3|min 敵 nter:u3|sec10 歌 ounter:u3|sec 敝 nter:u3|seco1 ter:u3|sec001 渺 |count10:u0|q000daoiimhzniie0gaemkmin®eaeinh3fh7h7h7h3h3h3hohohohohohohohoho3fuouuli000iiiik000000222iii3331iii3.16跑表的仿真波形結(jié)語畢業(yè)設(shè)計(jì)就要結(jié)束了,在整個(gè)研究設(shè)計(jì)的過程中,我收獲了許多許多。剛幵始做畢 業(yè)設(shè)計(jì)的時(shí)候是激情澎湃,把畢業(yè)設(shè)計(jì)想的很簡(jiǎn)單,以為跟以往的課
49、程設(shè)計(jì)一樣,隨便 寫寫就完事了,還準(zhǔn)備速戰(zhàn)速?zèng)Q解決掉論文。但是,剛開始做的時(shí)候就發(fā)現(xiàn)原來搞一項(xiàng) 研究并不像想象的那樣簡(jiǎn)單。剛開始做的時(shí)候就發(fā)現(xiàn)自己的知識(shí)漏洞好多,僅僅靠專業(yè) 課木知識(shí)解決不y問題的,在著手之前還必須學(xué)習(xí)相關(guān)的知識(shí)。在硬件調(diào)試過程屮,總 是出現(xiàn)大量莫名其妙的錯(cuò)誤和警告,有的要花費(fèi)好長(zhǎng)時(shí)問才能分析出來問題所在,還要 去結(jié)合相關(guān)的知識(shí)去調(diào)試修改。當(dāng)然,當(dāng)看到自己所設(shè)計(jì)的跑表在精確地計(jì)時(shí)的時(shí)候還 是很宥成就感還是很欣慰的??傊敬萎厴I(yè)設(shè)計(jì)后讓我真正體驗(yàn)到了科學(xué)研究中那種一絲不茍的嚴(yán)謹(jǐn)工作態(tài)度, 使我掌握丫對(duì)vhdl硬件描述語言的熟練運(yùn)用,培養(yǎng)y我采用理論聯(lián)系實(shí)際的策略方 法,提高了分
50、析、解決計(jì)算機(jī)技術(shù)的實(shí)際問題的獨(dú)立工作能力,能對(duì)數(shù)字跑表進(jìn)行擴(kuò)展, 了解了科學(xué)研究與系統(tǒng)丌發(fā)的整體分析的步驟,并能史熟練地運(yùn)用max+plus ii y臺(tái)對(duì) 設(shè)計(jì)進(jìn)行編譯、仿真,以及選用器件,完成系統(tǒng)的功能。通過本次設(shè)計(jì),也使我的專業(yè) 知識(shí)得到拓展,科研的素質(zhì)得到提升,這些都將對(duì)我以后的學(xué)和工作以及研究?jī)雍艽?的幫助。致謝畢業(yè)設(shè)計(jì)任務(wù)已經(jīng)接近了尾聲,這也標(biāo)志著大學(xué)生活將要両上了句號(hào)。在這段時(shí)問 里,我一直在老師的指導(dǎo)下從事畢業(yè)設(shè)計(jì)的學(xué)習(xí)和研究。經(jīng)過一學(xué)期的辛勤努力,此次 的畢業(yè)設(shè)計(jì)也到了收尾的階段,畢業(yè)設(shè)計(jì)的成果是用來檢驗(yàn)一個(gè)木科生的大學(xué)期間學(xué)習(xí) 到的知識(shí)水平,由于經(jīng)驗(yàn)的不足,在做畢業(yè)設(shè)計(jì)的時(shí)
51、候總會(huì)冇一些考慮不到的地方,所 以如果沒有指導(dǎo)老師的指點(diǎn)和傳授經(jīng)驗(yàn),以及在同一吋間做設(shè)計(jì)的同學(xué)們的幫助,想去 很好的完成本次畢業(yè)設(shè)計(jì)是閑難的。在這里首先耍感謝趙老師。迪然老師代的課程較多,工作較忙,但作為我的指導(dǎo)老 師在做設(shè)計(jì)的過程中,包括從最開始杳閱什么參考資料,到開始擬定畢業(yè)設(shè)計(jì)題目,然 后編寫開題報(bào)告和論文草稿的確定,以及后期詳細(xì)設(shè)計(jì)過程等丁老師都給予了我嚴(yán)謹(jǐn)細(xì) 心的指點(diǎn)。并且在設(shè)計(jì)屮有我不太懂不太會(huì)的地方,丁老師都會(huì)不厭其煩的指導(dǎo)我學(xué)習(xí), 認(rèn)真糾正其中每個(gè)不該有的錯(cuò)誤。其次還耍感激在學(xué)校學(xué)習(xí)期間所有教導(dǎo)老師,認(rèn)真負(fù)責(zé)的教導(dǎo)我們,讓我們打下堅(jiān) 實(shí)的專業(yè)知識(shí)基礎(chǔ)。同時(shí)還要感謝身邊互幫互助一
52、起努力的同學(xué),正是你們的鼓勵(lì)才能 讓我在繁雜的設(shè)計(jì)上堅(jiān)持到底,并且最終順利的做完本次畢業(yè)設(shè)計(jì)。還要感謝在大學(xué)里的各位傳道授業(yè)解惑的老師們,使我掌握y扎實(shí)的基礎(chǔ)知識(shí)和技 能,這為畢業(yè)設(shè)計(jì)的完成奠定了堅(jiān)實(shí)的理論基礎(chǔ)。感謝本次和我一起認(rèn)真做畢業(yè)設(shè)計(jì)的 同學(xué)們,與他們的交流,不僅讓我學(xué)到了有關(guān)專業(yè)方面的許多知識(shí),而且也從他們身上 學(xué)到了許多優(yōu)秀的品質(zhì)。感謝和我一起生活的室友,正是因?yàn)殄读怂麄兊闹С趾凸膭?lì), 冰讓我的生活充滿快樂與溫馨。再次h'd身邊所冇的同學(xué)、朋友、老師表示衷心的感謝! 最后感謝我的母校安陽工學(xué)院這w年來的全力培養(yǎng)。參考文獻(xiàn)1 姜立東編著.vhdl語言程序設(shè)計(jì)及應(yīng)用.北京:郵電
53、大學(xué)出版社,2010.2 王志鵬編著.可編程邏輯器件開發(fā)器件max+plusii.北京:國防工業(yè)出版社,2009.3 姜雪松,吳鈺淳,王鷹編著.vhdl設(shè)計(jì)實(shí)例與仿真.北京:機(jī)械工業(yè)出版社,2012.4 廖裕評(píng)編著.使用max+plusii入門篇.天津:天津大學(xué)出版社,2008.5 孟慶海,張洲編著.vhdl基礎(chǔ)及經(jīng)典實(shí)例開發(fā).兩安:兩安交通人學(xué)出版社,2008.6 潘松,黃繼業(yè)編著.eda技術(shù)與vhdl.北京:清華大學(xué)出版社,2011.7 楊恒編著.fpgacpld最新實(shí)用技水指南.北京:清華大學(xué)出版社,2011.8 朱如琪.fpga設(shè)計(jì)實(shí)踐教程m.北京:科學(xué)出版社,2011.9 黃智偉.fpga系統(tǒng)設(shè)計(jì)與實(shí)踐m.北京:電子工業(yè)出版社,2012.10 李宥謀.基于verilog的fpga設(shè)計(jì)基礎(chǔ)m.西安:西安電子科技大學(xué)出版社,2013 .11 黃焱fpga應(yīng)用開發(fā)入門與經(jīng)典實(shí)例,人民郵電出版社出版,2012年7月12 陳賾fpga/cpld與asic設(shè)計(jì)實(shí)踐教程科學(xué)出版社,2010年9月13 張強(qiáng).基fpga的多功能數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)j .儀器表用戶,2010,14 葛澎.fpga時(shí)鐘設(shè)計(jì)j.現(xiàn)代電子技術(shù),2011.915 劉明章.基于fpga的嵌入式系統(tǒng)設(shè)計(jì).北京:國防工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)計(jì)專業(yè)大一學(xué)期計(jì)劃范文
- 鄉(xiāng)鎮(zhèn)文化站建成文藝晚會(huì)主持詞
- 七夕節(jié)促銷活動(dòng)方案
- 范文新學(xué)期學(xué)習(xí)計(jì)劃范文集錦十篇
- 個(gè)人工作總結(jié)(集錦14篇)
- 高等數(shù)學(xué)教程 上冊(cè) 第4版 測(cè)試題 高數(shù)1-測(cè)試二
- 荒山租地合同協(xié)議書(2篇)
- 分段計(jì)費(fèi)說課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《汽車電氣設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《計(jì)算機(jī)設(shè)計(jì)》2022-2023學(xué)年期末試卷
- 教育家精神專題講座課件
- 第三單元 雪域天音 -熱巴舞曲 課件 2023-2024學(xué)年人音版初中音樂八年級(jí)上冊(cè)
- 社區(qū)電動(dòng)車棚新(擴(kuò))建及修建充電車棚施工方案(純方案-)
- 介紹方志敏(修訂版)
- 信息技術(shù)教師專業(yè)發(fā)展
- 公職人員廉潔自律課件
- 建筑工程精細(xì)化管理培訓(xùn)講解
- 學(xué)校領(lǐng)導(dǎo)測(cè)驗(yàn)題目和答案(經(jīng)過打印)
- 風(fēng)景園林專業(yè)職業(yè)生涯規(guī)劃
- 食品安全員崗位的主要職責(zé)范本
- 《構(gòu)成基礎(chǔ)》課程習(xí)題及答案
評(píng)論
0/150
提交評(píng)論