基于FPGA的搶答器設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第1頁
基于FPGA的搶答器設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第2頁
基于FPGA的搶答器設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第3頁
基于FPGA的搶答器設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第4頁
基于FPGA的搶答器設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文)基于fpga的搶答器設(shè)計(jì)摘 要本文介紹了一種采用eda技術(shù),基于fpga并在quartus工具軟件環(huán)境下使用verilog硬件描述語言編寫的數(shù)碼管顯示4路搶答器的電路設(shè)計(jì)。本次設(shè)計(jì)的搶答器能夠同時(shí)供應(yīng)4位選手或者4個(gè)代表隊(duì)進(jìn)行搶答比賽,分別使用4個(gè)按鈕a,b,c,d表示。同時(shí)需要設(shè)置系統(tǒng)復(fù)位和搶答控制開關(guān),這需由主持人控制。主持人在允許搶答的情況下,計(jì)時(shí)器開始從30s開始倒計(jì)時(shí),直到有人搶答成功后,由鎖存器將時(shí)間鎖存住,此時(shí)數(shù)碼管上將顯示剩余時(shí)間及搶答成功選手號(hào)碼,同時(shí)對(duì)應(yīng)選手的led燈也被點(diǎn)亮。在判斷選手是否回答正確后,由主持人控制加減按鈕進(jìn)行給分。在一輪比賽

2、結(jié)束后,主持人按下復(fù)位按鈕,則除了計(jì)分模塊外,其他模塊都復(fù)位為初始時(shí)刻,為下一輪的比賽做好準(zhǔn)備。系統(tǒng)芯片主要采用ep2c8q208,由搶答判別模塊,計(jì)時(shí)模塊,分頻器模塊,計(jì)分模塊,鎖存器模塊,數(shù)碼管驅(qū)動(dòng)模塊組成。經(jīng)過編譯及其仿真所設(shè)計(jì)的程序,該設(shè)計(jì)的搶答器基本能夠?qū)崿F(xiàn)此次設(shè)計(jì)的要求,從而完成了搶答器應(yīng)具備的功能。關(guān)鍵詞:搶答器,數(shù)碼顯示,硬件描述語言,可編程邏輯門陣列fpga-based responder designabstractthis article introduces the design of 4 answering device circuit using an eda te

3、chnology verilog hdl language in fpga and quartus environment.at the same time,the 4 answering device circuit is displayed by the digital.the responder can also supply four players or four teams to answer in the game, respectively, using four buttons a, b, c, d. setting reset and answer in a system

4、control switch, which controls required by the moderator. when the moderator allows to answer, the timer starts counts down from the 30s until someone answers successfully, by the time the latch latches will to live, then the remaining time and the number of the player who responds successfully will

5、 be displayed on the digital tube, at the same time the led of the corresponding player lights will be lighted. determined whether the contestant answers correctly, the moderator will give points by controlling the addition and subtraction button. at the end of the game, the moderator presses the re

6、set button, others modules are reseted to the initial time for the next round of the game except the scoring module.the system uses mainly the ep2c8q208. at the same time the system is made from the answer in decision block, timing module, divider block, scoring module latch module, led driver modul

7、es. after compilation and simulation of the design process, the design responder can basically achieve the design requirements, thus completing the responder function.key words:responder, digital display, hdl ,fpga目錄前言1第1章 緒論3§1.1選題背景3§1.1.1eda技術(shù)發(fā)展3§1.1.2課題研究的必要性4§1.2研究課題的內(nèi)容4第2章

8、系統(tǒng)方案設(shè)計(jì)6§2.1fpga簡(jiǎn)介6§2.1.1fpga芯片結(jié)構(gòu)8§2.1.2fpga設(shè)計(jì)流程12§2.1.3fpga軟件設(shè)計(jì)13§2.1.4fpga的應(yīng)用14§2. 2verilog hdl概述15§2.2.1verilog hdl簡(jiǎn)介15§2.2.2verilog hdl主要功能16§2.2.3verilog hdl與vhdl的區(qū)別16§2.3搶答器總體設(shè)計(jì)方案17§2.3.1搶答器構(gòu)成18§2.3.2搶答器工作原理18第3章 搶答器模塊設(shè)計(jì)與實(shí)現(xiàn)19§3.1搶

9、答判別模塊19§3.2數(shù)碼管驅(qū)動(dòng)模塊20§3.3計(jì)時(shí)模塊22§3.4分頻器模塊23§3.5計(jì)分模塊23§3.6鎖存模塊24§3.7總體模塊25第4章 搶答器程序設(shè)計(jì)、實(shí)現(xiàn)與仿真26§4.1搶答判別程序設(shè)計(jì)26§4.2數(shù)碼管驅(qū)動(dòng)模塊程序設(shè)計(jì)28§4.3計(jì)時(shí)模塊程序設(shè)計(jì)29§4.4分頻模塊程序設(shè)計(jì)31§4.5計(jì)分模塊程序設(shè)計(jì)32§4.6鎖存模塊程序設(shè)計(jì)36結(jié) 論38參考文獻(xiàn)39致謝41附錄4271河南科技大學(xué)本科畢業(yè)設(shè)計(jì)(論文)前言隨著人類社會(huì)的高速發(fā)展,電子行業(yè)也隨之迅猛的發(fā)展

10、,這也使得人們?cè)絹碓较敕皆O(shè)法的是自己更加方便、輕松的生活,例如:自從有了電視遙控器開啟電視,更改電視頻道,我們?cè)僖膊挥门軄砼苋ビ檬指膿Q頻道;自從有了全自動(dòng)洗衣機(jī),我們?cè)僖膊挥冒胱詣?dòng)洗衣機(jī)或者人工搓衣板去清洗衣服;自從有了交通燈,不僅省去了很多人力去指揮交通,而且使交通更加井然有序。當(dāng)然,當(dāng)具有定時(shí)、顯示、加減分等多功能性的搶答器擺在我們面前時(shí),我想人們不會(huì)用舉手的方式或者舉牌的方式進(jìn)行搶答了。如今無論是什么場(chǎng)合,只要舉辦搶答比賽,我們都能見到搶答器的使用,因?yàn)樗钥陀^的電子電路進(jìn)行狀態(tài)判斷,避免了競(jìng)賽中出現(xiàn)的人為的失誤,或者由于某些原因造成的不公平。搶答器能夠準(zhǔn)確、公正的判斷誰是第一搶答者,并

