基于FPGA的電子搶答器的程序的設(shè)計(jì)說(shuō)明_第1頁(yè)
基于FPGA的電子搶答器的程序的設(shè)計(jì)說(shuō)明_第2頁(yè)
基于FPGA的電子搶答器的程序的設(shè)計(jì)說(shuō)明_第3頁(yè)
基于FPGA的電子搶答器的程序的設(shè)計(jì)說(shuō)明_第4頁(yè)
基于FPGA的電子搶答器的程序的設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 基于FPGA的電子搶答器的程序設(shè)計(jì)摘 要隨著科學(xué)技術(shù)日新月異,文化生活日漸豐富,在各類競(jìng)賽、搶答場(chǎng)合電子搶答器已經(jīng)作為一種工具得到了較為廣泛的應(yīng)用。顧名思義,電子搶答器是一種通過(guò)搶答者的指示燈顯示、數(shù)碼顯示和警示顯示等手段準(zhǔn)確、公正、直觀地判斷出最先獲得發(fā)言權(quán)選手的設(shè)備。此次設(shè)計(jì)有4組搶答輸入,每組設(shè)置一個(gè)搶答按鈕供搶答者使用。電路具有第一搶答信號(hào)的鑒別和鎖存功能。當(dāng)?shù)谝粨尨鹫甙聪聯(lián)尨痖_(kāi)關(guān)時(shí),該組指示燈亮以示搶答成功。同時(shí),電路也具備自鎖功能,保證能夠?qū)崿F(xiàn)在一路成功搶答有效后,其他三路均不能搶答。本設(shè)計(jì)基于VHDL語(yǔ)言,采用FPGA為控制核心,并結(jié)合動(dòng)手實(shí)踐完成,具有電路簡(jiǎn)單、操作方便、靈敏

2、可靠等優(yōu)點(diǎn)。該四路搶答器使用VHDL硬件描述語(yǔ)言進(jìn)行編程,分為七個(gè)模塊:判斷模塊,鎖存模塊,轉(zhuǎn)換模塊,掃描模塊,片選模塊,定時(shí)報(bào)警模塊和譯碼模塊。編程完成后,使用QuartersII工具軟件進(jìn)行編譯仿真驗(yàn)證。關(guān)鍵詞:VHDL,F(xiàn)PGA,四路搶答器,仿真 目錄1 概述11.1 設(shè)計(jì)背景11.2 搶答器現(xiàn)狀11.3 本論文主要完成的工作11.4 設(shè)計(jì)心得22 開(kāi)發(fā)工具簡(jiǎn)介32.1 VHDL語(yǔ)言簡(jiǎn)介32.2 FPGA開(kāi)發(fā)過(guò)程與應(yīng)用42.2.1 FPGA發(fā)展歷程與現(xiàn)狀42.2.2 FPGA工作原理42.2.3 FPGA開(kāi)發(fā)流程52.3 Quartus II軟件63系統(tǒng)設(shè)計(jì)83.1 系統(tǒng)設(shè)計(jì)要求83.2

3、 系統(tǒng)設(shè)計(jì)方案83.2.1 系統(tǒng)硬件設(shè)計(jì)方案83.2.2 系統(tǒng)軟件設(shè)計(jì)方案83.3.3 系統(tǒng)原理詳述104 電路程序設(shè)計(jì)與仿真124.1 搶答鎖存模塊設(shè)計(jì)124.1.1 VHDL源程序124.1.2 搶答鎖存電路的模塊134.2 仿真14總結(jié)15致17參考文獻(xiàn)18輕工業(yè)學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書(shū)題目基于FPGA的電子搶答器的程序設(shè)計(jì) 專業(yè)班級(jí) 電子信息工程10-1班 學(xué)號(hào)主要容、基本要求、主要參考資料等:主要容:搶答器是在競(jìng)賽、文體娛樂(lè)活動(dòng)(搶答活動(dòng))中,能準(zhǔn)確、公正、直觀地判斷出搶答者的機(jī)器。要求學(xué)生使用硬件描述語(yǔ)言(Verilog 或者 VHDL)設(shè)計(jì)基于FPGA的電子搶答器的源程序。

