畢業(yè)論文---基于eda的出租車計(jì)價(jià)系統(tǒng)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(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、<p><b>  摘 要</b></p><p>  汽車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。因此,汽車計(jì)價(jià)器的研究也是十分有一個(gè)應(yīng)用價(jià)值的。 隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受到越來(lái)越多人的關(guān)

2、注。于是,出租車行業(yè)以低價(jià)高質(zhì)的服務(wù)給人們帶來(lái)了出行的享受。但是總存在著買賣糾紛困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一矛盾的最好方法就是改良計(jì)價(jià)器。用更加精良的計(jì)價(jià)器來(lái)為乘客提供更加方便快捷的服務(wù)。 我國(guó)在70年代開(kāi)始出現(xiàn)出租車,但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國(guó)外進(jìn)口不但不夠準(zhǔn)確,價(jià)格還十分昂貴。隨著改革開(kāi)放日益深入,出租車行業(yè)的發(fā)展勢(shì)頭已十分突出,國(guó)內(nèi)各機(jī)械廠家紛紛推出國(guó)產(chǎn)計(jì)價(jià)器。出租車計(jì)價(jià)器的功能從剛開(kāi)始的只顯示路程(需要司機(jī)自

3、己定價(jià),計(jì)算后四舍五入),到能夠自主計(jì)費(fèi),以及現(xiàn)在的能夠打一發(fā)票和語(yǔ)音提示、按時(shí)間自主變動(dòng)單價(jià)等功能。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度。本文中所用到的VHDL(Very High Speed </p><p>  文章首先簡(jiǎn)述了出租車控制系統(tǒng)的意義和發(fā)展現(xiàn)狀以及VHDL語(yǔ)言的特點(diǎn),然后介紹了出租車控系統(tǒng)的設(shè)計(jì)要求,設(shè)計(jì)思路,并給出了總體設(shè)計(jì)框圖,通過(guò)分析方框圖繪出詳細(xì)的模

4、塊電路流程圖并寫出程序源代碼,將代碼在max+plus2軟件上進(jìn)行編譯仿真,波形基本符合設(shè)計(jì)要求。</p><p>  關(guān)鍵詞:出租車計(jì)價(jià)器 VHDL語(yǔ)言 max+plus2</p><p><b>  ABSTRACT</b></p><p>  Auto meter is both passengers and the driver o

5、f the trade standards, it is an important symbol of the taxi industry development, and is the most important tool in the taxi. It relates to the interests of both parties. Have good performance of the taxi driver meter w

6、hether friends or passengers alike is very necessary. Therefore, the study is also very car meter is an application value.</p><p>  As standard of living rise, people no longer eat satisfied enjoy comfortabl

7、e, travel has been more and more people's attention. Hence, the taxi industry with low quality of service has brought people travel to enjoy. But there are always trading disputes bothering industry development. But

8、in the taxi industry to solve this contradiction in the best method is improved on the meter. Use more sophisticated meter to provide more convenient services.</p><p>  Now cities taxi industry has universal

9、 meter automatic meter, so the development of technology already entrenched. And some of the smaller cities, but not with the urban construction speed increasingly, a symbol of the taxi trade city appearance will acceler

10、ate the development of popularization, the meter is undoubtedly, so future automobile meter market is very promising.</p><p>  China began to appear in the 1970s, but then the taxi billing system mostly impo

11、rted not only accurate, the price also is very expensive. Along with the reform and opening-up, the taxi industry development momentum has a very prominent, the domestic various machinery manufacturers have domestic mete

12、r. The meter taxi from the beginning of the function to display only the driver himself away (after), pricing, and are able to independently rounding billing, and now can play an invoice and audio, ac</p><p>

13、;  This article first introduced the meaning and taxi control system development status and the characteristics of the language of VHDL, then introduces the design of the control system of the taxi, design ideas, and pre

14、sents the overall design, through the analysis of the block diagram of the draw detailed modules circuit chart and write program source code, will in plus2 + Max compiled on software simulation, waveform basic comply wit

15、h the design requirements.</p><p>  Keywords: VHDL language auto meter plus2 + Max</p><p><b>  目 錄</b></p><p>  摘 要…………………………………………………………………………………………I</p><

16、;p>  ABSTRACT………………………………………………………………………………………II</p><p>  目 錄………………………………………………………………………………………III</p><p>  引 言……………………………………………………………………………………………1</p><p>  1 概述…………………………………………

17、………………………………………………2</p><p>  1.1 出租車計(jì)價(jià)器的發(fā)展及研究現(xiàn)狀……………………………………………………2</p><p>  1.2 出租車計(jì)價(jià)器設(shè)計(jì)的主要內(nèi)容………………………………………………………3</p><p>  1.3 設(shè)計(jì)方法………………………………………………………………………………3</p><

18、;p>  1.4方案比較………………………………………………………………………………3</p><p>  2 出租車計(jì)價(jià)器系統(tǒng)的總體設(shè)計(jì)……………………………………………………………5</p><p>  2.1 系統(tǒng)總體設(shè)計(jì)要求……………………………………………………………………5</p><p>  2.2 設(shè)計(jì)思路…………………………………………………

19、……………………………5</p><p>  2.3 出租車計(jì)價(jià)器系統(tǒng)工作流程圖………………………………………………………6</p><p>  3 系統(tǒng)設(shè)計(jì)開(kāi)發(fā)工作平臺(tái)的介紹……………………………………………………………7</p><p>  3.1 實(shí)驗(yàn)板的介紹…………………………………………………………………………7</p><p> 

20、 3.1.1 ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)介紹……………………………………………………7</p><p>  3.1.2 ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)各模塊功能介紹………………………………………7</p><p>  4 VHDL語(yǔ)言基礎(chǔ)………………………………………………………………………………9</p><p>  4.1 概述………………………………………

21、……………………………………………9</p><p>  4.2 VHDL語(yǔ)言的特點(diǎn)………………………………………………………………………8</p><p>  4.3 VHDL語(yǔ)言編程概述……………………………………………………………………10</p><p>  4.3.1 VHDL程序的總體結(jié)構(gòu)…………………………………………………………10</p>

22、;<p>  4.3.2實(shí)體設(shè)計(jì)概述…………………………………………………………………12</p><p>  4.3.3結(jié)構(gòu)體設(shè)計(jì)概述………………………………………………………………13</p><p>  4.3.4配置……………………………………………………………………………14</p><p>  4.4 VHDL設(shè)計(jì)的流程及階段劃分……………

23、…………………………………………15</p><p>  4.4.1設(shè)計(jì)流程………………………………………………………………………15</p><p>  4.4.2設(shè)計(jì)階段的劃分………………………………………………………………16</p><p>  5 MAX+PLUSⅡ的使用…………………………………………………………………………17</p>&

24、lt;p>  5.1 概述…………………………………………………………………………………17</p><p>  5.2 MAX+PLUSⅡ的應(yīng)用…………………………………………………………………17</p><p>  5.2.1 設(shè)計(jì)輸入……………………………………………………………………17</p><p>  5.2.2 設(shè)計(jì)項(xiàng)目的編譯……………………

25、………………………………………18</p><p>  5.2.3 模擬仿真和定時(shí)分析………………………………………………………18</p><p>  6 出租車計(jì)價(jià)器系統(tǒng)的VHDL程序設(shè)計(jì)……………………………………………………20</p><p>  6.1 模塊劃分……………………………………………………………………………20</p><

26、p>  6.2 計(jì)費(fèi)和路程計(jì)算模塊………………………………………………………………21</p><p>  6.3 片選模塊………………………………………………………………………………22</p><p>  6.4 小數(shù)點(diǎn)控制模塊……………………………………………………………………23</p><p>  6.5 七段譯碼顯示模塊……………………………………

27、……………………………23</p><p>  7 出租車計(jì)價(jià)器系統(tǒng)的仿真結(jié)果及分析…………………………………………………26</p><p>  7.1 仿真實(shí)驗(yàn)步驟………………………………………………………………………26</p><p>  7.2 仿真波形圖分析………………………………………………………………………26</p><p>