11、且直觀的指出誰是第一搶答者。由于其附加的定時(shí)、加減分等功能則能夠省去部分人力,且更準(zhǔn)確的規(guī)范時(shí)間?,F(xiàn)在市面上也存在著各種各樣的搶答器,但主要流行的是單片機(jī)搶答器和數(shù)字搶答器,雖然這兩款搶答器都能實(shí)現(xiàn)搶答器的基本功能,但是都或多或少的存在著一些缺點(diǎn)。單片機(jī)搶答器的設(shè)計(jì)??刂葡到y(tǒng)主要由單片機(jī)應(yīng)用電路、存儲(chǔ)器接口電路、顯示接口電路組成。其中單片機(jī)89c51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作.。雖然單片機(jī)實(shí)現(xiàn)起來相當(dāng)靈活,但隨著搶答器數(shù)組的增加則存在著i/o口不足的問題。這就不能為以后進(jìn)行搶答器組數(shù)的增加進(jìn)行改進(jìn)了。數(shù)字搶答器的設(shè)計(jì)。數(shù)字搶答器電路主要是由電子元器件組成,數(shù)字搶答器由主體

12、電路與擴(kuò)展電路組成。雖然數(shù)字電路主要有元器件組成,成本較為便宜,且小規(guī)模數(shù)字邏輯設(shè)計(jì)思路簡(jiǎn)單,但是電路實(shí)現(xiàn)起來比較麻煩:進(jìn)行電路規(guī)劃,用protel99畫出電路的pcb板,硬件的焊接與調(diào)試等等程序步驟??傊布O(shè)計(jì)不僅工作量大,而且要求也高。介于上面兩款搶答器的不足點(diǎn),本次設(shè)計(jì)則采用fpga現(xiàn)場(chǎng)可編程技術(shù),這樣就避免了硬件的焊接與調(diào)試,同時(shí)由于fpga的i/o端口豐富,可以在設(shè)計(jì)的基礎(chǔ)上略加修改實(shí)現(xiàn)多組輸入的搶答器,增強(qiáng)了系統(tǒng)的靈活性。本文介紹了一種采用eda技術(shù),基于fpga并在quartus工具軟件環(huán)境下使用verilog硬件描述語言編寫的數(shù)碼管顯示4路搶答器的電路設(shè)計(jì)、設(shè)計(jì)思路以及實(shí)現(xiàn)功

13、能。本次設(shè)計(jì)以ep2c8q208為核心,完成主持人的控制與參賽隊(duì)伍的搶答功能;使用quartus ii軟件用verilog hdl完成代碼編寫,然后用quartus ii軟件實(shí)現(xiàn)正確的波形仿真作為主要的技術(shù)指標(biāo)。根據(jù)本次設(shè)計(jì)的技術(shù)要求,特設(shè)計(jì)了以下各種模塊來實(shí)現(xiàn)搶答器的基本功能:搶答判別模塊,計(jì)時(shí)模塊,分頻器模塊,計(jì)分模塊,鎖存器模塊,數(shù)碼管驅(qū)動(dòng)模塊等等。經(jīng)過編譯及其仿真所設(shè)計(jì)的程序,該設(shè)計(jì)的搶答器基本能夠?qū)崿F(xiàn)此次設(shè)計(jì)的要求,從而完成了搶答器應(yīng)具備的功能。第1章 緒論§1.1 選題背景§1.1.1 eda技術(shù)發(fā)展eda是電子設(shè)計(jì)自動(dòng)化(electronic designau

14、tomation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測(cè)試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來的。eda技術(shù)是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。利用eda工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出ic版圖或pcb版圖的整個(gè)過程的計(jì)算機(jī)上自動(dòng)處理完成。eda工具軟件可大致可分為芯片設(shè)計(jì)輔助軟件、可編程芯片輔助設(shè)計(jì)軟件、系統(tǒng)設(shè)計(jì)輔助軟件等三類。目前進(jìn)入我國(guó)并具有廣泛影

15、響的eda軟件是系統(tǒng)設(shè)計(jì)軟件輔助類和可編程芯片輔助設(shè)計(jì)軟件:protel、altium designer、pspice、multisim12(原ewb的最新版本)、orcad、pcad、lsiiogic、microsim、ise、modelsim、matlab等等。這些工具都有較強(qiáng)的功能,一般可用于幾個(gè)方面,例如很多軟件都可以進(jìn)行電路設(shè)計(jì)與仿真,同時(shí)還可以進(jìn)行pcb自動(dòng)布局布線,可輸出多種網(wǎng)表文件與第三方軟件接口。利用eda技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì),具有以下特點(diǎn):(1) 用軟件的方式設(shè)計(jì)硬件;用軟件方式設(shè)計(jì)的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的考法軟件自動(dòng)完成的;(2) 設(shè)計(jì)過程中可用有關(guān)軟件進(jìn)行各種

16、仿真;(3) 系統(tǒng)可現(xiàn)場(chǎng)編輯,在線升級(jí);(4) 整個(gè)系統(tǒng)可集中在一個(gè)芯片上,體積小、功耗低、可靠性高;(5) 從以前的“組合設(shè)計(jì)”轉(zhuǎn)向真正的“自由設(shè)計(jì)”;(6) 設(shè)計(jì)的移植性好,效率高;(7) 非常適合分工設(shè)計(jì),團(tuán)體協(xié)作。因此,eda技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。§1.1.2 課題研究的必要性現(xiàn)行的搶答的實(shí)現(xiàn)方案主要有兩種:一種則是使用單片機(jī),另一種是小規(guī)模數(shù)字邏輯芯片和觸發(fā)器。單片機(jī)搶答器的設(shè)計(jì)。控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲(chǔ)器接口電路、顯示接口電路組成。其中單片機(jī)at89c51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作.。然而現(xiàn)如今單片機(jī)組成的搶答器也存在著一些缺點(diǎn),或