4、實(shí)現(xiàn)如下功能:設(shè)計(jì)一個(gè)四路搶答器;在一路成功搶答有效后,其他三路均不能搶答,并且將搶答成功的一路用指示燈顯示出來(lái)?;疽螅?、 學(xué)會(huì)quartusII的使用,掌握FPGA 的程序設(shè)計(jì)方法。 2、掌握硬件描述語(yǔ)言語(yǔ)法。 4、程序設(shè)計(jì)完成后要求在quartusII中實(shí)現(xiàn)功能仿真。主要參考資料:1、褚振勇. FPGA設(shè)計(jì)與應(yīng)用(第三版)M.電子科技大學(xué).2012,42、懷琛.MATLAB與在電子信息課程中的應(yīng)用M.:電子工業(yè).2008,1完 成 期 限:2013.6.212013.6.25指導(dǎo)教師簽名:課程負(fù)責(zé)人簽名:2013年 6月 18日19 / 221 概述1.1 設(shè)計(jì)背景現(xiàn)場(chǎng)可編程門陣列(

5、簡(jiǎn)稱FPGA)是20世紀(jì)80年代中期出現(xiàn)的高密度可編程邏輯器件,采用SRAM開(kāi)關(guān)元件的FPGA是易失性的,每次重新加電, FPGA都要重新裝入配置數(shù)據(jù)。突出優(yōu)點(diǎn)是可反復(fù)編程,系統(tǒng)上電時(shí),給FPGA加載不同的配置數(shù)據(jù),即可令其完成不同的硬件功能。這種配置的改變甚至可以在系統(tǒng)的運(yùn)行中進(jìn)行,實(shí)現(xiàn)系統(tǒng)功能的動(dòng)態(tài)重構(gòu)?!霸谙到y(tǒng)可編程”(簡(jiǎn)稱ISP)是指對(duì)器件、電路或整個(gè)電子系統(tǒng)的邏輯功能可隨時(shí)進(jìn)行修改或重構(gòu)的能力,支持ISP技術(shù)的可編程邏輯器件稱為在系統(tǒng)可編程邏輯器件,它不需要專門的編程器,利用計(jì)算機(jī)接口和一根下載電纜就可以對(duì)器件編程了。本設(shè)計(jì)針對(duì)電子技術(shù)綜合實(shí)驗(yàn)的要求,利用EDA技術(shù)中quartusI

6、I作為開(kāi)發(fā)工具,設(shè)計(jì)了一款基于FPGA的智力競(jìng)賽搶答器。1.2 搶答器現(xiàn)狀在進(jìn)行智力競(jìng)賽搶答題比賽時(shí),各參賽者考慮后都想搶先答題。如果沒(méi)有合適的設(shè)備,有時(shí)難以分清他們的先后,使主持人感到為難。為了使比賽能順利進(jìn)行,需要有一個(gè)能判斷搶答先后的設(shè)備,我們將它稱為智力競(jìng)賽搶答器。在許多搶答競(jìng)賽、文體娛樂(lè)活動(dòng),為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,通常需要設(shè)置一臺(tái)這樣的搶答器,通過(guò)指示燈顯示出第一搶答者。1.3 本論文主要完成的工作本課程設(shè)計(jì)基于VHDL語(yǔ)言,采用FPGA為控制核心,并結(jié)合動(dòng)手實(shí)踐完成,具有電路簡(jiǎn)單、操作方便、靈敏可靠等優(yōu)點(diǎn)。設(shè)計(jì)四路搶答器使用VHDL硬件描述語(yǔ)言進(jìn)行編程,分為七個(gè)模