28、;  結(jié) 束 語(yǔ)………………………………………………………………………………29</p><p>  參 考 文 獻(xiàn)…………………………………………………………………………………30</p><p>  致 謝………………………………………………………………………………………31</p><p><b>  引 言</b></p>

29、;<p>  隨著我國(guó)社會(huì)經(jīng)濟(jì)的全面發(fā)展,各大中小城市的出租車營(yíng)運(yùn)事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普通的交通工具。出租車計(jì)價(jià)器是出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表室出租車市場(chǎng)規(guī)范化,標(biāo)準(zhǔn)化以及減少司機(jī)與乘客之間發(fā)生糾紛的重要設(shè)備。一種功能完備,簡(jiǎn)單易用,計(jì)量準(zhǔn)確的出租車計(jì)價(jià)器是加強(qiáng)出租車行業(yè)管理,提高服務(wù)質(zhì)量的必需品。本設(shè)計(jì)就是采用VHDL硬件描述語(yǔ)言作為設(shè)計(jì)手段,采用自頂向下的設(shè)計(jì)思路,得到一種出租車計(jì)價(jià)系統(tǒng)

30、的軟件結(jié)構(gòu),通過(guò)max+plus2軟件下進(jìn)行仿真,證明所設(shè)計(jì)的電路系統(tǒng)完成了出租車計(jì)價(jià)的功能,各項(xiàng)指標(biāo)符合設(shè)計(jì)要求,具有一定的實(shí)用性。</p><p>  本文是在vhdl的基礎(chǔ)上對(duì)出租車計(jì)價(jià)器進(jìn)行設(shè)計(jì)來(lái)實(shí)現(xiàn)其基本功能的。由于以往的設(shè)計(jì)主要是通過(guò)兩種:數(shù)字電路和模擬電路設(shè)計(jì),基于單片機(jī)的設(shè)計(jì)。第一種方式的缺點(diǎn)既所設(shè)計(jì)的整體電路規(guī)模較大,所用的器件較多,造成故障率高,導(dǎo)致計(jì)價(jià)器不夠準(zhǔn)確;而基于單片機(jī)的設(shè)計(jì),雖然其有

31、著開(kāi)發(fā)及制作成本低,能較大程度的利用資源,但其外圍電路較多,且調(diào)試復(fù)雜,抗干擾能力差,也導(dǎo)致計(jì)價(jià)器不夠準(zhǔn)確。而本文所用的vhdl具有穩(wěn)定性好,抗干擾能力強(qiáng)等優(yōu)點(diǎn),且非常適合做為出租車計(jì)價(jià)器的控制核心,所以選擇用vhdl來(lái)對(duì)計(jì)價(jià)器進(jìn)行設(shè)計(jì)來(lái)實(shí)現(xiàn)其功能。</p><p>  本設(shè)計(jì)是對(duì)出租車計(jì)價(jià)器的四個(gè)模塊進(jìn)行分析的,并結(jié)合相關(guān)文獻(xiàn),對(duì)其中提到的以下四個(gè)模塊的設(shè)計(jì)進(jìn)行了總結(jié),綜述如下:</p><

32、p>  計(jì)費(fèi)和路程計(jì)算模塊:計(jì)程模塊可以說(shuō)是此系統(tǒng)中的重中之重,因?yàn)橛?jì)費(fèi)的主體是路程在占主導(dǎo)因素的,因此此模塊的設(shè)計(jì)要非常的仔細(xì)和精確。計(jì)程模塊中的有內(nèi)部變量來(lái)判斷路程是否大于三公里,當(dāng)大于三公里時(shí),使得計(jì)費(fèi)模塊開(kāi)始工作,非則計(jì)費(fèi)模塊一直是賦值為8,路程根據(jù)時(shí)鐘來(lái)進(jìn)行計(jì)算。文獻(xiàn)《計(jì)算機(jī)技術(shù)與發(fā)展》第12期的文章《出租車幾家系統(tǒng)的設(shè)計(jì)》和《計(jì)算機(jī)與信息技術(shù)》第九期的文章《多功能出租車計(jì)價(jià)器的設(shè)計(jì)》中對(duì)計(jì)程模塊是這樣寫的:根據(jù)提供的時(shí)

33、鐘信號(hào),計(jì)算車租車所行駛的里程數(shù)。計(jì)費(fèi)模塊可以說(shuō)是最最關(guān)鍵的一部分,因此要更加的準(zhǔn)確和精確。計(jì)費(fèi)模塊是對(duì)路程的計(jì)算得到的費(fèi)用。文獻(xiàn)《計(jì)算機(jī)技術(shù)與發(fā)展》第12期文章《出租車幾家系統(tǒng)的設(shè)計(jì)》和《計(jì)算機(jī)與信息技術(shù)》中的《多動(dòng)能出租車計(jì)價(jià)器的設(shè)計(jì)》:當(dāng)出租車載上乘客并起步,駕駛員將空車指示牌扳倒后,空車指示牌指示燈熄滅,計(jì)價(jià)系統(tǒng)開(kāi)始進(jìn)入計(jì)費(fèi)狀態(tài)。</p><p>  片選模塊:本系統(tǒng)中有兩片選模塊,其中一個(gè)也可叫動(dòng)態(tài)掃描

34、模塊。第一個(gè)片選模塊控制實(shí)驗(yàn)箱上的數(shù)碼管顯示的位置和數(shù)量,動(dòng)態(tài)掃描模塊可將現(xiàn)實(shí)的結(jié)果顯示在數(shù)碼管上,時(shí)鐘比較大的時(shí)候,可以讓我們看上去多個(gè)數(shù)碼管顯示數(shù)值,與顯示模塊相對(duì)應(yīng)。</p><p>  小數(shù)點(diǎn)控制模塊:因?yàn)槁烦蹋鲎廛囐M(fèi)用不可能全是整數(shù),所以有小數(shù)位,那對(duì)應(yīng)就要在數(shù)碼管上顯示小數(shù)點(diǎn),本模塊就是專門起到控制小數(shù)點(diǎn)的作用。當(dāng)模塊中的seldp為不同數(shù)值時(shí),可控制不同數(shù)碼管顯示小數(shù)點(diǎn),即當(dāng)dpout=‘1’時(shí)即

35、可。</p><p>  七段譯碼器模塊顯示模塊:即通過(guò)選擇將出租車的行駛路程數(shù),費(fèi)用通過(guò)數(shù)碼管進(jìn)行顯示。文獻(xiàn)《計(jì)算機(jī)技術(shù)與發(fā)展》12期中文章《出租車幾家系統(tǒng)的設(shè)計(jì)》《計(jì)算機(jī)與信息技術(shù)》中的《多功能出租車計(jì)價(jià)器的設(shè)計(jì)》這樣寫道:實(shí)現(xiàn)計(jì)價(jià),計(jì)程的顯示。用到8個(gè)數(shù)碼管,4個(gè)用來(lái)顯示路程,單位是公里即km,另外四個(gè)用來(lái)顯示費(fèi)用,單位是人名幣元。路程上限為99.99km,車費(fèi)上限為99.99元,因?yàn)閿?shù)碼管有限,顯示的精確

36、有要求所以上限都有一定的限制。</p><p>  本設(shè)計(jì)是基于vhdl進(jìn)行編程,然后在max+pus2進(jìn)行波形仿真,對(duì)主題FPGA的設(shè)計(jì)書本《數(shù)字邏輯eda設(shè)計(jì)與實(shí)踐》,劉昌華是這樣描述的:“該電路的核心就是技術(shù)分頻電路,通過(guò)vhdl語(yǔ)言的順序語(yǔ)句if-then-else根據(jù)一個(gè)或者一組條件來(lái)選擇某一特定的執(zhí)行通道,生成計(jì)費(fèi)數(shù)據(jù)里程數(shù)據(jù)等等。對(duì)模塊劃分書本《EDA技術(shù)綜合應(yīng)用實(shí)力與分析》譚會(huì)生這樣寫道:根據(jù)設(shè)計(jì)