17、者應(yīng)該說是不足點(diǎn),雖然單片機(jī)實(shí)現(xiàn)起來相當(dāng)靈活,但隨著搶答器數(shù)組的增加則存在著i/o口不足的問題。這就不能為以后進(jìn)行搶答器組數(shù)的增加進(jìn)行改進(jìn)了。數(shù)字搶答器的設(shè)計(jì)。數(shù)字搶答器電路主要是由電子元器件組成,數(shù)字搶答器由主體電路與擴(kuò)展電路組成。優(yōu)先編碼器、鎖存器、譯碼電路將參賽隊(duì)的輸入信號(hào)在顯示器上輸出;用控制電路和主持人開關(guān)啟動(dòng)報(bào)警電路,以上兩部分組成主體電路。通過定時(shí)電路和譯碼電路將脈沖產(chǎn)生的信號(hào)在顯示器上輸出實(shí)現(xiàn)計(jì)時(shí)功能,構(gòu)成擴(kuò)展電路。雖然數(shù)字電路主要有元器件組成,成本較為便宜,且小規(guī)模數(shù)字邏輯設(shè)計(jì)思路簡(jiǎn)單,但是電路實(shí)現(xiàn)起來比較麻煩:進(jìn)行電路規(guī)劃,用protel99畫出電路的pcb板,硬件的焊接與

18、調(diào)試等等程序步驟??傊布O(shè)計(jì)不僅工作量大,而且要求也高?,F(xiàn)存的搶答器設(shè)計(jì)方案雖然都能實(shí)現(xiàn)搶答器的功能,但是又由于它們自身缺點(diǎn)的限制,有些方面很難或者說很麻煩實(shí)現(xiàn)。然而由于fpga本身一些的特點(diǎn)、優(yōu)點(diǎn)能夠使基于fpga制作的搶答器克服這些問題。fpga作為新技術(shù)具有以下優(yōu)點(diǎn):(1) fpga的管腳多,容易實(shí)現(xiàn)大規(guī)模系統(tǒng)。(2) fpga的運(yùn)行速度快。(3) fpga內(nèi)部程序并行運(yùn)行,有處理更復(fù)雜的功能。(4) fpga有大量的軟核,能夠進(jìn)行二次開發(fā)。所以學(xué)習(xí)fpga并利用fpga進(jìn)行搶答器的設(shè)計(jì)是十分必要的。§1.2 研究課題的內(nèi)容本次設(shè)計(jì)的搶答器能夠同時(shí)供應(yīng)4位選手或者4個(gè)代表隊(duì)進(jìn)

19、行搶答比賽,分別使用4個(gè)按鈕a,b,c,d表示。同時(shí)需要設(shè)置系統(tǒng)復(fù)位和搶答控制開關(guān),這需由主持人控制。主持人在允許搶答的情況下,計(jì)時(shí)器開始從30s開始倒計(jì)時(shí),直到有人搶答成功后,由鎖存器將時(shí)間鎖存住,此時(shí)數(shù)碼管上將顯示剩余時(shí)間及搶答成功選手號(hào)碼,同時(shí)對(duì)應(yīng)選手的led燈也被點(diǎn)亮。在判別選手是否回答正確后,由主持人控制加減按鈕進(jìn)行給分。在一輪比賽結(jié)束后,主持人按下復(fù)位按鈕,則除了計(jì)分模塊外,其他模塊都復(fù)位為初始時(shí)刻,為下一輪的比賽做好準(zhǔn)備。第2章 系統(tǒng)方案設(shè)計(jì)§2.1 fpga簡(jiǎn)介fpga(fieldprogrammable gate array),即現(xiàn)場(chǎng)可編程門陣列,它是在pal、ga

20、l、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。其主要特點(diǎn)如下:(1) 采用fpga設(shè)計(jì)asic電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。(2) fpga可做其它全定制或半定制asic電路的中試樣片。(3) fpga內(nèi)部有豐富的觸發(fā)器和i/o引腳。(4) fpga是asic電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。(5) fpga采用高速cmos工藝,功耗低,可以與cmos、ttl電平兼容??梢哉f,fpga芯片是小批量系統(tǒng)提高系統(tǒng)集

21、成度、可靠性的最佳選擇之一。fpga是由存放在片內(nèi)ram中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的ram進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),fpga芯片將eprom中數(shù)據(jù)讀入片內(nèi)編程ram中,配置完成后,fpga進(jìn)入工作狀態(tài)。掉電后,fpga恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,fpga能夠反復(fù)使用。fpga的編程無須專用的fpga編程器,只須用通用的eprom、prom編程器即可。當(dāng)需要修改fpga功能時(shí),只需換一片eprom即可。這樣,同一片fpga,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,fpga的使用非常靈活。目前以硬件描述語言(verilo

22、g hdl或 vhdl)所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn) 單的綜合與布局,快速的燒錄至fpga上進(jìn)行測(cè)試,是現(xiàn)代ic設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如and、or、xor、not)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的fpga里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flipflop)或者其他更加完整的記憶塊。fpga一般來說比asic(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),但是功耗較低。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的fpga。因?yàn)?/p>

23、這些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的fpga上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于asic的芯片上。另外一種方法是用cpld(復(fù)雜可編程邏輯器件備)。根據(jù)市場(chǎng)上對(duì)fpga的需要,則fpga的主要分類有以下幾種:1) 按邏輯功能塊的大小分類可編程邏輯塊是fpga的基本邏輯構(gòu)造單元。按照邏輯功能塊的大小不同,可將fpga分為細(xì)粒度結(jié)構(gòu)和粗粒度結(jié)構(gòu)兩類。細(xì)粒度fpga的邏輯功能塊一般較小,僅由很小的幾個(gè)晶體管組成,非常類似于半定制門陣列的基本單元,其優(yōu)點(diǎn)是功能塊的資源可以被完全利用,缺點(diǎn)是完成復(fù)雜的邏輯功能需要大量的連線和開關(guān),因而速度慢;粗粒度fpga的邏輯塊規(guī)模大,功能強(qiáng),完

