2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)</b></p><p>  學(xué)生姓名: 專業(yè)班級: </p><p>  指導(dǎo)教師: 工作單位: </p><p>  題

2、 目: 出租車計(jì)價(jià)器的設(shè)計(jì) </p><p><b>  初始條件:</b></p><p>  本設(shè)計(jì)利用QuartusⅡ軟件編寫VHDL代碼,運(yùn)用EDA實(shí)驗(yàn)箱上的FPGA、數(shù)碼管、LED燈、撥碼開關(guān)、3/8譯碼器、系統(tǒng)20MHz時(shí)鐘等硬件資源,實(shí)現(xiàn)簡易的出租車計(jì)價(jià)器的相關(guān)功能。</p&

3、gt;<p>  要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及技術(shù)要求,以及說明書撰寫等具體要求)</p><p>  1、課程設(shè)計(jì)工作量:2周。</p><p><b>  2、技術(shù)要求:</b></p><p> ?、?設(shè)計(jì)一個出租車計(jì)價(jià)器。要求顯示行駛里程、停車時(shí)間和計(jì)費(fèi)值。</p><p>  ②出

4、租車的起步價(jià)為3元,當(dāng)里程行駛到1km后,費(fèi)用為4元;當(dāng)里程行駛到1.5km后,費(fèi)用為5元;,當(dāng)里程行駛到2km后,費(fèi)用為6元;當(dāng)里程行駛到2.5km后,費(fèi)用為7元;當(dāng)里程行駛到3km后,費(fèi)用為8元;此后每公里計(jì)費(fèi)為0.7元。當(dāng)計(jì)費(fèi)達(dá)到20元后,每公里加收50%的車費(fèi)。停車每達(dá)3分鐘,增加0.7元。</p><p>  3、查閱至少5篇參考文獻(xiàn)。按《武漢理工大學(xué)課程設(shè)計(jì)工作規(guī)范》要求撰寫設(shè)計(jì)報(bào)告書。全文用A4紙打

5、印,圖紙應(yīng)符合繪圖規(guī)范。</p><p><b>  時(shí)間安排:</b></p><p>  2011 年 1 月 10 日集中,作課設(shè)具體實(shí)施計(jì)劃與課程設(shè)計(jì)報(bào)告格式的要求說明。</p><p>  2011 年 1 月 11 日,查閱相關(guān)資料,學(xué)習(xí)電路的工作原理。</p><p>  2011 年 1 月 12 日

6、至 2011 年 1 月 16 日,方案選擇和程序設(shè)計(jì)設(shè)計(jì)。</p><p>  2011 年 1 月 17 日 至 2011 年 1 月 20 日,電路調(diào)試和設(shè)計(jì)說明書撰寫。</p><p>  2011 年 1 月 21 日上交課程設(shè)計(jì)成果及報(bào)告,同時(shí)進(jìn)行答辯。</p><p>  課設(shè)答疑地點(diǎn):鑒主13樓電子科學(xué)與技術(shù)實(shí)驗(yàn)室。</p>

7、<p>  指導(dǎo)教師簽名: 年 月 日</p><p>  系主任(或責(zé)任教師)簽名: 年 月 日</p><p><b>  摘 要</b></p><p>  本文介紹了一種采用單片F(xiàn)PGA芯片進(jìn)行出租車計(jì)費(fèi)器的設(shè)計(jì)方法

8、,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設(shè)計(jì)方法,利用FPGA的可編程性,簡潔而又多變的設(shè)計(jì)方法,縮短了研發(fā)周期,同時(shí)使出租車計(jì)費(fèi)器體積更小功能更強(qiáng)大。本設(shè)計(jì)實(shí)現(xiàn)了出租車計(jì)費(fèi)器所需的一些基本功能,計(jì)費(fèi)包括起步價(jià)、行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi),同時(shí)考慮到出租車行業(yè)的一些特殊性,更注重了把一些新的思路加入到設(shè)計(jì)中。主要包括采用了FPGA芯片,使用VHDL語言進(jìn)行編程,使其具有了更強(qiáng)的移植性,更加利于產(chǎn)品升級。</p>&

9、lt;p>  關(guān)鍵詞:VHDL;計(jì)費(fèi)器;QuartusⅡ;FPGA</p><p><b>  Abstract</b></p><p>  This paper describes the use of a single chip FPGA for the design of accounting-fee machine, mainly on how to u

10、se the emerging EDA electronic devices designed to replace traditional methods, using the programmable FPGA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a

11、 smaller more powerful. The design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the</p><p>  Key words: VHDL, accounting-

12、fee machine , Quartus Ⅱ, FPGA</p><p><b>  目 錄</b></p><p><b>  摘 要2</b></p><p>  Abstract3</p><p><b>  目 錄4</b></p><p&g

13、t;<b>  1.緒論5</b></p><p>  2.設(shè)計(jì)內(nèi)容及要求6</p><p>  2.1.設(shè)計(jì)的目的及主要任務(wù)6</p><p>  2.2.設(shè)計(jì)思想6</p><p><b>  3.設(shè)計(jì)原理7</b></p><p>  3.1.設(shè)計(jì)原理及方法

14、7</p><p>  3.2.單元模塊設(shè)計(jì)8</p><p>  4.代碼仿真結(jié)果10</p><p>  4.1.有限次數(shù)脈沖發(fā)生模塊仿真結(jié)果10</p><p>  4.2.計(jì)數(shù)器模塊仿真結(jié)果11</p><p>  4.3.七段數(shù)碼管模塊仿真結(jié)果11</p><p>  4