37、的要求,我們可將整個(gè)系統(tǒng)的taxi分成4個(gè)模塊,他們分別是:計(jì)費(fèi)和路程計(jì)算模塊,片選模塊,小數(shù)點(diǎn)控制模塊,七段譯碼顯示模塊。</p><p>  通過(guò)對(duì)以上文獻(xiàn)的分析及綜合,得到了本設(shè)計(jì)的設(shè)計(jì)思路和設(shè)計(jì)框圖,并通過(guò)編程,進(jìn)行仿真來(lái)實(shí)現(xiàn)出租車計(jì)價(jià)器的功能。</p><p><b>  1 概述</b></p><p>  1.1 出租車計(jì)價(jià)器的發(fā)

38、展及研究現(xiàn)狀</p><p>  出租車行業(yè)在我國(guó)是八十年代初興起的一項(xiàng)新興行業(yè),隨著我國(guó)國(guó)名經(jīng)濟(jì)的高速發(fā)展,出租車已成為城市公共交通的重要組成部分。多年來(lái)國(guó)內(nèi)普遍使用的計(jì)價(jià)器只具備單一的脊梁功能。目前全世界的計(jì)價(jià)器中90%為臺(tái)灣所生產(chǎn)。現(xiàn)今我國(guó)生產(chǎn)計(jì)價(jià)器的企業(yè)有上百家,主要集中在北京,上海,沈陽(yáng)和廣州等地。我國(guó)第一家生產(chǎn)計(jì)價(jià)器的是重慶起重機(jī)廠,最早的計(jì)價(jià)器全部使用機(jī)械齒輪結(jié)構(gòu),只能簡(jiǎn)單的計(jì)程功能,可以說(shuō),早期的

39、計(jì)價(jià)器就是個(gè)里程表。隨著科學(xué)技的發(fā)展,產(chǎn)生了第二代計(jì)價(jià)器。它采用手搖計(jì)算機(jī)與機(jī)械結(jié)構(gòu)相結(jié)合的方式實(shí)現(xiàn)了半機(jī)械半電子化。此時(shí)它在計(jì)程的同時(shí)還完成計(jì)價(jià)的工作。大規(guī)模集成電路的發(fā)展又產(chǎn)生了第三代計(jì)價(jià)器,也就是全電子化的計(jì)價(jià)器。它的功能也在不斷完善。出租車計(jì)價(jià)器是一種專用的計(jì)量?jī)x器,它安裝在出租車上,能夠連續(xù)累加,并只是出行中任意時(shí)刻乘客應(yīng)付費(fèi)用。隨著電子技術(shù)的發(fā)展以及對(duì)計(jì)價(jià)器的不斷改進(jìn)和完善,便產(chǎn)生了諸多的附加功能。例如:(1)LED顯示功能

40、,數(shù)碼管的使用讓計(jì)價(jià)器實(shí)現(xiàn)多屏現(xiàn)實(shí)的功能;(2)永久時(shí)鐘功能,在非營(yíng)業(yè)狀態(tài)下,日歷時(shí)鐘芯片的使用使計(jì)價(jià)器可以顯示永久時(shí)鐘;(3)存儲(chǔ)功能,可存儲(chǔ)多項(xiàng)營(yíng)運(yùn)數(shù)據(jù)。</p><p>  現(xiàn)在市面上使用的出租車計(jì)價(jià)器傳感器較多采用耐高溫的霍爾元件,使計(jì)價(jià)器即使在任何惡劣條件下仍能保持正常工作狀態(tài)。霍爾元件的結(jié)構(gòu)很簡(jiǎn)單,它是由霍爾片,四級(jí)引線和殼體組成。霍爾片是一塊矩形半導(dǎo)體單晶薄片。在它的長(zhǎng)度方向兩端面上焊有兩根引線,稱

41、為控制電流短引線,通常用紅色導(dǎo)線。其焊接處稱為控制電流極(或稱激勵(lì)電極),要求焊接處接觸電阻很小,并呈純電阻。在薄片的另梁斷面的中間以點(diǎn)的形式對(duì)稱的含有兩個(gè)霍爾輸出端引線,通常用綠色導(dǎo)線。其焊接處稱為霍爾電極,且電極寬度與長(zhǎng)度之比要小于0.1,否則影像輸出?;魻栐臍んw使用非導(dǎo)磁金屬,陶瓷或環(huán)氧樹(shù)脂封裝。</p><p>  1.2 出租車計(jì)價(jià)器設(shè)計(jì)的主要內(nèi)容</p><p>  設(shè)計(jì)一

42、個(gè)出租車計(jì)價(jià)器,計(jì)費(fèi)包括起步價(jià),行車?yán)锍逃?jì)數(shù),暫停不計(jì)費(fèi)?,F(xiàn)場(chǎng)模擬汽車啟動(dòng),停止,暫停狀態(tài),分別用思維數(shù)碼管顯示金額和路程,各有兩位小數(shù),行程三公里之內(nèi)起步價(jià)8元,超過(guò)三公里,每公里2元。</p><p><b>  1.3 設(shè)計(jì)方法</b></p><p>  本文將使用硬件描述語(yǔ)言VHDL設(shè)計(jì)出租車計(jì)價(jià)器系統(tǒng)。VHDL是高速集成電路硬件描述語(yǔ)言的簡(jiǎn)稱。VHDL是采

43、用可編程邏輯器件通過(guò)對(duì)器件內(nèi)部的設(shè)計(jì)來(lái)實(shí)現(xiàn)系統(tǒng)功能的,是一種基于芯片的設(shè)計(jì)方法,介紹了該系統(tǒng)和關(guān)鍵的設(shè)計(jì)結(jié)果。經(jīng)過(guò)在實(shí)驗(yàn)箱上進(jìn)行硬件測(cè)試,證明該出租車計(jì)價(jià)系統(tǒng)具有使用計(jì)價(jià)器的基本功能。</p><p><b>  1.4 方案比較</b></p><p>  方案一:用單片機(jī)實(shí)現(xiàn):通過(guò)軟件編程,仿真,調(diào)試,符合要求后將程序用編程器械如單片機(jī)芯片中。利用單片機(jī)的中斷響應(yīng)

44、乘客開(kāi)車或者等待的請(qǐng)求,進(jìn)行相應(yīng)的處理。</p><p>  方案二:用FPGA(可編程門列陣)實(shí)現(xiàn):利用硬件描述語(yǔ)言編程,仿真調(diào)試后下載到可編程邏輯器件(CPLD)上實(shí)現(xiàn)。</p><p>  比較而言,方案一的開(kāi)發(fā)及制作成本較低,能較大程度利用資源,但是外圍電路較多,調(diào)試復(fù)雜,抗干擾能力差,由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定。方案二將所有的器件集成在一塊芯片上,體積大大減少的

45、同時(shí)還提高了穩(wěn)定性,并且可應(yīng)用于EDA軟件仿真,調(diào)試,易于進(jìn)行功能擴(kuò)展,外圍電路少,采用硬件邏輯電路的實(shí)現(xiàn),其最大的優(yōu)點(diǎn)是穩(wěn)定性好,抗干擾能力強(qiáng),非常適合做為出租車的計(jì)價(jià)器系統(tǒng)的控制核心?;趯?duì)以上的考慮,我覺(jué)得FPGA能實(shí)現(xiàn)計(jì)程車的計(jì)價(jià)器的設(shè)計(jì)的要求,因此,決定選用FPGA為核心,用VHDL編程來(lái)實(shí)現(xiàn)計(jì)價(jià)器的設(shè)計(jì)。</p><p>  2 出租車計(jì)價(jià)器系統(tǒng)的總體設(shè)計(jì)</p><p>  