24、成復(fù)雜邏輯只需較少的功能塊和內(nèi)部連線,因而能獲得較好的性能,缺點(diǎn)是功能塊的資源有時(shí)不能被充分利用。近年來隨著工藝的不斷改進(jìn),fpga的集成度不斷提高,硬件描述語言(hdl)的設(shè)計(jì)方法得到了廣泛應(yīng)用。由于大多數(shù)邏輯綜合工具是針對(duì)門陣列的結(jié)構(gòu)開發(fā)的,細(xì)粒度的fpga較粗粒度的fpga可以得到更好的邏輯綜合結(jié)果,因此許多廠家開發(fā)出了一些具有更高集成度的細(xì)粒度fpga,如xilinx公司采用microvia技術(shù)的一次編程反熔絲結(jié)構(gòu)的xc8100系列,gatefield公司采用閃速eprom 控制開關(guān)元件的可再編程gf100k系列等,它們的邏輯功能塊規(guī)模相對(duì)都較小。2) 按互連結(jié)構(gòu)分類根據(jù)fpga內(nèi)部的

25、連線結(jié)構(gòu)不同,可將其分為分段互連型和連續(xù)互連型兩類。分段互連型fpga中有不同長(zhǎng)度的多種金屬線,各金屬線段之間通過開關(guān)矩陣或反熔絲編程連接。這種連線結(jié)構(gòu)走線靈活,有多種可行方案,但走線延時(shí)與布局布線的具體處理過程有關(guān),在設(shè)計(jì)完成前無法預(yù)測(cè),設(shè)計(jì)修改將引起延時(shí)性能發(fā)生變化。連續(xù)互連型fpga是利用相同長(zhǎng)度的金屬線,通常是貫穿于整個(gè)芯片的長(zhǎng)線來實(shí)現(xiàn)邏輯功能塊之間的互連,連接與距離遠(yuǎn)近無關(guān)。在這種連線結(jié)構(gòu)中,不同位置邏輯單元的連接線是確定的,因而布線延時(shí)是固定和可預(yù)測(cè)的。3) 按編程特性分類根據(jù)采用的開關(guān)元件的不同,fpga可分為一次編程型和可重復(fù)編程型兩類。一次編程型fpga采用反熔絲開關(guān)元件,其

26、工藝技術(shù)決定了這種器件具有體積小、集成度高、互連線特性阻抗低、寄生電容小及可獲得較高的速度等優(yōu)點(diǎn);此外,它還有加密位、反拷貝、抗輻射抗干擾、不需外接prom或eprom等特點(diǎn)。但它只能一次編程,一旦將設(shè)計(jì)數(shù)據(jù)寫入芯片后,就不能再修改設(shè)計(jì),因此比較適合于定型產(chǎn)品及大批量應(yīng)用??芍貜?fù)編程型fpga采用sram開關(guān)元件或快閃eprom控制的開關(guān)元件。fpga芯片中,每個(gè)邏輯塊的功能以及它們之間的互連模式由存儲(chǔ)在芯片中的sram或快閃eprom中的數(shù)據(jù)決定。sram型開關(guān)的fpga是易失性的,每次重新加電,fpga都要重新裝入配置數(shù)據(jù)。sram型fpga的突出優(yōu)點(diǎn)是可反復(fù)編程,系統(tǒng)上電時(shí),給fpga加

27、載不同的配置數(shù)據(jù),即可令其完成不同的硬件功能。這種配置的改變甚至可以在系統(tǒng)的運(yùn)行中進(jìn)行,實(shí)現(xiàn)系統(tǒng)功能的動(dòng)態(tài)重構(gòu)。采用快閃eprom控制開關(guān)的fpga具有非易失性和可重復(fù)編程的雙重優(yōu)點(diǎn),但在再編程的靈活性上較sram型fpga差一些,不能實(shí)現(xiàn)動(dòng)態(tài)重構(gòu)。此外,其靜態(tài)功耗較反熔絲型及sram型的fpga高。§2.1.1 fpga芯片結(jié)構(gòu)fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊clb(configurable logic block)、輸出輸入模塊iob(input output block)和內(nèi)部連線(interconnect

28、)三個(gè)部分。 現(xiàn)場(chǎng)可編程門陣列(fpga)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如pal,gal及cpld器件)相比,fpga具有不同的結(jié)構(gòu)。fpga利用小型查找表(16×1ram)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)d觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)i/o,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到i/o模塊。fpga的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與i/o間的聯(lián)接方式,并最終決定了fpga所能實(shí)現(xiàn)的功能,fpga允

29、許無限次的編程。fpga是在pal、gal、epld、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為asic領(lǐng)域中的一種半定制電路而出現(xiàn)的,即解決了定制電路的不足,又克服了原有可編程器件門電路有限的缺點(diǎn)。 由于fpga需要被反復(fù)燒寫,它實(shí)現(xiàn)組合邏輯的基本結(jié)構(gòu)不可能像asic那樣通過固定的與非門來完成,而只能采用一種易于反復(fù)配置的結(jié)構(gòu)。查找表可以很好地滿足這一要求,目前主流fpga都采用了基于sram工藝的查找表結(jié)構(gòu),也有一些軍品和宇航級(jí)fpga采用flash或者熔絲與反熔絲工藝的查找表結(jié)構(gòu)。通過燒寫文件改變查找表內(nèi)容的方法來實(shí)現(xiàn)對(duì)fpga的重復(fù)配置。 根據(jù)數(shù)字電路的基本知識(shí)可以知道,對(duì)

30、于一個(gè)n輸入的邏輯運(yùn)算,不管是與或非運(yùn)算還是異或運(yùn)算等等,最多只可能存在2n種結(jié)果。所以如果事先將相應(yīng)的結(jié)果存放于一個(gè)存貯單元,就相當(dāng)于實(shí)現(xiàn)了與非門電路的功能。fpga的原理也是如此,它通過燒寫文件去配置查找表的內(nèi)容,從而在相同的電路情況下實(shí)現(xiàn)了不同的邏輯功能。 查找表(look-up-table)簡(jiǎn)稱為lut,lut本質(zhì)上就是一個(gè)ram。目前fpga中多使用4輸入的lut,所以每一個(gè)lut可以看成一個(gè)有4位地址線的 的ram。 當(dāng)用戶通過原理圖或hdl語言描述了一個(gè)邏輯電路以后,pld/fpga開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,并把真值表(即結(jié)果)事先寫入ram,這樣,每輸入一個(gè)信號(hào)