7、塊:判斷模塊,鎖存模塊,轉(zhuǎn)換模塊,掃描模塊,片選模塊,定時(shí)報(bào)警模塊和譯碼模塊。編程完成后,使用QuartersII工具軟件進(jìn)行編譯仿真驗(yàn)證。系統(tǒng)達(dá)到要求:在一路成功搶答有效后,其他三路均不能搶答,并且將搶答成功的一路用指示燈顯示出來(lái)。1.4 設(shè)計(jì)心得通過(guò)這次課程設(shè)計(jì),幫助我們加深理解FPGA程序設(shè)計(jì)方法,學(xué)會(huì)quartusII軟件的使用,了解簡(jiǎn)單多功能搶答器組成原理,掌握在quartusII中實(shí)現(xiàn)功能仿真的方法,相應(yīng)地提高動(dòng)手能力和排障能力,并且良好地鞏固已學(xué)的理論知識(shí),將硬件描述語(yǔ)言語(yǔ)法與實(shí)踐相結(jié)合。通過(guò)分析多功能搶答器各單元電路之間的關(guān)系與相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電

8、路。2 開(kāi)發(fā)工具簡(jiǎn)介2.1 VHDL語(yǔ)言簡(jiǎn)介VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言 。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的容

9、,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本。現(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語(yǔ)言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,與端口)和部(或稱不可視部分)

10、,既涉與實(shí)體的部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)VHDL語(yǔ)言目前在數(shù)字設(shè)計(jì)領(lǐng)域已為廣大設(shè)計(jì)者所接受,眾多CAD廠商紛紛使自己新開(kāi)發(fā)的電子設(shè)計(jì)軟件與VHDL兼容,VHDL語(yǔ)言成了電子設(shè)計(jì)工程師必須掌握的工具。 在目前,CPU和可編程邏輯器件已經(jīng)成為數(shù)字系統(tǒng)的硬件基礎(chǔ),從事數(shù)字系統(tǒng)的設(shè)計(jì)必須掌握可編程邏輯器件的設(shè)計(jì)方法,而VHDL語(yǔ)言作為可編程邏輯器件設(shè)計(jì)時(shí)最重要的輸入方法,為所有可編程邏輯器件廠商所支持。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的。一、與其他的硬件描述

11、語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。二、VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。三、VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。四、對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。五

12、、VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。2.2FPGA開(kāi)發(fā)過(guò)程與應(yīng)用隨著現(xiàn)場(chǎng)可編程邏輯器件越來(lái)越高的集成度,加上不斷出現(xiàn)的I/O標(biāo)準(zhǔn)、嵌入功能、高級(jí)時(shí)鐘管理的支持,使得現(xiàn)場(chǎng)可編程邏輯器越來(lái)越廣泛。2.2.1 FPGA發(fā)展歷程與現(xiàn)狀從Xilinx公司推出了世界上第一片F(xiàn)PGA(現(xiàn)場(chǎng)可編程邏輯芯片),F(xiàn)PGA已經(jīng)歷幾十年的發(fā)展。從最初的一千多可利用門,發(fā)展到90年代的幾十萬(wàn)個(gè)可利用門,到十一世紀(jì)又陸續(xù)推出了幾千萬(wàn)門的單片F(xiàn)PGA芯片。FPGA使用靈活,適用性強(qiáng),特別適用于復(fù)雜邏輯的設(shè)計(jì),有利用電子系統(tǒng)小型化,而且其開(kāi)

13、發(fā)周期短、開(kāi)發(fā)投入少、芯片價(jià)格不斷降低,促使FPGA越來(lái)越多地取代了ASIC的市場(chǎng)。2.2.2 FPGA工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有: 1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA部有豐富的觸發(fā)器和IO引腳。 4)FPGA是A

14、SIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 FPGA是由存放在片RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無(wú)須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即