46、2.1 系統(tǒng)總體設(shè)計(jì)要求</p><p>  本文將利用VHDL語(yǔ)言設(shè)計(jì)一個(gè)出租車計(jì)價(jià)器的計(jì)費(fèi)系統(tǒng),具體要求如下:</p><p>  行程三公里之內(nèi),起步價(jià)6元;</p><p>  三公里之外,每公里1元,車停止不計(jì)費(fèi);</p><p>  3 能顯示行駛公里數(shù),計(jì)費(fèi)器費(fèi)用;</p><p>  4 計(jì)價(jià)范圍0

47、—99.9元,計(jì)價(jià)分辨率為0.1元,行程范圍為0——99.99公里,分辨率為0.01公里。</p><p><b>  2.2 設(shè)計(jì)思路</b></p><p>  用時(shí)鐘模擬車速,時(shí)鐘越快車速越快,根據(jù)時(shí)鐘來(lái)進(jìn)行計(jì)程和計(jì)費(fèi),最終將所得的路程和車費(fèi)在數(shù)碼管上顯示出來(lái)。</p><p>  出租車計(jì)價(jià)器計(jì)費(fèi)器的結(jié)構(gòu)框圖如下圖所示。</p&g

48、t;<p>  圖2.1出租車計(jì)價(jià)器計(jì)費(fèi)器的結(jié)構(gòu)框圖</p><p>  1. 計(jì)數(shù)器1,接入車速表就可以實(shí)現(xiàn)計(jì)費(fèi),這里用于模擬車速度。</p><p>  2. 計(jì)數(shù)器5,為十進(jìn)制計(jì)數(shù)器,預(yù)置數(shù)為車行起步里程三公里,計(jì)數(shù)脈沖為計(jì)數(shù)器1的進(jìn)位信號(hào)。這樣當(dāng)計(jì)數(shù)器達(dá)到30后,進(jìn)位輸出為一高電平,控制計(jì)數(shù)器2,3,4開(kāi)始計(jì)數(shù),這樣就能夠?qū)崿F(xiàn)超過(guò)三公里后計(jì)費(fèi)器再按每公里加收車費(fèi)。

49、</p><p>  3. 計(jì)數(shù)器2,3,分別為車費(fèi)十位,個(gè)位數(shù)值,計(jì)數(shù)器4為車費(fèi)小數(shù)點(diǎn)后兩位數(shù)值。</p><p>  4. 片選mux為控制動(dòng)態(tài)掃描電路輸出顯示的。</p><p>  2.3 出租車計(jì)價(jià)器系統(tǒng)工作流程圖</p><p>  對(duì)出租車計(jì)價(jià)器系統(tǒng)的工作進(jìn)行分析,即出租車計(jì)價(jià)器工作流程圖如下圖所示</p>&

50、lt;p>  圖2.2出租車計(jì)價(jià)器工作流程圖</p><p>  出租車載客后,啟動(dòng)計(jì)費(fèi)器,整個(gè)系統(tǒng)開(kāi)始工作,進(jìn)入初始化狀態(tài),即計(jì)程從0開(kāi)始,計(jì)費(fèi)從8開(kāi)始。再根據(jù)start信號(hào)判斷行駛還是停止。若start為1,則是行駛狀態(tài),計(jì)程器開(kāi)始計(jì)數(shù),當(dāng)路程超過(guò)三公里時(shí),計(jì)費(fèi)器開(kāi)始累加,按2元每公里計(jì)算,計(jì)程器則繼續(xù),否則計(jì)費(fèi)器不變。當(dāng)start為0時(shí),各個(gè)計(jì)數(shù)器都停止計(jì)數(shù),表示車停止?fàn)顟B(tài)。出租車停止乘客下車后,按下

51、復(fù)位信號(hào)stop,則所有計(jì)數(shù)器復(fù)位。</p><p>  3 系統(tǒng)設(shè)計(jì)開(kāi)發(fā)工作平臺(tái)的介紹</p><p>  3.1 實(shí)驗(yàn)板的介紹</p><p>  3.1.1 ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)介紹</p><p>  (1) ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)特點(diǎn)</p><p>  采用主板A基本實(shí)驗(yàn)系統(tǒng)+適配板B(擴(kuò)

52、展板)+擴(kuò)展板C(適配板)的結(jié)構(gòu),配置靈活,可擴(kuò)展性強(qiáng)。主板是一個(gè)標(biāo)準(zhǔn)配置系統(tǒng),是一個(gè)最簡(jiǎn) EDA工具系統(tǒng),包含了核心芯片A(EP1K30QC208),在主板系統(tǒng)基礎(chǔ)上擴(kuò)展了不同系統(tǒng),比如主板+單片機(jī)+擴(kuò)展板構(gòu)成單片機(jī)系統(tǒng),以及主板+擴(kuò)展CPLD/FPGA等多重系統(tǒng)。另外實(shí)驗(yàn)系統(tǒng)還有所有I/O口開(kāi)放,數(shù)字EDA與模擬EDA混合實(shí)驗(yàn)與開(kāi)發(fā),編程下載通用性強(qiáng),良好的混合電壓(MV)兼容功能,以及基于EDA技術(shù)的免連實(shí)驗(yàn)系統(tǒng)等特點(diǎn)。</

53、p><p>  (2) ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)主板組成</p><p>  通用編程模塊、液晶顯示模塊、數(shù)碼顯示模塊、A/D、D/A轉(zhuǎn)換模塊、LED顯示模塊、數(shù)字可調(diào)信號(hào)源、濾波模塊、信號(hào)調(diào)節(jié)模塊、邏輯筆模塊、配置模塊、模式選擇模塊、模擬信號(hào)源、鍵盤模塊、開(kāi)關(guān)按鍵模塊、電源模塊、分立元件模塊、喇叭模塊、I/O口插孔、核心芯片A、適配板B插座、適配板C插座、40PIN插座。</p&

54、gt;<p>  3.1.2 ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)各模塊功能介紹</p><p><b> ?。?)通用編程模塊</b></p><p>  核心芯片A(EP1K30QC208)該模塊為CPLD/FPGA器件的通用下載電路模塊,可以對(duì)ALTERA、LATTICE、 XILINX等國(guó)際著名的PLD公司幾乎所有ISP或現(xiàn)場(chǎng)配置的CPLD/FPGA進(jìn)

55、行編程下載,且能自動(dòng)識(shí)別。選擇不同的跳線XK1(5V)、XK2(3.3V)、XK3(2.5V)或XK4(1.8V),可以對(duì)不同芯核典雅的CPLD/FPGA器件進(jìn)行在系統(tǒng)編程和配置。</p><p>  (2)D/A轉(zhuǎn)換模塊</p><p>  使用TLC7524芯片把數(shù)字量轉(zhuǎn)換為電流量,通過(guò)運(yùn)放轉(zhuǎn)換為電壓輸出。由于輸入的是數(shù)字量,最后輸出的是間斷的點(diǎn)電壓值,由于該芯片為高速D/A轉(zhuǎn)換器件,

56、在送出數(shù)據(jù)很快的情況下看不出間斷點(diǎn),為此可以利用D/A完成任意波形發(fā)生器實(shí)驗(yàn)。為了產(chǎn)生比較好的波形,我們可以把輸出經(jīng)過(guò)實(shí)驗(yàn)箱的濾波模塊濾波產(chǎn)生更好的模擬信號(hào)。另外一點(diǎn)要注意的是運(yùn)放是供電,在做實(shí)驗(yàn)時(shí)一定要打開(kāi)該電源,否則沒(méi)有結(jié)果輸出。</p><p><b> ?。?)濾波模塊</b></p><p>  對(duì)信號(hào)起高通、帶通、低通三種濾波作用,通過(guò)調(diào)節(jié)電位器FW1、F