31、進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。目前主流的fpga仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如ram、時(shí)鐘管理和dsp)的硬核(asic型)模塊。fpga芯片主要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式ram、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。每個(gè)模塊功能如下:1) 可編程輸入輸出單元(iob)可編程輸入/輸出單元簡(jiǎn)稱i/o單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求,fpga內(nèi)的i/o按組分類,每組都能夠獨(dú)立地支

32、持不同的i/o標(biāo)準(zhǔn)。通過軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與i/o物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小,可以改變上、下拉電阻。外部輸入信號(hào)可以通過iob模塊的存儲(chǔ)單元輸入到fpga的內(nèi)部,也可以直接輸入fpga 內(nèi)部。當(dāng)外部輸入信號(hào)經(jīng)過iob模塊的存儲(chǔ)單元輸入到fpga內(nèi)部時(shí),其保持時(shí)間(hold time)的要求可以降低,通常默認(rèn)為0。為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),fpga的iob被劃分為若干個(gè)組(bank),每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓vcco決定,一個(gè)bank只能有 一種vcco,但不同bank的vcco可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,vcco電壓相同是接口標(biāo)準(zhǔn)的基

33、本條件。2) 可配置邏輯塊(clb)clb是fpga內(nèi)的基本邏輯單元。clb的實(shí)際數(shù)量和特性會(huì)依器件的不同而不同,但是每個(gè)clb都包含一個(gè)可配置開關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。開關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或ram。數(shù)字時(shí)鐘管理模塊(dcm)。業(yè)內(nèi)大多數(shù)fpga均提供數(shù)字時(shí)鐘管理(xilinx的全部fpga均具有這種特性)。xilinx推出最先進(jìn)的fpga提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過濾功能。3) 豐富的布線資源布線資源連通fpga內(nèi)部的所有單元,而連線的

34、長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。fpga芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線;第二類是長(zhǎng)線資源,用以完成芯片 bank間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時(shí)鐘、復(fù)位等控制信號(hào)線。4) 底層內(nèi)嵌功能單元內(nèi)嵌功能模塊主要指dll(delay locked loop)、pll(phase locked loop)、dsp和cpu等軟處理核(softcore)?,F(xiàn)在越來越豐富

35、的內(nèi)嵌功能單元,使得單片fpga成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向soc平臺(tái)過渡。5) 內(nèi)嵌專用硬核內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指fpga處理能力強(qiáng)大的硬核(hard core),等效于asic電路。為了提高fpga性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。6) 嵌入式塊ram(bram)大多數(shù)fpga都具有內(nèi)嵌的塊ram,這大大拓展了fpga的應(yīng)用范圍和靈活性。塊ram可被配置為單端口ram、雙端口ram、內(nèi)容地址存儲(chǔ)器 (cam)以及fifo等常用存儲(chǔ)結(jié)構(gòu)。ram、fifo是比較普及的概念,在此就不冗述。cam存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有

36、一個(gè)比較邏輯,寫入 cam中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊ram,還可以將 fpga中的lut靈活地配置成ram、rom和fifo等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊ram的數(shù)量也是選擇芯片的一個(gè)重要因素。單片塊ram的容量為18k比特,即位寬為18比特、深度為1024,可以根據(jù)需要改變其位寬和深度,但要滿足兩個(gè)原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位寬最大不能超過36比特。當(dāng)然,可以將多片塊ram級(jí)聯(lián)起來形成更大的ram,此時(shí)只受限于芯片內(nèi)塊ram的數(shù)量,而 不再受上面兩條原則約束。

37、7) 數(shù)字時(shí)鐘管理模塊(dcm)業(yè)內(nèi)大多數(shù)fpga均提供數(shù)字時(shí)鐘管理(xilinx的全部fpga均具有這種特性)。xilinx推出最先進(jìn)的fpga提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過濾功能。§2.1.2 fpga設(shè)計(jì)流程一般來說,完整的fpga/cpld設(shè)計(jì)流程包括:(1) 電路功能設(shè)計(jì),系統(tǒng)設(shè)計(jì)之前,首要的是方案論證、系統(tǒng)設(shè)計(jì)和fpga芯片選擇等準(zhǔn)備工作。一般采用自頂向下的設(shè)計(jì)方法將系統(tǒng)分成若干基本單元,然后將基本單元?jiǎng)澐殖上乱粚拥幕締卧?,一直這樣就行下去,直到可以直接使用eda元件庫為止。(2) 設(shè)計(jì)輸入,常用的方法是硬件

38、描述語言和原理圖輸入方式。 (3) 功能仿真,驗(yàn)證設(shè)計(jì)電路的邏輯功能。 (4) 綜合優(yōu)化(synthesis),綜合優(yōu)化是指將hdl語言、原理圖等設(shè)計(jì)輸入翻譯成由與、或、非門、ram、觸發(fā)器等基本邏輯單元組成的邏輯網(wǎng)表,并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化生成的邏輯網(wǎng)表,輸出edf和edn等文件,供fpga/cpld廠家的布局布線器進(jìn)行實(shí)現(xiàn)。 (5) 綜合后仿真,檢查綜合結(jié)果是否與原設(shè)計(jì)一致,仿真時(shí)把綜合生成的標(biāo)準(zhǔn)延時(shí)文件反標(biāo)注到綜合仿真模型中,可估計(jì)門延時(shí)帶來的影響。但這一步驟不能估計(jì)線延時(shí),因此和布線后的仿真情況還有一定的差距,并不十分準(zhǔn)確。(6) 實(shí)現(xiàn)(implementation),實(shí)現(xiàn)是