15、可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。2.2.3 FPGA開(kāi)發(fā)流程FPGA開(kāi)發(fā)流程可以分為如下幾步:設(shè)計(jì)輸入,設(shè)計(jì)輸入主要包括原理圖輸入、狀態(tài)圖輸入、波形圖輸入以與某種硬件描述語(yǔ)言,比如說(shuō)是VHDL、Verilog的源程序。它是利用這些輸入去描述一個(gè)電路的功能。功能仿真,功能仿真就是利用相關(guān)仿真工具對(duì)相關(guān)電路進(jìn)行功能級(jí)別仿真,也就是說(shuō)對(duì)你的輸入設(shè)計(jì)的邏輯功能進(jìn)行相關(guān)的模擬測(cè)試。在功能上面來(lái)了解電路是否能夠達(dá)到預(yù)期要求。這里的功能仿真純粹是模擬性質(zhì)的,不會(huì)設(shè)計(jì)的任何具體器件的硬件特性。綜

16、合,綜合就是行為或者功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換成低層次門級(jí)電路的網(wǎng)表。布局布線,就是將綜合后的網(wǎng)表文件針對(duì)某一個(gè)具體的目標(biāo)器件進(jìn)行邏輯映射。此時(shí)應(yīng)該使用FPGA廠商提供的實(shí)現(xiàn)與布局布線工具,根據(jù)所選芯片的型號(hào),進(jìn)行芯片部功能單元的實(shí)際連接與映射。時(shí)序驗(yàn)證,就是要使得時(shí)序仿真過(guò)程中,建立與保持時(shí)間要符合相關(guān)的制約,以便數(shù)據(jù)能被正確的傳輸。使仿真既包含門延時(shí),又包含線延時(shí)信息。能較好地反映芯片的實(shí)際工作情況。生成SOF等文件,此文件可以通過(guò)調(diào)試器把它下載到系統(tǒng)中間去。而FPGA設(shè)計(jì)流程的其他步驟基本上由相關(guān)工具去完成,因此只要自己設(shè)置好相關(guān)參數(shù),不要人為干預(yù)太多。而驗(yàn)證的話就需要用戶花費(fèi)大量的時(shí)間

17、去完成。2.3 Quartus II軟件Quartus II是Altera提供的FPGA/CPLD開(kāi)發(fā)集成環(huán)境,Altera是世界最大可編程邏輯器件供應(yīng)商之一。Quartus II在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開(kāi)發(fā)環(huán)境MAX+plus II的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在Quartus II上可以完成設(shè)計(jì)輸入、HDL綜合、布線布局(適配)、仿真和下載和硬件測(cè)試等流程,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Altera的Quartus II 提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需要,也是單芯片可編程系

18、統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境和SOPC開(kāi)發(fā)的基本設(shè)計(jì)工具,并為AlteraDSP開(kāi)發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。Quartus II設(shè)計(jì)工具完全支持VHDL、Verylog的設(shè)計(jì)流程,其部嵌有VHDL、Verilog邏輯綜合器。Quartus II也可以利用第三方的綜合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier II,并能直接調(diào)用這些工具。同樣,Quartus II具備仿真功能,同時(shí)也支持第三方的仿真工具,如ModelSim。此外,Quartus II與MATLAB和DSP Builder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開(kāi)

19、發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA工具。Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis & Synthesis)、適配器(Filter)、裝配器(Assembler)、時(shí)序分析器(Timing Analyzer)、設(shè)計(jì)輔助模塊(Design Assistant)、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編輯數(shù)據(jù)接口(Complier Database Interface)等。可以通過(guò)選擇Start Complication來(lái)運(yùn)行所有的編譯器模塊,也可以通過(guò)選擇Start單獨(dú)運(yùn)行各個(gè)模塊。還可以通過(guò)選擇Complier