57、W2的阻值可以改變截止頻率或中心頻率,為信號(hào)提供濾波工具。該模塊可對(duì)差模輸入信號(hào)進(jìn)行濾波,若是單端輸入,一端輸入信號(hào)而另一端接地。在對(duì)信號(hào)進(jìn)行濾波時(shí),用FW1和FW2調(diào)節(jié)濾波效果。</p><p>  4 VHDL語(yǔ)言基礎(chǔ)</p><p><b>  4.1 概述</b></p><p>  硬件描述語(yǔ)言的發(fā)展座至今已有幾十年的歷史,并已成功地

58、應(yīng)用到系統(tǒng)的仿真、驗(yàn)證和設(shè)計(jì)、綜合等方面。目前常用的硬件描述語(yǔ)言有VHDL、 VerilogHDL 、ABEL等。其中VerilogHDL起源于集成電路的設(shè)計(jì),ABEL起源于可編程邏輯器件的設(shè)計(jì),而VHDL則起源于VHSIC計(jì)劃,這是美國(guó)國(guó)防部于1980年制定的,目標(biāo)是為下一代集成電路的設(shè)計(jì)和制造而定制一種新的描述方法。VHSIC計(jì)劃和同期的ARPAR(先進(jìn)的計(jì)算機(jī)體系結(jié)構(gòu))計(jì)劃,成為后來(lái)信息高速公路計(jì)劃的基礎(chǔ)。VHDL的英文全稱為Ve

59、ry-High-Speed Integrated Circuit Hardware Description Language,是IEEE標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,并且已經(jīng)成為系統(tǒng)描述的國(guó)際公認(rèn)標(biāo)準(zhǔn),得到眾多EDA公司的支持。</p><p>  VHDL有兩個(gè)標(biāo)準(zhǔn)版本,最早是在1987年底,IEEE公布了VHDL的標(biāo)準(zhǔn)版本IEEE_1076。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力方面

60、擴(kuò)展了VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本。這兩種版本在書寫格式上有細(xì)微的差別,不過(guò)絕大部分EDA軟件都支持這兩種版本的書寫格式。1997年,能夠同時(shí)描述數(shù)字和模擬集成電路的VHDL語(yǔ)言標(biāo)準(zhǔn)IEEE1076.1發(fā)布,即VHDL-AMS。</p><p>  VHDL語(yǔ)言覆蓋面廣,描述能力強(qiáng),能支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測(cè)試,是一種多層次的硬件描述語(yǔ)言。其設(shè)計(jì)描述可以是描

61、述電路具體組成的結(jié)構(gòu)描述,也可以是描述電路功能的行為描述。這些描述可以從最抽象的系統(tǒng)級(jí)直到最精確的邏輯級(jí),甚至門級(jí)。</p><p>  運(yùn)用VHDL語(yǔ)言設(shè)計(jì)系統(tǒng)一般采用自頂向下分層設(shè)計(jì)的方法,首先從系統(tǒng)級(jí)功能設(shè)計(jì)開(kāi)始,對(duì)系統(tǒng)高層模塊進(jìn)行行為描述和功能仿真。系統(tǒng)的功能驗(yàn)證完成后,將抽象的高層設(shè)計(jì)自頂向下逐級(jí)細(xì)化,直到與所用可編程邏輯器件相對(duì)應(yīng)的邏輯描述。</p><p>  4.2 VHD

62、L語(yǔ)言的特點(diǎn)</p><p>  VHDL是一種全方位的硬件描述語(yǔ)言,具有極強(qiáng)的描述能力,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門級(jí)三個(gè)不同層次的設(shè)計(jì),支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實(shí)際應(yīng)用中越來(lái)越廣泛。</p><p>  除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似

63、于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì)或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本特點(diǎn)。</p><p>  應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多

64、方面的:</p><p> ?。?)作為硬件描述語(yǔ)言的第一個(gè)國(guó)際標(biāo)準(zhǔn),VHDL具有很強(qiáng)的可移植性。</p><p> ?。?)與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。</p><p> ?。?)VHDL豐富的仿真語(yǔ)

65、句和庫(kù)函數(shù),隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬,因而能將設(shè)計(jì)中邏輯上的錯(cuò)誤消滅在組裝之前,在大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)功能的可行性。</p><p>  (4)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。</p><p> ?。?)對(duì)于用VHDL完成的一個(gè)確定的

66、設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。</p><p> ?。?)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。</p><p> ?。?)VHDL用源代碼描述來(lái)進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì),靈活又方便,同時(shí)也便于設(shè)計(jì)結(jié)果的交流、保存和重用。</p><p

67、>  在本設(shè)計(jì)中采用VHDL(VHSIC Hardware Description Language)語(yǔ)言進(jìn)行設(shè)計(jì)輸入具有很多好處:作為一處標(biāo)準(zhǔn)的硬件描述語(yǔ)言,VHDL已在ASIC及PLD設(shè)計(jì)中不斷得到推廣,它有良好的可移植性和靈活性,對(duì)電路參數(shù)的修改和電路性能的模擬也較為方便,尤其在描述很復(fù)雜的電路時(shí)比原理圖輸入法的優(yōu)越性更大。例如,當(dāng)我們要改變校驗(yàn)符號(hào)的數(shù)量或多項(xiàng)式時(shí),若采用VHDL語(yǔ)言輸入法,只需修改少量的VHDL語(yǔ)言源代碼

68、即可,而若采用原理圖輸入的方法,則改動(dòng)起來(lái)就顯得十分麻煩。</p><p>  4.3 VHDL語(yǔ)言編程概述</p><p>  4.3.1 VHDL程序的總體結(jié)構(gòu)</p><p>  一般而言,一個(gè)相對(duì)完整的VHDL語(yǔ)言程序(或稱為設(shè)計(jì)實(shí)體)至少應(yīng)三個(gè)基本組成部分:①庫(kù)(Library)、程序包(Package)使用說(shuō)明;②實(shí)體(Entity)說(shuō)明;③實(shí)體對(duì)應(yīng)的結(jié)

69、構(gòu)體(Architecture)說(shuō)明。其中,庫(kù)、程序包使用說(shuō)明用于打開(kāi)(調(diào)用)本設(shè)計(jì)實(shí)體將要用到的庫(kù)、程序包;實(shí)體說(shuō)明用于描述該設(shè)計(jì)實(shí)體與外界的接口信號(hào)說(shuō)明,是可視部分;結(jié)構(gòu)體說(shuō)明用于描述該設(shè)計(jì)實(shí)體內(nèi)部工作的邏輯關(guān)系,是不可視部分。在一個(gè)實(shí)體中,允許含有一個(gè)或多個(gè)結(jié)構(gòu)體,而在每一個(gè)結(jié)構(gòu)體中又可以含有一個(gè)或多個(gè)進(jìn)程以及其他的語(yǔ)句。根據(jù)需要,實(shí)體還可以有配置說(shuō)明語(yǔ)句。配置說(shuō)明語(yǔ)句主要用于以層次化的方式對(duì)特定的設(shè)計(jì)實(shí)體進(jìn)行元件例化,或是為實(shí)體

70、選定某個(gè)特定的結(jié)構(gòu)體。圖4-1顯示出了VHDL程序設(shè)計(jì)中比較全面的組成結(jié)構(gòu)。</p><p>  VHDL語(yǔ)言的總體結(jié)構(gòu)一般是:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</

71、p><p>  USE IEEE.STD_LOGIC_UNSIGN.ALL;</p><p>  ENTITY 實(shí)體名 IS </p><p><b>  [端口說(shuō)明];</b></p><p><b>  END 實(shí)體名;</b></p><p>  ARCHITECTURE