39、將綜合生成的邏輯網(wǎng)表配置到具體的fpga芯片上,xilinx的實(shí)現(xiàn)過程分為翻譯(translate)、映射(map)、和布局布線(place&route)。布局布線是其中最重要的過程,布局是將邏輯網(wǎng)表中的硬件原語和底層單元合理得配置到芯片內(nèi)部的硬件結(jié)構(gòu)上,并且需要在速度最優(yōu)和面積最優(yōu)之間做出選擇。布線時(shí)根據(jù)布局的拓?fù)浣Y(jié)構(gòu),利用芯片內(nèi)部的各種連線資源合理準(zhǔn)確的連接各個(gè)元件。 (7) 時(shí)序仿真與驗(yàn)證,將布局布線后的延時(shí)信息反標(biāo)注到網(wǎng)表中用來檢測(cè)時(shí)序工作情況,時(shí)序仿真包括的延時(shí)信息最全,也最精確,能較好的反映芯片的實(shí)際工作情況。有是為了保證設(shè)計(jì)的可靠性,在時(shí)序仿真后還要做一些驗(yàn)證,可以用is

40、e內(nèi)嵌的時(shí)序分析工具完成靜態(tài)時(shí)序分析(sta,static timing analyzer),也可以用第三方驗(yàn)證工具(如synopsys的formality驗(yàn)證工具,primetime靜態(tài)時(shí)序分析工具等)進(jìn)行驗(yàn)證??梢杂胕se內(nèi)嵌的fpga editor和chip viewer觀察芯片內(nèi)部的連接于配置情況,或者使用ise內(nèi)嵌的chipscope pro進(jìn)行在線邏輯分析。(8) 調(diào)試與加載配置,就是在線調(diào)試或者將生成的配置文件寫入芯片中進(jìn)行測(cè)試。在ise中對(duì)應(yīng)的工具就是impact。fpga設(shè)計(jì)流程圖如圖2-1所示。圖2-1 fpga設(shè)計(jì)流程圖§2.1.3 fpga軟件設(shè)計(jì)fpga軟件

41、設(shè)計(jì)可分為兩大塊:編程語言和編程工具。編程語言主要有vhdl和verilog兩種硬件描述語言;編程工具主要是兩大廠家altera和xilinx的集成綜合eda軟件quartusii以及第三方工具。具體的設(shè)計(jì)輸入方式有以下幾種:(1) hdl語言方式。hdl既可以描述底層設(shè)計(jì),也可以描述頂層的設(shè)計(jì),但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項(xiàng)目最后所能達(dá)到的性能與設(shè)計(jì)人員的水平、經(jīng)驗(yàn)以及綜合軟件有很大的關(guān)系。(2) 圖形方式??梢苑譃殡娐吩韴D描述,狀態(tài)機(jī)描述和波形描述3種形式。電路原理圖方式描述比較直觀和高效,對(duì)綜合軟件的要求不高;狀態(tài)機(jī)描述主要用來設(shè)計(jì)基于狀態(tài)機(jī)思想的時(shí)序電路

42、;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關(guān)系。§2.1.4 fpga的應(yīng)用 fpga的應(yīng)用可分為三個(gè)層面:電路設(shè)計(jì),產(chǎn)品設(shè)計(jì),系統(tǒng)設(shè)計(jì)。1) 電路設(shè)計(jì)中fpga的應(yīng)用連接邏輯,控制邏輯是fpga早期發(fā)揮作用比較大的領(lǐng)域也是fpga應(yīng)用的基石事實(shí)上在電路設(shè)計(jì)中應(yīng)用fpga的難度還是比較大的這要求開發(fā)者要具備相應(yīng)的硬件知識(shí)(電路知識(shí))和軟件應(yīng)用能力(開發(fā)工具)這方面的人才總是緊缺的,往往都從事新技術(shù),新產(chǎn)品的開發(fā)成功的產(chǎn)品將變成市場(chǎng)主流基礎(chǔ)產(chǎn)品供產(chǎn)品設(shè)計(jì)者應(yīng)用在不遠(yuǎn)的將來,通用和專用ip的設(shè)計(jì)將成為一個(gè)熱門行業(yè)!搞電路設(shè)計(jì)的前提是必須要具備一定的硬

43、件知識(shí)在這個(gè)層面,干重于學(xué),當(dāng)然,快速入門是很重要的,越好的位子越不等人電路開發(fā)是黃金飯碗。2) 產(chǎn)品設(shè)計(jì)把相對(duì)成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品這方面主要是fpga技術(shù)和專業(yè)技術(shù)的結(jié)合問題,另外還有就是與專業(yè)客戶的界面問題產(chǎn)品設(shè)計(jì)還包括專業(yè)工具類產(chǎn)品及民用產(chǎn)品,前者重點(diǎn)在性能,后者對(duì)價(jià)格敏感產(chǎn)品設(shè)計(jì)以實(shí)現(xiàn)產(chǎn)品功能為主要目的,fpga技術(shù)是一個(gè)實(shí)現(xiàn)手段在這個(gè)領(lǐng)域,fpga因?yàn)榫邆浣涌?,控制,功能ip,內(nèi)嵌cpu等特點(diǎn)有條件實(shí)現(xiàn)一個(gè)構(gòu)造簡(jiǎn)單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計(jì)將是fpga技術(shù)應(yīng)用最廣大的市場(chǎng),具有極大的爆發(fā)性的需求空間

44、產(chǎn)品設(shè)計(jì)對(duì)技術(shù)人員的要求比較高,路途也比較漫長(zhǎng)不過現(xiàn)在整個(gè)行業(yè)正處在組建首發(fā)團(tuán)隊(duì)的狀態(tài),只要加入,前途光明產(chǎn)品設(shè)計(jì)是一種職業(yè)發(fā)展方向定位,不是簡(jiǎn)單的愛好就能做到的!產(chǎn)品設(shè)計(jì)領(lǐng)域會(huì)造就大量的企業(yè)和企業(yè)家,是一個(gè)近期的發(fā)展熱點(diǎn)和機(jī)遇。3) 系統(tǒng)級(jí)應(yīng)用系統(tǒng)級(jí)的應(yīng)用是fpga與傳統(tǒng)的計(jì)算機(jī)技術(shù)結(jié)合,實(shí)現(xiàn)一種fpga版的計(jì)算機(jī)系統(tǒng)如用xilinxv-4, v-5系列的fpga,實(shí)現(xiàn)內(nèi)嵌powerpccpu, 然后再配合各種外圍功能,實(shí)現(xiàn)一個(gè)基本環(huán)境,在這個(gè)平臺(tái)上跑linix等系統(tǒng)這個(gè)系統(tǒng)也就支持各種標(biāo)準(zhǔn)外設(shè)和功能接口(如圖象接口)了這對(duì)于快速構(gòu)成 fpga大型系統(tǒng)來講是很有幫助的。這種山寨味很濃的系統(tǒng)早