15、.4.分頻器模塊仿真結(jié)果12</p><p>  5.硬件調(diào)試13</p><p>  6.心得體會14</p><p>  7.參考文獻(xiàn)15</p><p><b>  8.附錄16</b></p><p>  8.1.程序源代碼16</p><p>

16、  8.2.綜合網(wǎng)絡(luò)圖30</p><p><b>  緒論</b></p><p>  人類社會已經(jīng)進(jìn)入信息化時(shí)代,信息社會的發(fā)展離不開電子產(chǎn)品的進(jìn)步?,F(xiàn)代電子產(chǎn)品在性能提高、復(fù)雜度降低的同時(shí),價(jià)格卻一直呈下降趨勢,而且產(chǎn)品更新?lián)Q代的步伐也越來越快,實(shí)現(xiàn)這種進(jìn)步的主要原因就是生產(chǎn)制造技術(shù)和電子設(shè)計(jì)技術(shù)的發(fā)展。前者以微細(xì)加工技術(shù)為代表,目前已進(jìn)展到深亞微米階段,可以

17、在幾平方厘米的芯片上集成數(shù)萬個晶體管;后者的核心就是EDA技術(shù)[1]。沒有EDA技術(shù)的支持,想要完成超大規(guī)模集成電路的設(shè)計(jì)制造是不可想象的,反過來,生產(chǎn)制造技術(shù)的不斷進(jìn)步又必須對EDA技術(shù)提出新要求。EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員按照“自頂向下”的設(shè)計(jì)方法,對整個系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語言(VHDL)完成系統(tǒng)行為級設(shè)計(jì),最

18、后通過綜合器和適配器生成最終的目標(biāo)器件[2]。</p><p>  可編程邏輯器件自20世紀(jì)70年代以來,經(jīng)歷了PAL、GAL、CPLD、FPGA幾個發(fā)展階段,其中CPLD、FPGA屬高密度可編程邏輯器件,目前集成度以高達(dá)200萬門/片,它將掩膜ASIC集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計(jì)生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制和小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場擴(kuò)大時(shí),它可以和容易地轉(zhuǎn)由ASI

19、C實(shí)現(xiàn),因此開發(fā)風(fēng)險(xiǎn)也大為降低。CPLD/FPGA器件已成為現(xiàn)代高層次電子設(shè)計(jì)方法的實(shí)現(xiàn)載體[3]。</p><p>  VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級、寄存器傳輸級和邏輯門級多個設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為3種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語言的功能,整個自頂向下或自底向上的電路設(shè)計(jì)過程都可以用VHDL來完成[4]。另外,VHDL還有以下優(yōu)點(diǎn):VHDL的寬范圍

20、描述能力使它成為高層次設(shè)計(jì)的核心,將設(shè)計(jì)人員的工作重心轉(zhuǎn)移到了系統(tǒng)功能的實(shí)現(xiàn)和調(diào)試上,只需要花較少的精力用于物理實(shí)現(xiàn);VHDL可以用簡潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì),靈活且方便,而且也便于設(shè)計(jì)結(jié)果的交流、保存和重用;VHDL的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。VHDL是一個標(biāo)準(zhǔn)語言,為眾多的EDA場上支持,因此移植性好[5]。</p><p><b>  設(shè)計(jì)內(nèi)容及要求</b&g

21、t;</p><p>  設(shè)計(jì)的目的及主要任務(wù)</p><p><b>  設(shè)計(jì)的目的</b></p><p> ?、賹W(xué)會在QuartusⅡ環(huán)境中運(yùn)用VHDL語言設(shè)計(jì)方法構(gòu)建具有一定邏輯功能的模塊,并能運(yùn)用圖形設(shè)計(jì)方法完成頂層原理圖的設(shè)計(jì)。</p><p> ?、谡莆粘鲎廛囎詣佑?jì)費(fèi)器的主要功能與在FPGA中的實(shí)現(xiàn)方法。&

22、lt;/p><p>  設(shè)計(jì)任務(wù)及主要技術(shù)指標(biāo)</p><p> ?、?設(shè)計(jì)一個出租車計(jì)價(jià)器。要求顯示行駛里程、停車時(shí)間和計(jì)費(fèi)值:</p><p>  出租車的起步價(jià)為3元,當(dāng)里程行駛到1km后,費(fèi)用為4元;當(dāng)里程行駛到1.5km后,費(fèi)用為5元;,當(dāng)里程行駛到2km后,費(fèi)用為6元;當(dāng)里程行駛到2.5km后,費(fèi)用為7元;當(dāng)里程行駛到3km后,費(fèi)用為8元;此后每公里計(jì)費(fèi)為0

23、.7元/0.5km。停車每到3分鐘,增加0.7元。</p><p>  通過開關(guān)讀入停車信號,在停車時(shí)進(jìn)行計(jì)時(shí),顯示格式為時(shí)分秒XX-XX-XX,每3分鐘,計(jì)價(jià)0.7元;按照輪胎轉(zhuǎn)動1圈為1m計(jì)算,計(jì)算并顯示行駛的里程結(jié)果(單位:Km),格式為:“000.0”。能顯示乘車費(fèi)用(單位:元),格式為:“000.0”。</p><p> ?、?運(yùn)用QuartusⅡ軟件中的仿真功能對所設(shè)計(jì)的出租車