20、 Tool(Tools 菜單),在Complier Tool 窗口中運(yùn)行該模塊來(lái)啟動(dòng)編輯器模塊。在Complier Tool 窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,或打開(kāi)其他相關(guān)窗口。Quartus II編譯設(shè)計(jì)的主控界面顯示了Quartus II自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編(裝配)、時(shí)序參數(shù)提取以與編程下載幾個(gè)步驟。 圖1 Quartus II設(shè)計(jì)流程3系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)設(shè)計(jì)要求搶答器是在競(jìng)賽、文體娛樂(lè)活動(dòng)(搶答活動(dòng))中,能準(zhǔn)確、公正、直觀地判斷出搶答者的機(jī)器。本設(shè)計(jì)使用硬件描述語(yǔ)言VHDL設(shè)計(jì)基于FPGA的電子搶答器的源程

21、序。要現(xiàn)如下功能:設(shè)計(jì)一個(gè)四路搶答器;在一路成功搶答有效后,其他三路均不能搶答,并且將搶答成功的一路用指示燈顯示出來(lái)。3.2 系統(tǒng)設(shè)計(jì)方案3.2.1 系統(tǒng)硬件設(shè)計(jì)方案本設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這兩者相互結(jié)合,不可分離;從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大返工是比較少的,軟件設(shè)計(jì)的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù)。 圖2 硬件設(shè)計(jì)流程3.2.2 系統(tǒng)軟件設(shè)計(jì)方案軟件設(shè)計(jì)和硬件電路設(shè)計(jì)應(yīng)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來(lái)了。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做

22、一個(gè)總體規(guī)劃。從軟件的功能來(lái)看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量,計(jì)算,顯示,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問(wèn)題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤(pán)設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對(duì)來(lái)講,執(zhí)行模塊任務(wù)明確單純,

23、比較容易編程,而監(jiān)控程序較易出問(wèn)題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長(zhǎng)就比較難了。圖3 軟件設(shè)計(jì)流程. . 系統(tǒng)原理詳述 圖4 具有完整搶答器功能的結(jié)構(gòu)圖根據(jù)對(duì)系統(tǒng)設(shè)計(jì)要求的分析可知,系統(tǒng)的輸入信號(hào)有:各組的搶答按鈕S0,S1,S2,S3輸入,復(fù)位信號(hào)CLEAR用于控制整個(gè)系統(tǒng)清0,按下該復(fù)位鍵系統(tǒng)清0,抬起該復(fù)位鍵搶答開(kāi)始。在主持人將系統(tǒng)復(fù)位并使搶答有效開(kāi)始后,S0,S1,S2,S3任何第一搶答者按下?lián)尨鸢粹o,對(duì)應(yīng)的輸入引腳接高電位1,電路記憶下第一搶答者身份,并封鎖其他各組的按鈕,即其他任何一組按鍵都不會(huì)使電路響應(yīng),完成搶答過(guò)程。系統(tǒng)的輸出信號(hào)有:四組搶答成功與否的指示燈控制信號(hào)輸

24、出口LEDA、LESB、LEDC、LEDD,當(dāng)任何第一搶答者成功搶答后指示燈亮起。本系統(tǒng)應(yīng)具有的功能有:第一搶答信號(hào)的鑒別和鎖存功能,指示燈顯示第一搶答者功能。根據(jù)分析我們可以把該四路搶答器設(shè)計(jì)分為判斷模塊,鎖存模塊,掃描模塊等部分,依據(jù)各模塊功能編寫(xiě)相應(yīng)的源程序,并對(duì)相應(yīng)的程序進(jìn)行編譯以與時(shí)序仿真。若正確就進(jìn)行到下一個(gè)模塊的編寫(xiě),若錯(cuò)誤就修改直至編譯成功。系統(tǒng)的具體工作原理如下:搶答鎖存模塊主要實(shí)現(xiàn)搶答過(guò)程中的搶答功能,并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號(hào)將其余搶答信號(hào)封鎖的功能。在這個(gè)模塊輸入端有WARN輸入(以時(shí)間控制系統(tǒng)的WARN輸出信號(hào)為信號(hào)源)、一個(gè)和時(shí)間控制系統(tǒng)公用的C