45、期優(yōu)勢(shì)不一定很明顯,類似arm系統(tǒng)的境況但若能慢慢發(fā)揮出fpga的優(yōu)勢(shì),逐漸實(shí)現(xiàn)一些特色系統(tǒng)也是一種發(fā)展方向。若在系統(tǒng)級(jí)應(yīng)用中,開發(fā)人員不具備系統(tǒng)的擴(kuò)充開發(fā)能力,只是搞搞編程是沒什么意義的,當(dāng)然設(shè)備驅(qū)動(dòng)程序的開發(fā)是另一種情況,搞系統(tǒng)級(jí)應(yīng)用看似起點(diǎn)高,但不具備深層開發(fā)能力,很可能會(huì)變成愛好者,就如很多人會(huì)做網(wǎng)頁但不能稱做會(huì)編程類似以上是幾點(diǎn)個(gè)人開發(fā),希望能幫助想學(xué)fpga 但很茫然無措的人理一理思路。這是一個(gè)不錯(cuò)的行業(yè),有很好的個(gè)人成功機(jī)會(huì)。但也肯定是一個(gè)競(jìng)爭(zhēng)很激烈的行業(yè),關(guān)鍵看的就是速度和深度當(dāng)然還有市場(chǎng)適應(yīng)能力。§2. 2 verilog hdl概述§2.2.1 veri

46、log hdl簡(jiǎn)介verilog hdl是目前應(yīng)用最為廣泛的硬件描述語言,適合算法級(jí),寄存器級(jí),邏輯級(jí),門級(jí)和版圖級(jí)等各個(gè)層次的設(shè)計(jì)和描述,優(yōu)點(diǎn)是其工藝無關(guān)性這使得工程師在功能設(shè)計(jì),邏輯驗(yàn)證階段可以不必過多考慮門級(jí)及工藝實(shí)現(xiàn)的具體細(xì)節(jié),只需根據(jù)系統(tǒng)設(shè)計(jì)的要求施加不同的約束條件。verilog hdl 是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可以在相同描述中顯示的進(jìn)行時(shí)序建模。這種語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)

47、監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言、此外,verilog hdl語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。這種硬件語言不僅定義了語法。而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用verilog仿真器進(jìn)行驗(yàn)證。語言從c編程語言中繼承了多種操作符和結(jié)構(gòu)。verilog hdl提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,verilog hdl語言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然,完整的硬件描述語言足以對(duì)從最復(fù)雜的芯片到完整的電子

48、系統(tǒng)進(jìn)行描述。verilog hdl語言最初是于1983年由gateway design automation公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時(shí)它只是一種專用語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,verilog hdl 作為一種便于使用且實(shí)用的語言逐漸為眾多設(shè)計(jì)者所接受。在一次努力增加語言普及性的活動(dòng)中,verilog hdl語言于1990年被推向公眾領(lǐng)域。 open verilog international (ovi)是促進(jìn)verilog發(fā)展的國(guó)際性組織。1992年,ovi決定致力于推廣verilog ovi標(biāo)準(zhǔn)成為ieee標(biāo)準(zhǔn)。這一努力最后獲得成功,verilog hdl于

49、1995年成為ieee標(biāo)準(zhǔn),稱為ieee std 13641995。完整的標(biāo)準(zhǔn)在verilog硬件描述語言參考手冊(cè)中有詳細(xì)描述。§2.2.2 verilog hdl主要功能(1) 基本邏輯門,例如and、or和nand等都內(nèi)置在語言中。(2) 用戶定義原語(udp)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語。(3) 開關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos 和nmos等也被內(nèi)置在語言中。(4) 提供顯式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。(5) 可采用三種不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流

50、方式使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式使用門和模塊實(shí)例語句描述建模。§2.2.3 verilog hdl與vhdl的區(qū)別verilog hdl和vhdl作為描述硬件電路設(shè)計(jì)的語言,其共同特點(diǎn)在于:能形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計(jì)中層次與范圍的描述;可借用高級(jí)語言的精巧結(jié)構(gòu)來簡(jiǎn)化電路行為的描述;具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性;支持電路描述由高層到低層的綜合轉(zhuǎn)換;硬件描述與實(shí)現(xiàn)工藝無關(guān)(有關(guān)工藝參數(shù)可通過語言提供的屬性包括進(jìn)去);便于文檔管理;易于理解和設(shè)計(jì)重用。但是,兩者又有著各自的特點(diǎn):(1) 語法特點(diǎn)verilog hdl和vhdl最大的差別在語法上,v

51、erilog hdl是一種類c語言,而vhdl是一種ada(action data automation,行動(dòng)數(shù)據(jù)自動(dòng)化)語言。由于c語言簡(jiǎn)單易用且應(yīng)用廣泛,因此也使得verilog hdl語言容易學(xué)習(xí),如果有c語言學(xué)習(xí)的基礎(chǔ),很快就能夠掌握;相比之下,vhdl語句較為晦澀,使用難度較大。(2) 運(yùn)用群體由于verilog hdl早在1983年就已推出,至今已有20多年的應(yīng)用歷史,因而verilog hdl擁有更加廣泛的設(shè)計(jì)群體,成熟的資源也比vhdl豐富。(3) 優(yōu)勢(shì)不同傳統(tǒng)觀念認(rèn)為verilog hdl在系統(tǒng)級(jí)抽象方面較弱,不太適合大型的系統(tǒng);vhdl側(cè)重于系統(tǒng)描述,從而更多地為系統(tǒng)級(jí)設(shè)計(jì)