24、自動計(jì)費(fèi)器的各個模塊及頂層電路的功能進(jìn)行仿真分析。</p><p>  ③ 將所設(shè)計(jì)的整個系統(tǒng)寫入FPGA器件中,加上需要的外圍電路在實(shí)驗(yàn)箱上實(shí)現(xiàn)整個系統(tǒng)的硬件搭建。</p><p><b>  設(shè)計(jì)思想</b></p><p>  本次設(shè)計(jì)首先在QuartusⅡ環(huán)境中對出租車自動計(jì)費(fèi)器的各個部分利用VHDL這一硬件描述語言予以設(shè)計(jì),生成模塊。

25、主要有:運(yùn)算控制模塊、分頻器、顯示模塊這三大部分組成。由頂層模塊協(xié)調(diào)控制完成設(shè)計(jì)任務(wù)。</p><p><b>  設(shè)計(jì)原理</b></p><p><b>  設(shè)計(jì)原理及方法</b></p><p>  本設(shè)計(jì)包含運(yùn)算控制模塊、分頻器、顯示模塊這三大部分。</p><p>  圖1 出租車自動計(jì)費(fèi)

26、器系統(tǒng)框圖</p><p>  運(yùn)算控制器模塊將其他兩個進(jìn)行連接,是本次設(shè)計(jì)的核心。它包含計(jì)程器、計(jì)時(shí)器、計(jì)價(jià)器,同時(shí)還有讀取外部的撥碼開關(guān)控制信號,提供當(dāng)前顯示信號與顯示位選信號,從而周期性交替顯示計(jì)價(jià)/計(jì)時(shí)信息、等時(shí)信息。</p><p>  計(jì)程器在非停車狀態(tài)完成計(jì)程功能并產(chǎn)生里程計(jì)價(jià)信號,計(jì)時(shí)器在停車狀態(tài)完成計(jì)時(shí)功能并產(chǎn)生等時(shí)計(jì)價(jià)信號。計(jì)價(jià)器是設(shè)計(jì)的核心與難點(diǎn),涉及到多種時(shí)鐘信號,

27、并有多種計(jì)費(fèi)標(biāo)準(zhǔn)。擬使用有限次高速脈沖發(fā)生器向一組級聯(lián)的十進(jìn)制計(jì)數(shù)器提供不同費(fèi)率的計(jì)價(jià)脈沖,根據(jù)里程計(jì)價(jià)信號、等時(shí)計(jì)價(jià)信號、停車開關(guān)狀態(tài)、當(dāng)前計(jì)費(fèi)結(jié)果等信號,綜合考慮,挑選適合次數(shù)的計(jì)價(jià)脈沖,從而實(shí)現(xiàn)不同條件的不同計(jì)費(fèi)。</p><p>  計(jì)程器、計(jì)時(shí)器、計(jì)價(jià)器根據(jù)位選信號,輸出相應(yīng)數(shù)據(jù)的當(dāng)前選中數(shù)字,由頂層模塊根據(jù)顯示數(shù)據(jù)類型變換信號進(jìn)行選擇,傳輸給顯示模塊。</p><p>  實(shí)驗(yàn)