25、LEAR端、4人搶答輸入信號(hào)端S0,S1,S2,S3和一個(gè)時(shí)鐘信號(hào)端CLK,這個(gè)時(shí)鐘信號(hào)是個(gè)高頻信號(hào),用以掃描S0,S1,S2,S3是否有信號(hào)輸入。輸出端有對(duì)應(yīng)于S0,S1,S2,S3編號(hào)的4個(gè)指示燈LED和4線2進(jìn)制輸出端STATES(用于鎖存當(dāng)前的狀態(tài)),還有一個(gè)STOP端用于指示S0,S1,S2,S3按鈕狀態(tài)。在此模塊中高頻時(shí)鐘信號(hào)一直作用,此時(shí),若主持人按下CLEAR即為開(kāi)始搶答信號(hào),所有輸出端都自動(dòng)清零。在有效時(shí)間圍只要有人搶答,STOP就有高電平輸出至?xí)r間控制系統(tǒng)的STOP端以控制時(shí)間的停止,并且對(duì)應(yīng)的LED指示燈點(diǎn)亮,STATES鎖存輸出以顯示優(yōu)先搶答人的組號(hào),并鎖定輸入端S以阻

26、止系統(tǒng)響應(yīng)其他搶答者的信號(hào)。4 電路程序設(shè)計(jì)與仿真4.1 搶答鎖存模塊設(shè)計(jì)該模塊主要實(shí)現(xiàn)搶答過(guò)程中的搶答功能。在系統(tǒng)復(fù)位并使搶答有效開(kāi)始后,當(dāng)S0,S1,S2,S3任意一路第一搶答者按下?lián)尨鸢粹o,對(duì)應(yīng)的輸入引腳接高電位1,電路記憶下第一搶答者身份,信號(hào)輸入并進(jìn)行鎖存,其他任何一組按鍵都不會(huì)使電路響應(yīng),完成搶答過(guò)程。4.1.1 VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK IS PORT( CLK,CLEAR:IN STD_LOGIC; WARN:IN STD_LOGIC; S0,S1,S2,S3:IN STD_LOGIC

27、; STATES:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); STOP:OUT STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END LOCK;ARCHITECTURE ONE OF LOCK ISSIGNAL G:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLEAR,CLK,S0,S1,S2,S3) BEGIN IF CLEAR='1' THEN G<="0000"LED<="0000"STOP<=&#

28、39;0' ELSIF CLK'EVENT AND CLK='1' THEN IF WARN='0' THEN IF( S3='1')AND NOT(G(0)='1' OR G(1)='1' OR G(2)='1') THEN G(3)<='1'LED(3)<='1' ELSIF( S2='1')AND NOT(G(0)='1' OR G(1)='1' OR G(3)='1')

29、 THEN G(2)<='1'LED(2)<='1' ELSIF( S1='1')AND NOT(G(0)='1' OR G(2)='1' OR G(3)='1') THEN G(1)<='1'LED(2)<='1' ELSIF( S0='1')AND NOT(G(1)='1' OR G(2)='1' OR G(3)='1') THEN G(0)<='1'LE

30、D(3)<='1' END IF; STOP<=G(0) OR G(1) OR G(2) OR G(3); END IF; END IF;CASE G IS WHEN "0001"=>STATES<="0001" WHEN "0010"=>STATES<="0010" WHEN "0100"=>STATES<="0011" WHEN "1000"=>STATES<="01

31、00" WHEN OTHERS=>STATES<="0000"END CASE;END PROCESS;END ARCHITECTURE ONE; 4.1.2 搶答鎖存電路的模塊在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中的搶答功能,并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號(hào)將其余個(gè)綠搶答封鎖的功能。在這個(gè)模塊輸入端有WARN輸入(以時(shí)間控制系統(tǒng)的WARN輸出信號(hào)為信號(hào)源)、一個(gè)和時(shí)間控制系統(tǒng)公用的CLEAR端、4人搶答輸入信號(hào)端S0,S1,S2,S3和有一個(gè)時(shí)鐘信號(hào)端CLK,這個(gè)時(shí)鐘信號(hào)是個(gè)高頻信號(hào),用以掃描S0,S1,S2,S3是否有信號(hào)輸入。輸出端有對(duì)應(yīng)于