52、人員所采用;verilog hdl側(cè)重于電路級(jí)描述,從而更多地為電路設(shè)計(jì)人員所采用。但這兩種語言仍處于不斷完善之中,都在朝著更高級(jí)、更強(qiáng)大描述語言的方向前進(jìn)。其中,經(jīng)過ieee verilog hdl 2001標(biāo)準(zhǔn)補(bǔ)充之后,verilog hdl 語言的系統(tǒng)級(jí)描述性能和可綜合性能有了大幅度提高。綜上所述,verilog hdl 語言作為學(xué)習(xí)hdl設(shè)計(jì)方法入門和基礎(chǔ)是非常合適的。掌握了verilog hdl 語言建模、綜合和仿真技術(shù),不僅可以增加對(duì)數(shù)字電路設(shè)計(jì)的深入了解,還可以為后續(xù)高級(jí)階段的高級(jí)學(xué)習(xí)打好基礎(chǔ) ,包括數(shù)字信號(hào)處理和數(shù)字通信的fpga實(shí)現(xiàn)、ic設(shè)計(jì)等領(lǐng)域。本文的設(shè)計(jì)中,采用veri

53、log hdl語言。§2.3 搶答器總體設(shè)計(jì)方案§2.3.1 搶答器構(gòu)成本次設(shè)計(jì)的搶答器,其系統(tǒng)芯片主要采用ep2c8q208,由搶答判別模塊,計(jì)時(shí)模塊,分頻器模塊,計(jì)分模塊,鎖存器模塊,數(shù)碼管驅(qū)動(dòng)模塊組成。搶答器結(jié)構(gòu)簡(jiǎn)圖如圖2-3所示。圖2-3 搶答器結(jié)構(gòu)簡(jiǎn)圖由圖2-3我們很清楚的看到系統(tǒng)都有哪些外圍電路組成,而且還能很快就能明白這次設(shè)計(jì)目的與原理。§2.3.2 搶答器工作原理分頻器主要是運(yùn)用計(jì)數(shù)器的功能,由于實(shí)際上我們使用的是50hz的頻率,所以我將設(shè)計(jì)計(jì)數(shù)器,其在每個(gè)脈沖的上升沿來臨時(shí),就會(huì)加1,直到加到25時(shí),則會(huì)使輸出脈沖致1,在下一個(gè)25時(shí),則會(huì)使輸出

54、脈沖致0。這樣就能夠?qū)崿F(xiàn)將50hz的脈沖變成1hz的脈沖,用于控制計(jì)時(shí)模塊。計(jì)時(shí)模塊運(yùn)用的是計(jì)數(shù)器的減法運(yùn)算,當(dāng)外部條件滿足時(shí),計(jì)時(shí)器就會(huì)從30s開始計(jì)時(shí),一直計(jì)到零時(shí),計(jì)數(shù)器停止,直到主持人按下復(fù)位按鈕,計(jì)數(shù)器復(fù)位,才能使下次搶答時(shí)能夠從頭開始。數(shù)碼管驅(qū)動(dòng)主要是將4位變8位,即當(dāng)外部條件滿足時(shí),就會(huì)將輸入的4位數(shù)據(jù)轉(zhuǎn)變成7位,從而能夠使其能夠在數(shù)碼管上顯示出來。鎖存器在外部信號(hào)沒要求進(jìn)行鎖存操作時(shí),則會(huì)跟著輸入的變化而變化,然而當(dāng)外部要求進(jìn)行鎖存時(shí),就是立即鎖存住當(dāng)前的數(shù)據(jù),即輸出保持當(dāng)前的數(shù)據(jù)不再變化。第3章 搶答器模塊設(shè)計(jì)與實(shí)現(xiàn)§3.1 搶答判別模塊搶答判別模塊是實(shí)現(xiàn)搶答器搶答

55、功能的核心元件了,通過搶答判別模塊來鑒別搶答的先后,其中設(shè)計(jì)的這個(gè)模塊中自帶鎖存功能,即當(dāng)其中一人或者一組搶答成功后,其余人或者組都不能再搶答了。該模塊還能夠進(jìn)行判別誰進(jìn)行了搶答,當(dāng)主持人還沒有說開始搶答時(shí),就有人開始搶答時(shí),該人或者該組面前的led燈就會(huì)被點(diǎn)亮,對(duì)應(yīng)的報(bào)警器也會(huì)響起,同時(shí)數(shù)碼管這時(shí)也會(huì)顯示出提前搶答的組號(hào),從而杜絕了一些不公平的元素。其流程圖如圖3-1。圖3-1 搶答判別流程圖我們通過對(duì)fpga以及硬件語言verilo hdl的學(xué)習(xí),只通過對(duì)系統(tǒng)的編程就滿足了該模塊的要求,能實(shí)現(xiàn)判別,鎖存,顯示,報(bào)警等功能。搶答判別模塊的輸入有en,clr,a,b,c,d,而輸出端為led_

56、a,led_b.led_c,led_d以及4位led_f,4位led_t。其中en表示使能端,只有主持人按下這個(gè)按鈕,才能允許參賽選手進(jìn)行搶答;clr表示復(fù)位信號(hào),當(dāng)主持人按下這個(gè)按鈕后,所有的狀態(tài)都將恢復(fù)成初始狀態(tài),為下次搶答做好準(zhǔn)備;a,b,c,d表示四組搶答選手;led_a,led_b.led_c,led_d分別表示對(duì)應(yīng)小組的led燈,用來顯示選手們的搶答情況;led_f表示報(bào)警信號(hào),當(dāng)有選手提前搶答時(shí),該對(duì)應(yīng)的報(bào)警器將會(huì)響起;led_t表示顯示選手號(hào)碼的信號(hào),當(dāng)有選手搶答時(shí),就會(huì)通過led_t輸出的信號(hào)使其組號(hào)在數(shù)碼管上顯示出來。該模塊的邏輯框圖如圖3-2所示。圖3-2 搶答判別模塊邏

57、輯框圖§3.2 數(shù)碼管驅(qū)動(dòng)模塊數(shù)碼管按段數(shù)可分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、3位、4位、5位、6位、7位等數(shù)碼管。按發(fā)光二極管單元連接方式可分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公

58、共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。(1) 靜態(tài)顯示驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根i/o端口來驅(qū)動(dòng),要知道一個(gè)89s51單片機(jī)可用的i/o端口才32個(gè)),實(shí)際

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論