28、箱的時(shí)鐘信號為20MHz方波,由分頻器分為10Hz的計(jì)時(shí)信號(一個周期代表現(xiàn)實(shí)中的1s)、10Hz的計(jì)程信號(一個周期代表現(xiàn)實(shí)中的10m)、500Hz的數(shù)碼管掃描信號(掃描頻率62.5Hz)、0.2Hz的顯示數(shù)據(jù)類型變換信號(變化周期5s)。</p><p>  顯示模塊由實(shí)驗(yàn)箱上的3/8譯碼器、五個LED燈構(gòu)成狀態(tài)的指示燈、程序編寫的一個七段數(shù)碼管譯碼器(因顯示需要,原有字形“E”征用改為“—”,字形"

29、;F"改為“ ”)組成。</p><p>  本次設(shè)計(jì)首先在QuartusⅡ環(huán)境中對出租車自動計(jì)費(fèi)器的各個部分利用VHDL這一硬件描述語言予以設(shè)計(jì),進(jìn)行仿真,然后編寫頂層模塊將各個模塊連接,并對相互之間的信號進(jìn)行必要處理,從而實(shí)現(xiàn)整機(jī)功能,最后在實(shí)驗(yàn)箱上進(jìn)行物理測試,尋找漏洞、調(diào)整參數(shù),最終確定設(shè)計(jì)。</p><p><b>  單元模塊設(shè)計(jì)</b><

30、/p><p>  分頻器TAXI_FP模塊設(shè)計(jì)</p><p>  本設(shè)計(jì)中分頻器模塊使用了一個通用的分頻器元件例化fp。該模塊從外部讀入系統(tǒng)時(shí)鐘方波信號clk,向外輸出計(jì)時(shí)信號clk_time,計(jì)程信號clk_mil,數(shù)碼管掃描信號clk_scan,顯示數(shù)據(jù)類型變換信號clk_v。具體程序代碼詳見附錄。</p><p>  計(jì)程器MIL模塊設(shè)計(jì)</p>

31、<p>  計(jì)程器的核心為一個4位十進(jìn)制數(shù)計(jì)數(shù)單元cnt10,它由四個十進(jìn)制計(jì)數(shù)器級聯(lián)構(gòu)成。在得到停車信號時(shí),計(jì)程信號不輸入計(jì)數(shù)單元,在沒有停車信號stop時(shí),每有10個脈沖clk(100m)才進(jìn)行計(jì)數(shù)1次。每當(dāng)成功計(jì)數(shù)5次,即500m,產(chǎn)生一個里程計(jì)費(fèi)信號p_mil。在得到復(fù)位信號rst時(shí),計(jì)程器內(nèi)部所有計(jì)數(shù)器和計(jì)數(shù)信號清零復(fù)位,里程計(jì)費(fèi)信號輸出'0'。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具

32、體程序代碼詳見附錄。</p><p>  計(jì)時(shí)器TIM模塊設(shè)計(jì)</p><p>  計(jì)時(shí)器有一個24進(jìn)制cnt24、兩個60進(jìn)制的計(jì)數(shù)器cnt60級聯(lián)構(gòu)成計(jì)時(shí)單元。當(dāng)停車信號stop為'1',進(jìn)行計(jì)時(shí)。計(jì)時(shí)器中還有一個3進(jìn)制計(jì)數(shù)器cnt3,每當(dāng)代表分鐘的60進(jìn)制計(jì)數(shù)器計(jì)數(shù)3次,產(chǎn)生一個等時(shí)計(jì)費(fèi)信號p_up。當(dāng)有復(fù)位信號rst時(shí),所有計(jì)數(shù)單元清零,等時(shí)計(jì)數(shù)信號輸出'0

33、'。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具體程序代碼詳見附錄。</p><p>  計(jì)價(jià)器PRICE模塊設(shè)計(jì)</p><p>  因?yàn)樵谟?jì)費(fèi)過程中存在1.05元的計(jì)費(fèi)情況,故計(jì)價(jià)精度精確到分,共有五個計(jì)數(shù)器。因此計(jì)價(jià)器的計(jì)數(shù)單元有四個10進(jìn)制計(jì)數(shù)器cnt10,一個10進(jìn)制計(jì)數(shù)器cnt10_d。前者復(fù)位值為0;后者復(fù)位值為3,為價(jià)格的第三位計(jì)數(shù)。它的內(nèi)部還有一個指定

34、個數(shù)脈沖產(chǎn)生器price_s。根據(jù)停車信號stop的選擇里程計(jì)費(fèi)信號p_mil或p_t,當(dāng)計(jì)費(fèi)信號為'1'時(shí),輸入適當(dāng)個脈沖,當(dāng)計(jì)費(fèi)信號為'0',脈沖發(fā)生器price_s復(fù)位。當(dāng)計(jì)費(fèi)開關(guān)switch或復(fù)位信號rst為'1',計(jì)價(jià)器所有模塊復(fù)位。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具體程序代碼詳見附錄。</p><p><b>  顯示模塊

35、設(shè)計(jì)</b></p><p>  顯示模塊包含一個8進(jìn)制計(jì)數(shù)器cnt8,七段數(shù)碼管譯碼器decl7s,實(shí)驗(yàn)箱上的3/8譯碼器。還有五個狀態(tài)顯示燈,分別為停車狀態(tài)指示stop_s,計(jì)費(fèi)狀態(tài)指示switch_s,3個當(dāng)前顯示內(nèi)容標(biāo)志燈sta(2..0)。當(dāng)系統(tǒng)復(fù)位時(shí),數(shù)碼管一起顯示相同的任意數(shù),五個狀態(tài)顯示燈一起被點(diǎn)亮。正常顯示時(shí),等時(shí)信息與計(jì)價(jià)/計(jì)程信號以5s為周期交替顯示。具體程序代碼詳見附錄。<

36、;/p><p>  運(yùn)算控制模塊TAXI設(shè)計(jì)</p><p>  運(yùn)算控制模塊將以上各模塊進(jìn)行連接,綜合,構(gòu)成出租車計(jì)價(jià)器。其輸入端有系統(tǒng)時(shí)鐘輸入端clk、系統(tǒng)復(fù)位信號輸入端rst、停車信號輸入端stop、計(jì)費(fèi)開關(guān)switch。輸出端有數(shù)碼管字形輸入端segout、point、位選信號輸出端wx、狀態(tài)燈控制端stop_s、switch_s、sta。具體程序代碼詳見附錄。</p>

37、<p><b>  代碼仿真結(jié)果</b></p><p>  上文中提到的六個模塊中還運(yùn)用了一些更小的例化模塊。這些小模塊被上面的設(shè)計(jì)多次調(diào)用,它們雖然小,功能簡單、單一,但是它們功能的正確是調(diào)用模塊乃至整個設(shè)計(jì)功能的保證,它們是整個設(shè)計(jì)的基石,因此在此著重對小模塊的邏輯功能與仿真結(jié)果進(jìn)行了說明。仿真結(jié)果分為功能仿真與邏輯仿真兩幅圖進(jìn)行呈現(xiàn)。我們會發(fā)現(xiàn)時(shí)序仿真與功能仿真的波形有差異

38、,這是因?yàn)樵趯?shí)際門電路的運(yùn)行中,電平的處理過程造成了信號的延時(shí)。</p><p>  有限次數(shù)脈沖發(fā)生模塊仿真結(jié)果</p><p>  該模塊的任務(wù)是當(dāng)使能信號rst為'1'時(shí)產(chǎn)生規(guī)定個方波信號,之后輸出結(jié)果為'0'。此處產(chǎn)生兩個脈沖。</p><p>  圖2.有限次數(shù)脈沖發(fā)生模塊功能仿真圖</p><p>