32、S0,S1,S2,S3編號(hào)的4個(gè)指示燈LED 和4線2進(jìn)制輸出端STATES (用于鎖存當(dāng)前的狀態(tài)),還有一個(gè)STOP 端用于指示S0,S1,S2,S3按鈕狀態(tài)。圖5 搶答鎖存電路的模塊4.2 仿真圖6 仿真圖由圖中可看出在復(fù)位信號(hào)從高電平降到低電平后,搶答器開(kāi)始正常工作,此時(shí)搶答開(kāi)始。在此之前搶答無(wú)效。而作為第一搶答者最先搶答,這時(shí)開(kāi)始報(bào)警,數(shù)碼管輸出顯示1,說(shuō)明A最先搶答??偨Y(jié)一周的FPGA課程設(shè)計(jì)很快就過(guò)去了,其中真是有苦更有甜,苦的是我在第一次獨(dú)自設(shè)計(jì)一個(gè)應(yīng)用型設(shè)備時(shí)的不熟悉和不知所措,甜的是經(jīng)過(guò)一周的時(shí)間我通過(guò)回顧課本知識(shí)、詢問(wèn)同學(xué)老師和上網(wǎng)學(xué)習(xí)收獲到了很多專業(yè)方面的知識(shí)更加鍛煉了我

33、的動(dòng)手能力和專業(yè)技能。記得大二下學(xué)期第一次上EDA程序設(shè)計(jì)課的時(shí)候,我對(duì)硬件設(shè)計(jì)語(yǔ)言是那么的難以上手,通過(guò)杜老師一學(xué)期細(xì)致的講解,配合實(shí)驗(yàn)課程讓我對(duì)EDA相關(guān)知識(shí)、VHDL編程、quartusII軟件、MAX_PLUS軟件有了更深的理解和更熟練的掌握。本次我的課程設(shè)計(jì)為四路競(jìng)賽搶答器,根據(jù)電路的特點(diǎn),我采用層次化結(jié)構(gòu)化設(shè)計(jì),將此項(xiàng)設(shè)計(jì)任務(wù)分成部分模塊,分別對(duì)各個(gè)模塊進(jìn)行編程,然后再將各模塊合起來(lái)編譯,這一步一步的加深了我們對(duì)于層次化設(shè)計(jì)的理解和對(duì)VHDL設(shè)計(jì)流程的熟悉。在設(shè)計(jì)的過(guò)程中,遇到問(wèn)題我們盡量獨(dú)立思考,查找資料,到自己不能解決的時(shí)候就和同小組同學(xué)研究討論,或者向指導(dǎo)老師請(qǐng)教。這樣的經(jīng)歷不僅提高了我們獨(dú)立發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力,又很好地培養(yǎng)了交流合作的精神。通過(guò)這次課程設(shè)計(jì),進(jìn)一步加深了我對(duì)EDA技術(shù)的了解,讓我更加明確VHDL的設(shè)計(jì)流程,并產(chǎn)生了更加濃厚的興趣。特別是當(dāng)每一個(gè)模塊程序調(diào)試成功時(shí),心的滿足感真的無(wú)法形容。這次經(jīng)歷更讓我懂得了理論與實(shí)際相結(jié)合是十分重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,使理論服務(wù)于實(shí)際,才能真正為社會(huì)服務(wù)。在設(shè)計(jì)的過(guò)程中我們不可避免的遇到各種問(wèn)題,因?yàn)檫@畢竟第一次做的,難免會(huì)不盡善盡美。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己不少不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論