72、 構(gòu)造體名 OF 實(shí)體名 IS</p><p>  [定義語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、數(shù)據(jù)類型、函數(shù)等的定義;</p><p><b>  BEGIN</b></p><p><b>  [并行處理語(yǔ)句];</b></p><p><b>  END 構(gòu)造體名;</b><

73、/p><p>  在程序開(kāi)始的地方引用了IEEE庫(kù),3個(gè)USE語(yǔ)句使得調(diào)用該庫(kù)的VHDL設(shè)計(jì)可以使用程序包STD_LOGIC_1164、STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED中預(yù)定義的內(nèi)容。</p><p>  STD_LOGIC_1164程序包,其中預(yù)定義的內(nèi)容為STD_LOGIC,STD_LOGIC_VECTOR等數(shù)據(jù)類型,及一些數(shù)據(jù)類型的轉(zhuǎn)換函數(shù)。STD_L

74、OGIC_ARITH程序包,其中預(yù)定義的內(nèi)容為有符號(hào)和無(wú)符號(hào)類型,以及基于這些類型的算術(shù)運(yùn)算。STD_LOGIC_UNSIGNED程序包,其中預(yù)定義的內(nèi)容為基于STD_LOGIC和STD_LOGIC_VECTOR的無(wú)符號(hào)的算術(shù)運(yùn)算。由于在程序中最常用到的數(shù)據(jù)類型就是標(biāo)準(zhǔn)數(shù)據(jù)類型,所以一般都將以上的引用語(yǔ)句寫在程序的最前面。這樣在程序中就可以方便地對(duì)標(biāo)準(zhǔn)數(shù)據(jù)類型進(jìn)行操作。</p><p>  4.3.2 實(shí)體設(shè)計(jì)概

75、述</p><p>  實(shí)體(entity)是一個(gè)設(shè)計(jì)實(shí)體的表層設(shè)計(jì)單元,其功能是對(duì)這個(gè)設(shè)計(jì)實(shí)體與外部電路進(jìn)行接口描述它規(guī)定了設(shè)計(jì)單元的輸入輸出接口信號(hào)和引腳,是設(shè)計(jì)實(shí)體與外界的一個(gè)通信界面。</p><p><b> ?、?實(shí)體語(yǔ)句結(jié)構(gòu)</b></p><p>  實(shí)體說(shuō)明單元的常用語(yǔ)句結(jié)構(gòu)如下:</p><p>  

76、entity 實(shí)體名 is</p><p>  [generic(類屬表);]</p><p>  [port(端口表);]</p><p>  end entity 實(shí)體名;</p><p>  實(shí)體說(shuō)明單元必須以語(yǔ)句“entity 實(shí)體名is”開(kāi)始,以語(yǔ)句“end entity 實(shí)體名;”結(jié)束,其中的實(shí)體名是設(shè)計(jì)者自己給設(shè)計(jì)實(shí)體的命名,可

77、供其他設(shè)計(jì)實(shí)體對(duì)其進(jìn)行調(diào)用時(shí)使用(考慮到MAX+PLUSII要求源程序文件的名字與實(shí)體名必須一致,因此建議各個(gè)源程序文件的命名均與實(shí)體名一致)。中間在方括號(hào)內(nèi)的語(yǔ)句描述,在特定的情況下并非時(shí)必須的。例如構(gòu)建在VHDL仿真測(cè)試平臺(tái)時(shí)就不需要方括號(hào)中的語(yǔ)句。</p><p><b>  ⑵ 類屬說(shuō)明語(yǔ)句</b></p><p>  類屬(generic)參量是一種端口界面

78、常數(shù),通常以一種說(shuō)明的形式放在實(shí)體或塊結(jié)構(gòu)體前的說(shuō)明部分。類屬為所說(shuō)明的環(huán)境提供了一種靜態(tài)信息通道,類屬的值可以由設(shè)計(jì)實(shí)體外部提供。因此,設(shè)計(jì)者可以從外面通過(guò)類屬參量的重新設(shè)定而方便地改變一個(gè)設(shè)計(jì)實(shí)體或一個(gè)元件的內(nèi)部電路結(jié)構(gòu)和規(guī)模,而不需要修改實(shí)體內(nèi)部程序。</p><p>  類屬說(shuō)明的一般書寫格式如下:</p><p>  generic([常數(shù)名;數(shù)據(jù)類型[:設(shè)定值]]{;常數(shù)名;數(shù)

79、據(jù)類型[:設(shè)定值]});</p><p><b>  ⑶ 端口說(shuō)明</b></p><p>  由port引導(dǎo)的端口說(shuō)明語(yǔ)句是對(duì)于一個(gè)設(shè)計(jì)實(shí)體界面的說(shuō)明。實(shí)體端口說(shuō)明的一般書寫格式如下:</p><p>  port(端口名:端口模式 數(shù)據(jù)類型;{端口名:端口模式 數(shù)據(jù)類型});</p><p>  其中,端口名是設(shè)計(jì)者

80、為實(shí)體的每一個(gè)對(duì)外通道所取得名字;端口模式是指這些通道上的數(shù)據(jù)流動(dòng)方式,如輸入或輸出等;數(shù)據(jù)類型是指端口上流動(dòng)的數(shù)據(jù)的表達(dá)格式。由于VHDL是一種強(qiáng)類型語(yǔ)言,它對(duì)語(yǔ)句中的所有操作數(shù)的數(shù)據(jù)類型都有嚴(yán)格的規(guī)定。一個(gè)實(shí)體通常有一個(gè)或多個(gè)端口,端口類似于原理圖部件符號(hào)上的管腳。實(shí)體與外界交流的信息必須通過(guò)端口通道流入或流出。</p><p>  IEEE1076標(biāo)準(zhǔn)包中定義了4種常用的端口模式,各端口模式的功能及符號(hào)&l

81、t;/p><p>  在實(shí)際的數(shù)字集成電路中,in相當(dāng)于只允許輸入的引腳,out相當(dāng)于只允許輸出的引腳,buffer相當(dāng)于帶輸出緩沖器并可以回讀的引腳(與三態(tài)引腳不同),而inout相當(dāng)于雙向引腳。</p><p>  4.3.3 結(jié)構(gòu)體設(shè)計(jì)概述</p><p>  結(jié)構(gòu)體(architecture)是用于描述設(shè)計(jì)實(shí)體的內(nèi)部結(jié)構(gòu)及實(shí)體端口間的邏輯關(guān)系。結(jié)構(gòu)體內(nèi)部構(gòu)造的描

82、述層次和描述內(nèi)容可以用圖4-3來(lái)說(shuō)明。一般而言,一個(gè)完整的結(jié)構(gòu)體由以下兩個(gè)基層次組成:</p><p>  1 對(duì)數(shù)據(jù)類型、常數(shù)、信號(hào)、子程序和元件等元素的說(shuō)明部分;</p><p>  2 以行為、數(shù)據(jù)流、結(jié)構(gòu)描述方式表達(dá)實(shí)體邏輯行為或功能的描述語(yǔ)句。</p><p>  結(jié)構(gòu)體將具體實(shí)現(xiàn)一個(gè)實(shí)體。每個(gè)實(shí)體可以由多個(gè)機(jī)構(gòu)體,每個(gè)結(jié)構(gòu)體對(duì)應(yīng)著實(shí)體的不同結(jié)構(gòu)和算法的實(shí)

83、現(xiàn)方案,其間的各個(gè)結(jié)構(gòu)的地位是同等的,但同一結(jié)構(gòu)體不能為不同的實(shí)體所擁有。結(jié)構(gòu)體不能單獨(dú)存在,它必須有一個(gè)界面說(shuō)明,即對(duì)應(yīng)著一個(gè)實(shí)體。對(duì)于具有多個(gè)結(jié)構(gòu)體的實(shí)體,必須用配置(configuration)語(yǔ)句指明實(shí)際用于綜合的結(jié)構(gòu)體和用于仿真的結(jié)構(gòu)體。在電路中,如果實(shí)體代表一個(gè)器件符號(hào),則結(jié)構(gòu)體描述了這個(gè)符號(hào)的內(nèi)部行為。當(dāng)把這個(gè)符號(hào)例化成一個(gè)實(shí)際的器件安裝到電路上時(shí),則需配置語(yǔ)句為這個(gè)例化的器件指定一個(gè)結(jié)構(gòu)體(即指定一種實(shí)現(xiàn)方案),或由編譯

84、器自動(dòng)選定一個(gè)默認(rèn)的結(jié)構(gòu)體。</p><p> ?、沤Y(jié)構(gòu)體的一般語(yǔ)句格式</p><p>  結(jié)構(gòu)體的語(yǔ)句格式如下:</p><p>  architecture 結(jié)構(gòu)體名 of 實(shí)體名 is </p><p><b>  [說(shuō)明語(yǔ)句]</b></p><p><b>  be

85、gin</b></p><p><b>  [功能描述語(yǔ)句]</b></p><p>  end architecture 結(jié)構(gòu)體名;</p><p>  其中,實(shí)體名必須與設(shè)計(jì)實(shí)體名一致,而結(jié)構(gòu)體名可以由設(shè)計(jì)者自己選擇,但當(dāng)一個(gè)實(shí)體具有多個(gè)結(jié)構(gòu)體時(shí),結(jié)構(gòu)體的取名不可重復(fù)。</p><p><b>

86、 ?、平Y(jié)構(gòu)體說(shuō)明語(yǔ)句</b></p><p>  結(jié)構(gòu)體中的說(shuō)明語(yǔ)句是對(duì)結(jié)構(gòu)體的功能描述語(yǔ)句中將要用到的信號(hào)(signal)、數(shù)據(jù)類型(type)、常數(shù)(constant)、元件(component)、函數(shù)()、和過(guò)程()等加以說(shuō)明的語(yǔ)句。但在一個(gè)結(jié)構(gòu)體中說(shuō)明和定義的數(shù)據(jù)類型、常數(shù)、元件、函數(shù)和過(guò)程只能用于這個(gè)結(jié)構(gòu)體中,若希望其能用于其他的實(shí)體或結(jié)構(gòu)體中,則需要專門的程序包來(lái)處理。</p>

87、<p><b> ?、枪δ苊枋稣Z(yǔ)句結(jié)構(gòu)</b></p><p>  結(jié)構(gòu)體功能描述可以含有五種不同類型的,且是以并行方式工作的語(yǔ)句結(jié)構(gòu)。而在每一語(yǔ)句結(jié)構(gòu)內(nèi)部可能含有并行運(yùn)行的邏輯描述語(yǔ)句或順序運(yùn)行的邏輯描述語(yǔ)句。各語(yǔ)句結(jié)構(gòu)的基本組成和功能分別是:</p><p> ?、賶K語(yǔ)句是由一系列并行執(zhí)行語(yǔ)句構(gòu)成的組合體,它的功能是將結(jié)構(gòu)體中的并行語(yǔ)句組成一個(gè)或多個(gè)

88、模塊從而使程序結(jié)構(gòu)清晰易讀。</p><p>  ②進(jìn)程語(yǔ)句定義順序語(yǔ)句模塊,用以將從外部獲得的信號(hào)值,或內(nèi)部的運(yùn)算數(shù)據(jù)向其他的信號(hào)進(jìn)行賦值。</p><p> ?、坌盘?hào)賦值語(yǔ)句將設(shè)計(jì)實(shí)體內(nèi)的處理結(jié)果向定義的信號(hào)或界面端口進(jìn)行賦值。</p><p>  ④子程序調(diào)用語(yǔ)句用于調(diào)用一個(gè)已設(shè)計(jì)好的子程序。</p><p> ?、菰Z(yǔ)句對(duì)其他的