39、  圖3.有限次數(shù)脈沖發(fā)生模塊時(shí)序仿真圖</p><p><b>  計(jì)數(shù)器模塊仿真結(jié)果</b></p><p>  該模塊的任務(wù)是當(dāng)輸入脈沖時(shí),進(jìn)行計(jì)數(shù),當(dāng)有復(fù)位信號時(shí),計(jì)數(shù)器復(fù)位。當(dāng)計(jì)數(shù)器計(jì)滿后,產(chǎn)生進(jìn)位信號。此處設(shè)定計(jì)數(shù)器的模制為10,復(fù)位初始值為0.</p><p>  圖4.計(jì)數(shù)器模塊功能仿真圖</p><p>

40、;  圖5計(jì)數(shù)器模塊時(shí)序仿真圖</p><p>  七段數(shù)碼管模塊仿真結(jié)果</p><p>  該模塊的任務(wù)是根據(jù)輸入的十六進(jìn)制信號,輸出數(shù)碼管顯示其字形的電平信號。</p><p>  圖6.七段數(shù)碼管模塊功能仿真圖</p><p>  圖7.七段數(shù)碼管模塊時(shí)序仿真圖</p><p><b>  分頻器模塊

41、仿真結(jié)果</b></p><p>  該模塊的任務(wù)是將輸入的時(shí)鐘信號,進(jìn)行偶數(shù)次分頻,此處選為4分頻進(jìn)行仿真。</p><p>  圖8.分頻器模塊功能仿真圖</p><p>  圖9.分頻器模塊時(shí)序仿真圖</p><p><b>  硬件調(diào)試</b></p><p>  在完成程序綜

42、合后,進(jìn)行硬件調(diào)試之前,先要對芯片進(jìn)行定義。具體操作如下:</p><p>  首先點(diǎn)擊Assignments—Device,選擇實(shí)驗(yàn)箱所用芯片型號EP1C3T144C8。點(diǎn)選Device and Pin Options。在這里選擇Unused Pins選項(xiàng)卡,將Reserve all unused pins選為As input tri-stated。</p><p>  然后開始進(jìn)行管腳

43、設(shè)定,根據(jù)實(shí)驗(yàn)箱的資源配置設(shè)置如下:</p><p>  表1.芯片管腳分配表</p><p>  再次進(jìn)行綜合,正確后就可將文件下載到芯片中。連接下載線,調(diào)整實(shí)驗(yàn)箱的跳線后,打開電源,經(jīng)QuartusⅡ中的“PROGRAMMER”菜單,調(diào)出編程器窗口。按下編程器窗口中的“START”按鈕,設(shè)計(jì)的內(nèi)容就開始下載到FPGA芯片中。</p><p>  進(jìn)行多組功能組合

44、測試,顯示結(jié)果符合設(shè)計(jì)要求,證明設(shè)計(jì)成功。</p><p><b>  心得體會</b></p><p>  本次課程設(shè)計(jì)至此已經(jīng)接近尾聲,兩周的時(shí)間雖然很短暫,但在這兩個星期的設(shè)計(jì)過程中收獲頗豐。設(shè)計(jì)的核心內(nèi)容就是QuartusⅡ環(huán)境中,利用VHDL語言設(shè)計(jì)出基于FPGA的出租車計(jì)費(fèi)器。整個設(shè)計(jì)過程中首先對EDA(電子設(shè)計(jì)自動化)這門課程有了更深的了解,因?yàn)檎n程設(shè)計(jì)

45、本身要求將以前所學(xué)的理論知識運(yùn)用到實(shí)際的電路設(shè)計(jì)當(dāng)中去,在電路的設(shè)計(jì)過程中,無形中便加深了對VHDL語言的了解及運(yùn)用能力,對課本以及以前學(xué)過的知識有了一個更好的總結(jié)與理解;以前的EDA實(shí)驗(yàn)只是針對某一個小的功能設(shè)計(jì),而此次得EDA課程設(shè)計(jì)對我們的總體電路的設(shè)計(jì)的要求更嚴(yán)格,需要通過翻閱復(fù)習(xí)以前學(xué)過的知識確立了實(shí)驗(yàn)總體設(shè)計(jì)方案,然后逐步細(xì)化進(jìn)行各模塊的設(shè)計(jì);其次,在電路仿真的過程中總會出現(xiàn)一些問題,需要我們細(xì)心解決,所以這兩周下來,我對電

46、路故障的排查能力有了很大的提高;再次,通過此次課程設(shè)計(jì),我對設(shè)計(jì)所用到的軟件有了更加深刻地了解,這對我們以后的工作和學(xué)習(xí)的幫助都很有用處。</p><p>  感謝學(xué)校給我們這次機(jī)會,鍛煉了我們的動手能力。通過這次課設(shè)讓我明白了理論和實(shí)際操作之間差距,而且也讓我很明確得意識到自己在VHDL語言的語法理解上有很多的知識漏洞,以后應(yīng)該多鉆研一下。同時(shí)也感謝指導(dǎo)老師在設(shè)計(jì)過程中的輔導(dǎo)以及同學(xué)的幫助。</p>

47、<p><b>  參考文獻(xiàn)</b></p><p>  [1]潘松,黃繼業(yè).EDA技術(shù)與VHDL.北京:清華大學(xué)出版社,2007.1.</p><p>  [2]宋嘉玉,孫麗霞.EDA實(shí)用技術(shù).北京:人民郵電出版社,2006.12. </p><p>  [3]齊洪喜,陸穎.VHDL電路設(shè)計(jì)實(shí)用技術(shù).北京:清華大學(xué)出版社,200

48、4.5.</p><p>  [4]劉艷萍,高振斌,李志軍.EDA實(shí)用技術(shù)及應(yīng)用.北京:國防工業(yè)出版社,2006.1.</p><p>  [5]章彬宏.EDA應(yīng)用技術(shù).北京:北京理工大學(xué)出版社,2007.7.</p><p><b>  附錄</b></p><p><b>  程序源代碼</b>

49、</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ---

50、------------------------------------------------------------------------------------------------------------------</p><p>  ENTITY TAXI IS--頂層文件</p><p>  PORT(clk,rst,stop,switch:IN S

51、TD_LOGIC;--時(shí)鐘;復(fù)位、停車、計(jì)費(fèi)開關(guān)</p><p>  point,stop_s,switch_s:OUT STD_LOGIC;--小數(shù)點(diǎn)、停車、計(jì)費(fèi)狀態(tài)</p><p>  segout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--數(shù)碼管輸出端</p><p>  wx:OUT STD_LOGIC_VE

52、CTOR(2 DOWNTO 0);--位選端</p><p>  sta:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--顯示狀態(tài)</p><p>  END ENTITY TAXI;</p><p>  ARCHITECTURE one OF TAXI IS</p><p><b>  --調(diào)用例

53、化元件</b></p><p>  COMPONENT TAXI_FP IS--系統(tǒng)分頻器 </p><p>  PORT(clk:IN STD_LOGIC;--系統(tǒng)時(shí)鐘</p><p>  clk_time,clk_mil,--計(jì)時(shí)時(shí)鐘、計(jì)程時(shí)鐘</p><p>  clk_scan

54、,clk_v:OUT STD_LOGIC);--掃描時(shí)鐘、顯示切換時(shí)鐘</p><p>  END COMPONENT;</p><p>  COMPONENT MIL IS--計(jì)程器</p><p>  PORT(clk,rst,stop:IN STD_LOGIC;--計(jì)程時(shí)鐘、復(fù)位、停車信號</p><p>

55、;  wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);--位選信號</p><p>  p_mil:OUT STD_LOGIC;--里程計(jì)費(fèi)信號</p><p>  datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--輸出里程數(shù)據(jù)</p><p>  END COMPONENT;</p

56、><p>  COMPONENT PRICE IS--計(jì)價(jià)器</p><p>  PORT(clk_sys,p_t,p_mil:IN STD_LOGIC;--系統(tǒng)時(shí)鐘、等時(shí)計(jì)費(fèi)、里程計(jì)費(fèi)信號</p><p>  rst,stop:IN STD_LOGIC;--復(fù)位、停車信號</p><p>  wx:IN STD_

57、LOGIC_VECTOR(2 DOWNTO 0);--位選信號</p><p>  datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--輸出計(jì)價(jià)數(shù)據(jù)</p><p>  END COMPONENT;</p><p>  COMPONENT TIM IS--計(jì)時(shí)器</p><p>  P

58、ORT(clk_time,rst,stop:IN STD_LOGIC;--計(jì)時(shí)時(shí)鐘、復(fù)位、停車信號</p><p>  wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);--位選信號</p><p>  p_up:OUT STD_LOGIC;--等時(shí)計(jì)費(fèi)信號</p><p>  datain:OUT STD_LOGIC

59、_VECTOR(3 DOWNTO 0));--輸出等時(shí)數(shù)據(jù)</p><p>  END COMPONENT;</p><p>  COMPONENT decl7s IS--七段數(shù)碼管譯碼器</p><p>  PORT(data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--輸出數(shù)據(jù)</p><p>

60、;  led7s:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));--輸出電平信號</p><p>  END COMPONENT;</p><p>  COMPONENT cnt8 IS--8進(jìn)制計(jì)數(shù)器</p><p>  PORT (clk:IN STD_LOGIC;--掃描時(shí)鐘</p>&

61、lt;p>  q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--輸出結(jié)果</p><p>  END COMPONENT;</p><p><b>  --信號定義</b></p><p>  SIGNAL clk_time,clk_mil,--計(jì)時(shí)時(shí)鐘、計(jì)程時(shí)鐘</p><

62、p>  clk_scan,clk_v:STD_LOGIC;--掃描時(shí)鐘、顯示切換時(shí)鐘</p><p>  SIGNAL p_mil,p_t,rst_s:STD_LOGIC;--里程等時(shí)計(jì)費(fèi)信號、復(fù)位信號</p><p>  SIGNAL datain,datain_mil,datain_time,--輸出數(shù)據(jù)相關(guān)信號</p><p>

63、;  datain_price:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL wx_signal:STD_LOGIC_VECTOR(2 DOWNTO 0);--位選信號</p><p><b>  BEGIN</b></p><p>  --例化元件連線定義</p>

64、<p>  u1:TAXI_FP PORT MAP(clk,clk_time,clk_mil,clk_scan,clk_v);</p><p>  u2:MILPORT MAP(clk_mil,rst_s,stop,wx_signal,p_mil,datain_mil);</p><p>  u3:PRICEPORT MAP(clk,p_t,p_mil,rst_

65、s,stop,wx_signal,datain_price);</p><p>  u4:TIMPORT MAP(clk_time,rst_s,stop,wx_signal,p_t,datain_time);</p><p>  u5:decl7sPORT MAP(datain,segout);</p><p>  u6:cnt8PORT MAP

66、(clk_scan,wx_signal);</p><p><b>  --信號賦值</b></p><p>  rst_s<=(not switch) OR rst;</p><p>  stop_s<=stop OR rst;</p><p>  switch_s<=switch OR rs

67、t;</p><p>  wx<=wx_signal;</p><p>  --顯示數(shù)據(jù)選擇進(jìn)程</p><p>  PROCESS(rst,clk,wx_signal)</p><p><b>  BEGIN</b></p><p>  IF rst='1' THEN

68、</p><p>  sta <="111";</p><p>  point <='0';</p><p>  ELSIF rising_edge(clk) THEN</p><p>  CASE clk_v IS</p><p>  WHEN '0'

69、;=></p><p>  IF wx_signal>3 THEN</p><p>  datain<=datain_price;</p><p>  ELSE datain<=datain_mil;</p><p><b>  END IF;</b></p><p>  

70、sta<="110";</p><p>  IF wx_signal="101" OR wx_signal="001" THEN </p><p>  point<='1';</p><p>  ELSE point<='0';</p><

71、;p><b>  END IF;</b></p><p>  WHEN '1'=></p><p>  datain<=datain_time;</p><p>  sta<="001";</p><p>  point<='0';<

72、;/p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  END ARCHITECTURE;</p><p>  -----------------------

73、----------------------------------------------------------------------------------------------</p><p>  ENTITY cnt3 IS--三進(jìn)制計(jì)數(shù)器</p><p>  PORT (clk,rst:IN STD_LOGIC;</p><p>

74、  q:out STD_LOGIC);</p><p>  END ENTITY;</p><p>  ARCHITECTURE bhv OF cnt3 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(clk)</p><p>  VARIABLE cn

75、ter :STD_LOGIC_VECTOR (1 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  IF (rst='1') </p><p><b>  THEN</b></p><p>  cnter:="00&

76、quot;;</p><p>  q<='0';</p><p><b>  ELSE</b></p><p>  IF rising_edge(clk) THEN </p><p>  if cnter="10" then cnter :="00&

77、quot;;q<='1';</p><p>  elsecnter:=cnter+1;q<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END

78、IF;</b></p><p>  END PROCESS;</p><p><b>  END bhv;</b></p><p>  ---------------------------------------------------------------------------------------------------

79、------------------</p><p>  ENTITY cnt8 IS--八進(jìn)制計(jì)數(shù)器</p><p>  PORT (clk:IN STD_LOGIC;</p><p>  q:out STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p>  END ENTITY;</p

80、><p>  ARCHITECTURE bhv OF cnt8 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(clk)</p><p>  VARIABLE cnter :STD_LOGIC_VECTOR (2 DOWNTO 0);</p><p><

81、b>  BEGIN</b></p><p>  IF rising_edge(clk) THEN </p><p>  if cnter="111" then cnter :="000";</p><p>  elsecnter:=cnter+1;</p><p><b>

82、  END IF;</b></p><p><b>  end if;</b></p><p><b>  q<=cnter;</b></p><p>  END PROCESS;</p><p><b>  END bhv;</b></p>

83、<p>  ---------------------------------------------------------------------------------------------------------------------</p><p>  ENTITY cnt10 IS--十進(jìn)制計(jì)數(shù)器</p><p>  PORT(clk,rst:I

84、N STD_LOGIC;</p><p>  co:OUT STD_LOGIC;</p><p>  q:buffer STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY;</p><p>  ARCHITECTURE bhv OF cnt10 IS</p><

85、p>  SIGNAL cnter :STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(clk,rst) </p><p><b>  BEGIN</b></p><p>  IF (rst='

86、;1') </p><p><b>  THEN</b></p><p>  cnter<="0000";</p><p>  co<='0';</p><p><b>  ELSE</b></p&g

87、t;<p>  IF rising_edge(clk) THEN </p><p>  IF cnter="1001" THEN cnter <="0000";co<='1';</p><p>  ELSEcnter<=cnter+1;co<='0';</p>&l

88、t;p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  q<=cnter;</b></p><p>  END PROC

89、ESS;</p><p><b>  END bhv;</b></p><p>  ---------------------------------------------------------------------------------------------------------------------</p><p>  ENT

90、ITY cnt10_d IS--初值為“3”的十進(jìn)制計(jì)數(shù)器</p><p>  PORT(clk,rst:IN STD_LOGIC;</p><p>  co:OUT STD_LOGIC;</p><p>  q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END EN

91、TITY;</p><p>  ARCHITECTURE bhv OF cnt10_d IS</p><p>  SIGNAL cnter :STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(clk,rst)</p>

92、;<p><b>  BEGIN</b></p><p>  IF (rst='1') </p><p><b>  THEN</b></p><p>  cnter<="0011";</p><p>  co<=

93、9;0';</p><p><b>  ELSE</b></p><p>  IF rising_edge(clk) THEN </p><p>  IF cnter="1001" THEN cnter <="0000";co<='1';</p&

94、gt;<p>  ELSEcnter<=cnter+1;co<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p>&

95、lt;p><b>  q<=cnter;</b></p><p>  END PROCESS;</p><p><b>  END bhv;</b></p><p>  -----------------------------------------------------------------------

96、----------------------------------------------</p><p>  ENTITY cnt24 IS--24進(jìn)制計(jì)數(shù)器</p><p>  PORT (clk,rst:IN STD_LOGIC;</p><p>  c1,c0:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0))

97、;</p><p>  END ENTITY;</p><p>  ARCHITECTURE bhv OF cnt24 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(clk,rst)</p><p>  VARIABLE cnter :INTEGER:=

98、0 ;</p><p><b>  BEGIN</b></p><p>  IF (rst='1') THEN</p><p>  c1<="0000";</p><p>  c0<="0000";</p><p><

99、;b>  ELSE</b></p><p>  IF rising_edge(clk) THEN </p><p>  IF (c0="1001" OR (c0="0011" AND c1="0010"))</p><p><b>  THEN </b><

100、/p><p>  c0<="0000";</p><p>  IF c1="0010"</p><p><b>  THEN</b></p><p>  c1<="0000";</p><p><b>  ELSE<

101、;/b></p><p><b>  c1<=c1+1;</b></p><p><b>  END IF;</b></p><p><b>  ELSE</b></p><p><b>  c0<=c0+1;</b></p>

102、<p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END bhv;</b&

103、gt;</p><p>  ---------------------------------------------------------------------------------------------------------------------</p><p>  ENTITY cnt60 IS--60進(jìn)制計(jì)數(shù)器</p><p>

104、  PORT (clk,rst:IN STD_LOGIC;</p><p>  co:OUT STD_LOGIC;</p><p>  c1,c0:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY;</p><p>  ARCHITECTURE bhv OF cnt

105、60 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(clk,rst)</p><p>  VARIABLE cnter :INTEGER:=0 ;</p><p><b>  BEGIN</b></p><p>  IF (rst=

106、'1') </p><p><b>  THEN</b></p><p>  c1<="0000";</p><p>  c0<="0000";</p><p>  co<='0';</

107、p><p><b>  ELSE</b></p><p>  IF rising_edge(clk) THEN </p><p>  IF (c0="1001") </p><p><b>  THEN </b></p><p>  c0<="

108、;0000";</p><p>  IF c1="0101"</p><p><b>  THEN</b></p><p>  c1<="0000";</p><p>  co<='1';</p><p>

109、;<b>  ELSE</b></p><p><b>  c1<=c1+1;</b></p><p><b>  co<='0';</b></p><p><b>  END IF;</b></p><p><b>

110、  ELSE</b></p><p><b>  c0<=c0+1;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b><

111、;/p><p>  END PROCESS;</p><p><b>  END bhv;</b></p><p>  ENTITY decl7s IS--七段數(shù)碼管譯碼器</p><p>  PORT( data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>&

112、lt;p>  led7s:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p><b>  END;</b></p><p>  ARCHITECTURE one OF decl7s IS</p><p><b>  BEGIN</b></p><p>  P

113、ROCESS(data)</p><p><b>  BEGIN</b></p><p>  CASE data IS</p><p>  WHEN "0000" => led7s <="0111111" ;</p><p>  WHEN "0001"

114、; => led7s <="0000110" ;</p><p>  WHEN "0010" => led7s <="1011011" ;</p><p>  WHEN "0011" => led7s <="1001111" ;</p>

115、<p>  WHEN "0100" => led7s <="1100110" ;</p><p>  WHEN "0101" => led7s <="1101101" ;</p><p>  WHEN "0110" => led7s <=

116、"1111101" ;</p><p>  WHEN "0111" => led7s <="0000111" ;</p><p>  WHEN "1000" => led7s <="1111111" ;</p><p>  WHEN "

117、;1001" => led7s <="1101111" ;</p><p>  WHEN "1010" => led7s <="1110111" ;</p><p>  WHEN "1011" => led7s <="1111100" ;<

118、/p><p>  WHEN "1100" => led7s <="0111001" ;</p><p>  WHEN "1101" => led7s <="1011110" ;</p><p>  WHEN "1110" => led7s &

119、lt;="0000000" ;</p><p>  WHEN "1111" => led7s <="1000000" ;</p><p>  WHEN OTHERS => NULL;</p><p><b>  END CASE;</b></p><

120、;p>  END PROCESS;</p><p><b>  END one;</b></p><p>  ---------------------------------------------------------------------------------------------------------------------</p>

121、<p>  ENTITY fp IS--通用分頻器</p><p>  GENERIC (N:integer); </p><p>  PORT ( clk:IN STD_LOGIC;</p><p>  fpq:BUFFER STD_LOGIC);</p><p>  END

122、 ENTITY;</p><p>  ARCHITECTURE bhv OF fp IS</p><p><b>  BEGIN</b></p><p>  PROCESS(clk)</p><p>  VARIABLE cnter :INTEGER:=0;</p><p><b>  

123、BEGIN</b></p><p>  IF rising_edge(clk) THEN </p><p>  IF cnter=N-1 then cnter :=0;fpq<=not fpq;</p><p>  else cnter:=cnter+1;</p><p><b>  END IF;</b&g

124、t;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END bhv;</b></p><p>  ------------------------------------------------------------

125、---------------------------------------------------------</p><p>  ENTITY MIL IS--計(jì)程器</p><p>  PORT(clk,rst,stop:IN STD_LOGIC;</p><p>  wx:IN STD_LOGIC_VECTOR(2

126、DOWNTO 0);</p><p>  p_mil:OUT STD_LOGIC;</p><p>  datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY MIL;</p><p>  ARCHITECTURE one OF MIL IS</p

127、><p>  COMPONENT fp IS </p><p>  GENERIC (N:integer);</p><p>  PORT (clk:IN STD_LOGIC;</p><p>  fpq:out STD_LOGIC);</p><p>  END COMPONENT

128、;</p><p>  COMPONENT cnt10 IS</p><p>  PORT(clk,rst:IN STD_LOGIC;</p><p>  co:OUT STD_LOGIC;</p><p>  q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p&

溫馨提示

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

評論

0/150

提交評論