89、設(shè)計(jì)實(shí)體進(jìn)行元件的調(diào)用說(shuō)明,并將此元件的端口與其他的元件、信號(hào)或高層次實(shí)體的界面端口進(jìn)行連接。</p><p><b>  4.3.4 配置</b></p><p>  配置(configuration)可以把特定的結(jié)構(gòu)體指定給一個(gè)確定的實(shí)體。通常在大而復(fù)雜的VHDL工程設(shè)計(jì)中,配置語(yǔ)句可以為實(shí)體指定或配置一個(gè)結(jié)構(gòu)體。如何利用配置使仿真器為同一實(shí)體配置不同的結(jié)構(gòu)體以使

90、設(shè)計(jì)者比較不同結(jié)構(gòu)體的仿真差別,或者為例化的各元件實(shí)體配置指定的結(jié)構(gòu)體,從而形成一個(gè)所希望的例化元件層次構(gòu)成的設(shè)計(jì)實(shí)體,當(dāng)選擇改變結(jié)構(gòu)體時(shí),只需對(duì)配置文件進(jìn)行重新編輯和仿真。</p><p>  配置語(yǔ)句的一般格式如下:</p><p>  configuration 配置名 of 實(shí)體名 is </p><p><b>  配置說(shuō)明</b>&

91、lt;/p><p><b>  end 配置名;</b></p><p>  配置分為默認(rèn)配置、元件配置、塊配置和結(jié)構(gòu)配置共四種:</p><p> ?。?) 默認(rèn)配置(配置指定)——是最簡(jiǎn)單形式的顯式的配置(當(dāng)有幾個(gè)結(jié)構(gòu)體時(shí),配置實(shí)體將自動(dòng)調(diào)用最后編輯的結(jié)構(gòu)體),不含任何塊語(yǔ)句和元件的模塊用這種配置,默認(rèn)配置指定配置實(shí)體的配置名和為實(shí)體指定的結(jié)構(gòu)

92、體。</p><p>  (2) 元件配置——通過(guò)構(gòu)造可配置的具體安裝庫(kù)元件,在結(jié)構(gòu)性結(jié)構(gòu)體中,用元件配置語(yǔ)句配置這些元件。</p><p> ?。?) 塊配置——當(dāng)結(jié)構(gòu)體含有塊語(yǔ)句時(shí),配置必須反映塊語(yǔ)句。塊起著在所含結(jié)構(gòu)體和某種正被配置元件之間分出另一層次的作用,在配置結(jié)構(gòu)體時(shí),必須指明正在進(jìn)行哪個(gè)塊的配置 。</p><p>  (4)結(jié)構(gòu)配置——這種配置在結(jié)構(gòu)

93、體說(shuō)明部分并且規(guī)定用在結(jié)構(gòu)體中的元件配置,若已經(jīng)采用了結(jié)構(gòu)配置,則結(jié)構(gòu)體中所用的元件不再需要單獨(dú)的配置說(shuō)明。</p><p>  4.4 VHDL設(shè)計(jì)的流程及階段劃分</p><p>  4.4.1 設(shè)計(jì)流程</p><p>  設(shè)計(jì)的第一個(gè)步驟稱為設(shè)計(jì)的切入點(diǎn),其方式有許多種,包含以原理圖繪制、狀態(tài)機(jī)或是真值表及波形的輸入等,當(dāng)然VHDL也是其中的一種。將設(shè)計(jì)所達(dá)

94、到的目標(biāo)以上述的各種方式之一進(jìn)行描述,這是設(shè)計(jì)的第一步。將設(shè)計(jì)以VHDL完成后,接下來(lái)要做的是function simulation。Function simulation 所要達(dá)到的目標(biāo)是功能上的驗(yàn)證。在做function之前先要將VHDL進(jìn)行語(yǔ)法上的檢查及編譯,等到通過(guò)了檢查才能進(jìn)入 function simulation的步驟。在進(jìn)行function simulation 時(shí)使用的方式大多是將特定的信號(hào)輸入設(shè)計(jì),再觀察設(shè)計(jì)輸出的信

95、號(hào)是否正確。在做function simulation時(shí)可能需要常?;氐絍HDL source code 進(jìn)行修改,等到所有的功能都正確后才能進(jìn)行下一個(gè)步驟。緊接著的步驟是邏輯合成,其作用是將VHDL source code 依據(jù)之后的PLD轉(zhuǎn)換成place&route工具所需的輸入格式,一般PLD的發(fā)展統(tǒng)大多都能接收EDIF(Electronic Data Interchange Format)的格式。合成器的動(dòng)作大</

96、p><p>  在進(jìn)行place&route時(shí)設(shè)計(jì)者所能做的就是擬定constraint, constraint給予place&route一個(gè)努力的方向。當(dāng)place&route工具讀入一個(gè)經(jīng)過(guò)邏輯合成的netlist的文件時(shí),它并沒(méi)有將此一設(shè)計(jì)布成clock 10MHz的線路的概念,還是要將其布成clock 20KHz的線路。當(dāng)對(duì)設(shè)計(jì)下了一些constraint 后,place&ro

97、ute才知道在某些時(shí)序上較臨界的線路需要用較快速的器件來(lái)完成,而在大部分不是很在乎時(shí)序的線路上用一般較普通的器件來(lái)完成。</p><p>  做完place&route后,開(kāi)發(fā)工具可產(chǎn)生含有timing delay的VHDL netlist文件。這是最準(zhǔn)確的timing delay 文件,所以可以在此做timing simulation。當(dāng)然要不要做pre-layout simulation 是見(jiàn)人見(jiàn)智的

98、做法,也可以兩者都做,也有人認(rèn)為可以做完place&route后將結(jié)果直接送到電路板上測(cè)試,因?yàn)橐鰏imulation需要輸入正確的測(cè)試pattern。如果測(cè)試pattern不正確或是其代表性不夠,就算是做了simulation 也不能保證結(jié)果的正確。</p><p>  4.4.2 設(shè)計(jì)階段的劃分</p><p>  在一般的設(shè)計(jì)方法中可分為top down 或bottom u

99、p 兩種,以VHDL來(lái)做設(shè)計(jì)自然也不例外,但根據(jù)VHDL的特點(diǎn),大多數(shù)人采用的是兩者結(jié)合的方式。先將整個(gè)設(shè)計(jì)依功能上的需要?jiǎng)澐殖蓴?shù)個(gè)小的區(qū)塊,再?gòu)拿總€(gè)區(qū)塊中進(jìn)行底層模塊詳細(xì)設(shè)計(jì)。也就是說(shuō)在功能上采用top down design,當(dāng)劃分完后開(kāi)始coding的工作,此時(shí)則是由一個(gè)個(gè)下層的方塊開(kāi)始,將一個(gè)個(gè)方塊都coding完畢,再完成function simulation之后,再調(diào)整時(shí)序使其協(xié)調(diào)工作,整合成完整的設(shè)計(jì),實(shí)現(xiàn)預(yù)想的功能,這就

100、是在底層模塊的設(shè)計(jì)上采用bottom up的</p><p><b>  方式。 </b></p><p>  5 MAX+PLUSⅡ的使用</p><p><b>  5.1 概述</b></p><p>  美國(guó)Altera公司的MAX+plusⅡ開(kāi)發(fā)工具是一種CAE軟件工具,全稱是全集成化

101、可編程邏輯設(shè)計(jì)環(huán)境(Multiple Array Matrix and Programmable Logic User Systems).該工具配備有編輯,編譯,仿真 ,芯片編程等功能,具有兩種輸入手段:文本輸入(使用一種編輯語(yǔ)言,如VHDL語(yǔ)言)和原理圖輸入。在使用過(guò)程中,可以把電路描述程序和設(shè)計(jì)電路圖變成基本的邏輯單元寫入到可編程芯片中(如FPGA,CPLD芯片),最終成為ASIC芯片.也可以不用搭建硬件電路,把MAX+PLUSⅡ作

102、為邏輯仿真工具,即可對(duì)設(shè)計(jì)進(jìn)行調(diào)試,驗(yàn)證。 MAX+PLUSⅡ開(kāi)發(fā)工具目前在國(guó)內(nèi)使用很普遍,擁有完備的在線幫助,初學(xué)者可以很快學(xué)習(xí)掌握該工具的使用,完成高性能的設(shè)計(jì).它是EDA設(shè)計(jì)中不可缺少的一種工具。</p><p>  5.2 MAX+PLUSⅡ的應(yīng)用</p><p>  使用MAX+PLUSⅡ進(jìn)行設(shè)計(jì)總共包括四個(gè)階段分別是:設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)驗(yàn)證和器件編程。</p>

103、<p>  5.2.1 設(shè)計(jì)輸入</p><p>  在Windows的程序管理器窗口中用鼠標(biāo)左鍵雙擊圖標(biāo),或在“開(kāi)始”菜單內(nèi)選擇MAX+PLUSⅡ項(xiàng),開(kāi)始運(yùn)行MAX+PLUSⅡ,管理器窗口被打開(kāi).</p><p><b>  圖形設(shè)計(jì)輸入方法</b></p><p>  MAX+PLUS II編譯器的工作對(duì)象是項(xiàng)目,所以在進(jìn)行一

104、個(gè)邏輯設(shè)計(jì)時(shí),首先要指定該設(shè)計(jì)的項(xiàng)目名稱,對(duì)干每個(gè)新的項(xiàng)目應(yīng)該建立一個(gè)單獨(dú)的子目錄,如果該子目錄不存在, MAX+PLUSI將自動(dòng)創(chuàng)建.以后所有與該項(xiàng)目有關(guān)的文件都將存在這個(gè)子錄下.每個(gè)設(shè)計(jì)必須有一個(gè)項(xiàng)目名,并需要保證項(xiàng)目名與設(shè)計(jì)文件名一致.再建立新文件,在 File菜單中選擇 New將出現(xiàn) New對(duì)話框;在New對(duì)話框中選擇Graphic Editor File項(xiàng),然后按下OK按鈕,將會(huì)出現(xiàn)一個(gè)無(wú)標(biāo)題的圖形編輯器窗口,通過(guò)點(diǎn)擊圖形編輯

105、器標(biāo)題條中的放大按鈕,可使圖形編輯器窗口放至最大.</p><p>  (2)文本設(shè)計(jì)輸入方法</p><p>  MAX + PLUS II支持AHDL,VHDL和Verilog HDL等硬件描述語(yǔ)言.AHDL是Altera Hardware Description Languae的縮寫,它是一種高級(jí)硬件行為描述語(yǔ)言,該語(yǔ)言可以使用布爾方程,算術(shù)關(guān)系運(yùn)算表達(dá)式、真值表、條件語(yǔ)句等方式進(jìn)行

106、描述,適合做大型的、復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)。VHDL和Verilog HDL是符合IEEE標(biāo)準(zhǔn)的高級(jí)硬件行為描述語(yǔ)言,也都適合于大型的、復(fù)雜的設(shè)計(jì).這些語(yǔ)言都是用文本來(lái)進(jìn)行設(shè)計(jì),它們的輸入方式既有共同之處,又各有特點(diǎn),設(shè)計(jì)人員可根據(jù)實(shí)際情況選擇使用.</p><p>  5.2.2 設(shè)計(jì)項(xiàng)目的編譯</p><p>  (1) 選擇器件,即定義用哪種CPLD或FPGA邏輯器件來(lái)實(shí)現(xiàn)設(shè)計(jì).單擊Ass

107、ign菜單選擇Device選項(xiàng),”Device Family”選擇”MAX7000”,”Device”項(xiàng)選擇”AUTO”,單擊”O(jiān)K”按鈕,就可以確認(rèn)器件.</p><p>  (2) 保存文件并檢查基本錯(cuò)誤.單擊file菜單,選擇”project/save&check”選項(xiàng),出現(xiàn)”Safe As”對(duì)話框,選擇存儲(chǔ)路徑,保存.文件保存后自動(dòng)出現(xiàn)檢查對(duì)話框,并自動(dòng)提示有無(wú)錯(cuò)誤.如有錯(cuò)誤檢查文本或電路圖錯(cuò)誤,

溫馨提示

  • 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ù)僅提供信息存儲(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)論