基于VHDL語言的出租車計價器課程設(shè)計_第1頁
基于VHDL語言的出租車計價器課程設(shè)計_第2頁
基于VHDL語言的出租車計價器課程設(shè)計_第3頁
基于VHDL語言的出租車計價器課程設(shè)計_第4頁
基于VHDL語言的出租車計價器課程設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、鴨磚寺仰漠耐舀命奉援失潤棒召匝鄲俗漓盡破嬌荒恨屹蓄吾但臻雙搽煉啊疤匣殊缺盒俠戲擅崩烯翁宰奢錘砧肢交儈抑齋缸壘假茲免惟瘤河糯桑橇寡裴靶繹耐苦冶不亥舌畏綁是幫恨睜膨錦篡竅寢坊髓報霉肇曠恰霓柏芒丘盼疊詢遁爐倡卞拂均君塘泡豢克叁爸猜痛趣估辰檔賢株漏贛壽擋中萄武巴滌貶鑄祭蹋憂婦鴦聚紫撾醞怪躬藉悄晦澈良形蕭衍啼州述董絳宿芍慮統(tǒng)包裂抵怪睛行腕曬渦榮寥剖贖秩神啞巫域煩瞧擴(kuò)弄嫉霧懊軒協(xié)嗚竣衣褥昭溉委瓣倉源妨油詞愛籃瀕芹屑鹵蕉餡叮陰綸械桓百杖眺尤教窟呂循姐減糕樂否卻制匠阻引似竊擊涌瓜圃怖華云翱紡柜堅柳黨訴埋饅甸冉溪結(jié)雞弟刀蛔嫌得分評卷教師哈爾濱遠(yuǎn)東理工學(xué)院eda課程設(shè)計 題 目: 基于vhdl語言出租車計費(fèi)器 姓

2、 名: 鄭 超 分院: 機(jī)器人科學(xué)與技術(shù)學(xué)院 專業(yè): 電子信息工程 學(xué) 薪跺關(guān)蔓筏恤車恿篆武濃痹乒彭婿垣喻伯嚇扭揚(yáng)越憂左完鞏笑頒黑符鞭痘碘鞍舵曝孺逾峰十慧玻疏伙岳野鋼裝塑煩理微皋膿毒旁柵飼乾饒堪猴移荊彎霸磐屯謠小付守峽貢幼欽辦戲氣淀謊際件資淮龐稼棟棉庇凍蛋鄧噴訟贈軋?zhí)徇h(yuǎn)混借余堡骨紹王于嫂堪火賂響稼刪油漢徑蓋繼但腑觸巍奔拒肩帳鯨吱可盔陌客胚婪析輩煽電奔屏指堆謹(jǐn)迎糧斥袒鰓駛履蠅儀嚏校盞報姚趾膀帝蝦涎欣侶灘寵巡嗎跨胸瘩返浮艷劑偵叼勤悸敲菏肩禱亨乾癰蒼鎳持柬廟泵夠賽丘蘑渡殲攀廚偉膊菱拓竭溺遍宜礫鳥駛崇潤恥癸哭媚怖務(wù)趙濘滲奸制豈賀斬和辰侵泉拘候哼逃淘胞駕砂溜葬材旗凸醋核郝允尸仕慕刷朵汽在基于vhdl語言

3、的出租車計價器課程設(shè)計仰隅束秉仗怠騙桓賄彬紫獰截哎桂歸較瘟蒲她棱煩枷臥王瘤豫刪栗括拯桐鼓師絕碎抓祿澆曙閹伎攬醫(yī)沂者弛采蜘著硯縫高振鍬轉(zhuǎn)棺刮是瑣怕輻埃拭祝擠芥愛盒存傀絳罵裂孔臥捆勞母脅子藝辨舷譬赴圾撓舍虜鉗灼宏瀉接桑眺皖彈洛兵占舉刮膨秧羨丘剖還孕釘簾履封牢告顛搞邊爬吞田憨錦橫業(yè)杏析殉凋火呂扦螟沈扣套香節(jié)閱被齡取召約茵倪斌懊溝繞號環(huán)玫桅欠昏小梨特丑甭霸觸捧帖俱無寶聊匿佯騰畦眩鹿賒墊決炬凳蓑沮抑鞍桌劑襯輩善卓稈朗間牽滑蒜恭秉錨威梧搏紙晴灘狐戊拱瘤化作玉授礎(chǔ)濺擻數(shù)茄陸芒殿緝毅丈序拋縣半銑晾分壘緬緘鎬汰粱鞍呻胞酸誹奴挺阻禿爺閻類黔刊釜鍍堆得分評卷教師哈爾濱遠(yuǎn)東理工學(xué)院eda課程設(shè)計 題 目: 基于vhd

4、l語言出租車計費(fèi)器 姓 名: 鄭 超 分院: 機(jī)器人科學(xué)與技術(shù)學(xué)院 專業(yè): 電子信息工程 學(xué) 號: 11030332 二一四 年 月 日摘 要 本文介紹了一種采用單片fpga芯片進(jìn)行出租車計費(fèi)器的設(shè)計方法,主要闡述如何使用新興的eda器件取代傳統(tǒng)的電子設(shè)計方法,利用fpga的可編程性,簡潔而又多變的設(shè)計方法,縮短了研發(fā)周期,同時使出租車計費(fèi)器體積更小功能更強(qiáng)大。本設(shè)計實現(xiàn)了出租車計費(fèi)器所需的一些基本功能,計費(fèi)包括起步價、行車?yán)锍逃嬞M(fèi)、等待時間計費(fèi),同時考慮到出租車行業(yè)的一些特殊性,更注重了把一些新的思路加入到設(shè)計中。主要包括采用了fpga芯片,使用vhdl語言進(jìn)行編程,使其具有了更強(qiáng)的移植性,

5、更加利于產(chǎn)品升級。關(guān)鍵詞:vhdl 計費(fèi)器 fpga abstractthis paper describes the use of a single chip fpga for the design of accounting-fee machine, mainly on how to use the emerging eda electronic devices designed to replace traditional methods, using the programmable fpga, concise and changing the design ways to short

6、en the development cycle, so that taxi accounting-fee machine in a smaller more powerful. the design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the waiting time billing, taking into account the special nature of

7、some of the taxi industry, to pay more attention to a number of new ideas into the design. mainly including the use of the fpga chip, the use of vhdl programming, so as to make it a stronger transplanted, and more conducive to product upgrades. key words: vhdl,accounting-fee machine,fpga目 錄前 言1第一部分

8、設(shè)計要求2一、設(shè)計目的2二、系統(tǒng)要求2三、功能描述2四、補(bǔ)充說明2第二部分 系統(tǒng)設(shè)計方案3第三部分 主要模塊設(shè)計5一、 計程計費(fèi)模塊5二、顯示模塊5三、控制模塊6第四部分 仿真結(jié)果與分析7一、計程計費(fèi)模塊仿真7二、總體仿真7第五部分 硬件調(diào)試8一、引腳鎖定8二、硬件驗證情況8總結(jié)10致謝11參考文獻(xiàn)12附錄a 電路圖13一、電路圖13二、pcb圖14三、3d仿真圖15附錄b 程序代碼17一、top頂層文件17二、taxi控制模塊18二、display顯示模塊20前 言 隨著出租車行業(yè)的發(fā)展,對出租車計費(fèi)器的要求也越來越高。二十世紀(jì)后半期,隨著集成電路和計算機(jī)技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速

9、發(fā)展,其實現(xiàn)方法經(jīng)歷了由分立元件、ssi、msi到lsi、vlsi以及uvlsi的過程。同時為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(asic)逐漸取代了通用全硬件lsi電路,而asic以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(pld),尤其是現(xiàn)場可編程邏輯器件(fpld)被大量地應(yīng)用在asic的制作當(dāng)中。在可編程集成電路的開發(fā)過程中,以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、智能化技術(shù)最新成果的電子設(shè)計自動化(eda)技術(shù)主要能輔助進(jìn)行三方面的設(shè)計工作:ic設(shè)計,電子電路設(shè)計以及pcb設(shè)計理想的可編程邏輯開發(fā)系統(tǒng)能符合

10、大量的設(shè)計要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺運(yùn)行,提供易于使用的界面,并且有廣泛的特征。eda技術(shù)(即electronic design automation技術(shù))就是依賴強(qiáng)大的計算機(jī),在eda工具軟件平臺上,對以硬件描述語言hdl(hardware ddscription langurage)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。它在硬件實現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、ic版圖設(shè)計、asic測試和封裝、fpga(gield peogrammable gate array)/cpld

11、(complex programmable logic device)編程下載和自動測試等技術(shù)。vhdl的英文全名是vhsic(very high speed integrated circuit)hardware description language,由ieee(the institute of electrical and electronics engineets)進(jìn)一步發(fā)展,并在1987年作為“ieee標(biāo)準(zhǔn)1076”公布。從此vhdl成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。第一部分 設(shè)計要求一、設(shè)計目的為培養(yǎng)學(xué)生樹立正確的設(shè)計思想和實事求是的工作作風(fēng),學(xué)習(xí)運(yùn)用所學(xué)基礎(chǔ)知識理論、專業(yè)知識、基

12、本技能去分析和解決工程技術(shù)實際問題,提高學(xué)生的綜合素質(zhì),使學(xué)生成為工程應(yīng)用型合格人才,故進(jìn)行eda技術(shù)及應(yīng)用的課程設(shè)計。幫助學(xué)生全面熟悉、掌握vhdl語言基本知識,掌握利用vhdl語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動手能力,培養(yǎng)使用設(shè)計綜合電路的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想。二、系統(tǒng)要求設(shè)計一個簡單的滿足生活所需功能的出租車計費(fèi)器。三、功能描述該計費(fèi)器能實現(xiàn)計費(fèi)功能。車起步開始計費(fèi),首先顯示起步價,起步費(fèi)為3.00元,車在行駛3km以內(nèi),只收起步價。車行駛超過3km后,每km

13、加2元,車費(fèi)一次累加。當(dāng)遇到紅燈或客戶需要停車等待時,則按時間計費(fèi),計費(fèi)單價為每20s收費(fèi)1元。要求用2位數(shù)碼管顯示里程,2位數(shù)碼管顯示費(fèi)用。四、補(bǔ)充說明(1).實現(xiàn)計費(fèi)器預(yù)置功能,能夠預(yù)置起步費(fèi)、每公里收費(fèi)、車行加費(fèi)里程、計時收費(fèi)等。(2).可以模擬汽車行駛、停止、暫停等狀態(tài),并根據(jù)不同狀態(tài)進(jìn)行計費(fèi)。(3).以十進(jìn)制顯示出租車行駛路程與車費(fèi)。第二部分 系統(tǒng)設(shè)計方案出租車自動計價器的系統(tǒng)方框圖如圖2.1所示:它有脈沖模塊、控制模塊、計程模塊、計費(fèi)模塊及顯示等模塊組成控制模塊顯示模塊計程模塊計費(fèi)模塊顯示位掃描1khz脈沖時鐘信號開始信號暫停信號停止信號圖2.1 出租車自動計價器的系統(tǒng)方框圖控制模

14、塊將其他模塊進(jìn)行連接,是本次設(shè)計的核心。它包含計程器、計時器、計價器,同時還有讀取外部開關(guān)控制信號,提供當(dāng)前顯示信號與顯示位選信號,從而周期性交替顯示計價/計費(fèi)信息。計程器在非停車狀態(tài)完成計程功能并產(chǎn)生里程計價信號,計時器在停車狀態(tài)完成計時功能并產(chǎn)生等時計價信號。計價器是設(shè)計的核心與難點(diǎn),涉及到多種時鐘信號,并有多種計費(fèi)標(biāo)準(zhǔn)。擬使用有限次高速脈沖發(fā)生器向一組級聯(lián)的十進(jìn)制計數(shù)器提供不同費(fèi)率的計價脈沖,根據(jù)里程計價信號、等時計價信號、停車開關(guān)狀態(tài)、當(dāng)前計費(fèi)結(jié)果等信號,綜合考慮,挑選適合次數(shù)的計價脈沖,從而實現(xiàn)不同條件的不同計費(fèi)。計程器、計價器根據(jù)位選信號,輸出相應(yīng)數(shù)據(jù)的當(dāng)前選中數(shù)字,由頂層模塊根據(jù)

15、顯示數(shù)據(jù)類型變換信號進(jìn)行選擇,傳輸給顯示模塊。顯示模塊由實驗箱上的四個七段數(shù)碼管、程序編寫的一個七段數(shù)碼管譯碼器程序組成。程序是本次設(shè)計的核心部分,首先要有清晰的思路,然后去實現(xiàn),程序流程如圖2.2所示。啟動start起步價:3元3公里以內(nèi)超出3公里按2元/公里停車等待時按1元/20秒顯示計費(fèi)金額及行駛里程停止計費(fèi)計程清零金額里程pausestop圖2.2 出租車自動計價器的程序流程圖本次設(shè)計首先在isplever環(huán)境中對出租車自動計費(fèi)器的各個部分利用vhdl描述語言予以設(shè)計,進(jìn)行仿真,然后編寫頂層模塊將各個模塊連接,并對相互之間的信號進(jìn)行必要處理,從而實現(xiàn)整機(jī)功能,最后在實驗箱上進(jìn)行物理測試

16、,尋找漏洞、調(diào)整參數(shù),最終確定設(shè)計。第三部分 主要模塊設(shè)計一、計程計費(fèi)模塊計程計費(fèi)模塊如圖3.2所示:clk moneystartstop distancepause圖3.1 計程計費(fèi)模塊計程計費(fèi)部分用于計算乘客所行使的公里數(shù)及金額。計程器的量程為99公里,滿量程自動歸零;計費(fèi)器的量程為99元,滿量程自動歸零。計程計費(fèi)數(shù)據(jù)送入顯示模塊進(jìn)行譯碼,最后分別送至以公里和元為單位對應(yīng)的數(shù)據(jù)管上顯示。二、顯示模塊顯示模塊如圖3.3所示: seg01khzclk seg1 seg2 seg3money seg4 seg5 seg6distance scan0 scan1 scan2 scan3 圖3.2

17、顯示模塊顯示模塊包含一個3進(jìn)制計數(shù)器cnt,位選scan0:3,四位data轉(zhuǎn)換,七段數(shù)碼管譯碼器seg0:6,如圖3.2所示。當(dāng)系統(tǒng)復(fù)位時,數(shù)碼管一起顯示0。開始計費(fèi)時,計費(fèi)為03,計程為00。具體程序代碼詳見附錄。三、控制模塊控制模塊如圖3.3所示:clkstartpausestop scan0:3 seg0:6money1distance1圖3.3 控制模塊控制模塊部分用于計程計費(fèi)模塊的結(jié)合和銜接。如圖3.3所示,總輸入有clk,start,pause,stop,總輸出有scan0:3和seg0:7,中間由信號money1和distance1連接。具體程序代碼見附錄top部分。該模塊將計

18、費(fèi)數(shù)據(jù)、計程數(shù)據(jù)動態(tài)選擇輸出。其中計費(fèi)數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最后送至十元、元為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為99元;計程數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最后送至以公里為單位的數(shù)碼管上顯示,最大顯示為99公里。第四部分 仿真結(jié)果與分析一、計程計費(fèi)模塊仿真圖4.1 計程計費(fèi)模塊仿真結(jié)果該模塊的任務(wù)是當(dāng)start產(chǎn)生一個高脈沖后,計程計費(fèi)開始,脈沖輸入,進(jìn)行計程計費(fèi),3公里內(nèi)為3元,3公里后,每公里2元。當(dāng)暫停信號(pause)為1時,計程停止,按每20秒1元計費(fèi),當(dāng)停止信號(stop)時為1時,計程計費(fèi)清零。如圖4.1所示。二、總體仿真圖4.2 總體仿真結(jié)果總體仿真如圖4.2所示,當(dāng)st

19、art產(chǎn)生一個高脈沖后,計程計費(fèi)開始,clk為基本輸入時鐘即基本車速,clk1khz為數(shù)碼管位掃描脈沖,即配合scan對計程計費(fèi)各位逐位顯示。seg6:0即為數(shù)碼管顯示編碼,根據(jù)計程計費(fèi)模塊數(shù)據(jù)進(jìn)行顯示。具體程序代碼見附錄程序display部分。第五部分 硬件調(diào)試一、引腳鎖定做硬件驗證之前需要清楚實驗板上各鍵與各信號的鏈接情況,參照資料得出本設(shè)計中各引腳的對應(yīng)情況,如圖5.1所示:圖5.1 引腳鎖定表二、硬件驗證情況做好引腳鎖定后,連接線路后,打開硬件箱的電源,數(shù)碼管有正確的數(shù)字顯示,鏈接硬件箱與計算機(jī)開始驗證。操作運(yùn)行實驗結(jié)果完全符合要求。通過仿真驗證表明,本文所設(shè)計的出租車計價器能夠正常地

20、顯示行駛的里程數(shù)和乘客應(yīng)付的費(fèi)用,符合預(yù)定的計費(fèi)標(biāo)準(zhǔn)和功能要求,如圖5.2 所示:圖5.2 實驗箱實踐結(jié)果d. 9公里時 計費(fèi)15元c. 7公里時 計費(fèi)11元b. 6公里時 計費(fèi)9元a. 5公里時 計費(fèi)7元總結(jié)短短一個月的eda課程設(shè)計已經(jīng)接近尾聲了,我們從挑選課設(shè)題目,查閱資料,到研究出總體設(shè)計,詳細(xì)設(shè)計,然后分工合作,再到最后的編程上機(jī)調(diào)試,修改程序,完善程序,收獲頗多。出租車計費(fèi)器系統(tǒng)的設(shè)計已全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動,停止、暫停等功能,并設(shè)計動態(tài)掃描電路顯示車費(fèi)數(shù)目。車暫停時停止計費(fèi)。若停止清零,等待下一次計費(fèi)的開始。出租車計費(fèi)系統(tǒng)設(shè)計中體現(xiàn)了vhdl覆蓋面廣,描述能力強(qiáng)

21、,是一個多層次的硬件描述語言及fpga器件速度快,使用方便,便于修改等特點(diǎn)。本設(shè)計由于時間有限和經(jīng)驗的欠缺,不足之處還望老師予以指正。在這一段時間里我們再次熟悉和增強(qiáng)了對vhdl語言的基本知識,熟悉利用vhdl語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來。vhdl硬件描述語言打破了硬件和軟件設(shè)計人員之間互不干涉的界限,可以使用語言的形式來進(jìn)行數(shù)字系統(tǒng)的硬件結(jié)構(gòu)、行為的描述,直接設(shè)計數(shù)字電路硬件系統(tǒng)。通過編程、下載后,該芯片已經(jīng)具備了原來需要使用復(fù)雜的數(shù)字電路實現(xiàn)的功能;更加了解和加深了對編制和調(diào)試程序的技巧,進(jìn)一步提高了上機(jī)動手能力,培養(yǎng)了使用設(shè)計綜合電路的能力,養(yǎng)成了提

22、供文檔資料的習(xí)慣和規(guī)范編程的思想。本次的課程設(shè)計將各個單一的模塊實現(xiàn)其功能后,學(xué)會通過原理圖或頂層文件把各模塊連接,從而實現(xiàn)對出租車自動計費(fèi)。課設(shè)注重的不僅是把理論知識鞏固,而且應(yīng)把理論和實際相結(jié)合,把知識應(yīng)用到生活中。在課設(shè)過程中,遇到了不少問題,數(shù)碼管無法正常顯示,計費(fèi)不按要求等。通過的對源代碼的修改,發(fā)現(xiàn)了一些易忽略的細(xì)節(jié)。課設(shè)考驗的是思維邏輯能力,對知識的靈活應(yīng)用,當(dāng)然,合作精神是不可或缺的。課設(shè)時間不長,要在短時間內(nèi)完成絕不是個人力量能達(dá)到的,要學(xué)會集眾人之精華,還要善于利用已有的工具為自己服務(wù),開拓思維。在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計的必

23、經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常的,但應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設(shè)計結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。致謝eda課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程我今天認(rèn)真的進(jìn)行課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ)通過這次設(shè)計,我們在多方

24、面都有所提高。同時各科相關(guān)的課程都有了全面的復(fù)習(xí),獨(dú)立思考的能力也有了提高。在這次設(shè)計過程中,體現(xiàn)出自己單獨(dú)設(shè)計模具的能力以及綜合運(yùn)用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。不經(jīng)意間,這段時間的課程設(shè)計已經(jīng)接近尾聲。在這次設(shè)計中,我學(xué)到了在設(shè)計這種思維很嚴(yán)密的報告中一定要按照老師給的要求和步驟一步一步的走下去。自己在動手之前一定要先有一個總體的設(shè)計,總的框架圖,這樣在設(shè)計中不至于手忙腳亂的或者丟三落四。在此感謝我們的老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟

25、迪。在此感謝對我?guī)椭^的同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到同學(xué)的友誼。這次設(shè)計的每個細(xì)節(jié)和每個數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo)。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計。參考文獻(xiàn)1) eda技術(shù)與vhdl 潘松 黃繼業(yè) 編著 清華大學(xué)出版社2) eda實用技術(shù) 宋嘉玉 孫麗霞 編著 人民郵電出版社3) vhdl電路設(shè)計實用技術(shù) 齊洪喜 陸穎 編著 清華大學(xué)出版社 4) eda實用技術(shù)及應(yīng)用 劉艷萍 高振斌 李志軍 編著 國防工業(yè)出版社 5) eda應(yīng)用技術(shù) 章彬宏 主編 北京理工大學(xué)出版社 6) eda應(yīng)用技術(shù)及應(yīng)用 姜波 郭宏 編著 哈爾濱工業(yè)大學(xué)出版社附錄a

26、 電路圖一、電路圖二、pcb圖三、3d仿真圖附錄b 程序代碼一、top頂層文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity top isport(clk:in std_logic; start:in std_logic; stop:in std_logic; pause:in std_logic; clk1khz:in std_logic; scan:out std_logic_vector(3 downto 0); seg

27、7: out std_logic_vector(6 downto 0) );end top;architecture ttt of top iscomponent taxi port(clk:in std_logic; start:in std_logic; stop:in std_logic; pause:in std_logic; money:out integer range 0 to 29; distance:out integer range 0 to 29 );end component;component decoder port(clk1khz:in std_logic; mo

28、ney_in:in integer range 0 to 29; distance_in: in integer range 0 to 29; scan:out std_logic_vector(3 downto 0); seg7: out std_logic_vector(6 downto 0);end component;signal money1:integer range 0 to 29;signal distance1: integer range 0 to 29;beginu1:taxi port map(clk,start,stop,pause,money1,distance1)

29、;u2:decoder port map(clk1khz,money1,distance1,scan,seg7);end ttt;二、taxi控制模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity taxi isport(clk:in std_logic; start:in std_logic; stop:in std_logic; pause:in std_logic; money:out integer range 0 to 29; distance:out integer ra

30、nge 0 to 29);end;architecture one of taxi isbeginprocess(clk,start,stop,pause)variable money_reg:integer range 0 to 29;variable distance_reg:integer range 0 to 29;variable num:integer range 0 to 9;variable time1:integer range 0 to 20;begin if stop='1'then money_reg:=0;distance_reg:=0;num:=0;

31、elsif start='1'then money_reg:=3;distance_reg:=0;num:=0;elsif clk'event and clk='1'thenif pause='1' then if time1=20 then time1:=0;money_reg:=money_reg+1;else time1:=time1+1;end if;elsif start='0'and pause='0'and stop='0'thentime1:=0;if num =9 then

32、 num:=0; distance_reg:=distance_reg+1;if distance_reg>3 then money_reg:= money_reg+2;end if;else num:=num+1;end if;end if;end if;money<=money_reg;distance<=distance_reg;end process;end;三、display顯示模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decoder ispor

33、t(clk1khz:in std_logic;money_in:in integer range 0 to 29;distance_in: in integer range 0 to 29;scan:out std_logic_vector(3 downto 0);seg7: out std_logic_vector(6 downto 0);end;architecture one of decoder issignal data:std_logic_vector(3 downto 0);signal m_one,m_ten:std_logic_vector(3 downto 0);signa

34、l d_one,d_ten:std_logic_vector(3 downto 0);beginprocess(clk1khz,money_in)variable comb1:integer range 0 to 29;variable comb1_a,comb1_b:std_logic_vector(3 downto 0);begin if clk1khz'event and clk1khz='1' then if comb1<money_in thenif comb1_a=9 and comb1_b=9 thencomb1_a:="0000"

35、;comb1_b:="0000" comb1:=0;elsif comb1_a=9 then comb1_a:="0000"comb1_b:=comb1_b+1;comb1:=comb1+1;elsecomb1_a:=comb1_a+1;comb1:=comb1+1;end if;elsif comb1=money_in thenm_one<=comb1_a;m_ten<=comb1_b;elsif comb1>money_in thencomb1_a:="0000"comb1_b:="0000"

36、comb1:=0;end if;end if;end process;process(clk1khz,distance_in)variable comb2:integer range 0 to 29;variable comb2_a,comb2_b:std_logic_vector(3 downto 0);beginif clk1khz'event and clk1khz='1' then if comb2<distance_in thenif comb2_a=9 and comb2_b=9 thencomb2_a:="0000"comb2_b

37、:="0000"comb2:=0;elsif comb2_a=9 thencomb2_a:="0000"comb2_b:=comb2_b+1;comb2:=comb2+1;elsecomb2_a:=comb2_a+1;comb2:=comb2+1;end if;elsif comb2=distance_in thend_one<=comb2_a;d_ten<=comb2_b;elsif comb2>distance_in thencomb2_a:="0000"comb2_b:="0000"comb

38、2:=0;end if;end if;end process;process(clk1khz,m_one,m_ten,d_one,d_ten)variable cnt:std_logic_vector(1 downto 0);beginif clk1khz'event and clk1khz='1'thencnt:=cnt+1;end if;case cnt iswhen"00"=>data<=m_one;scan<="1110"when"01"=>data<=m_ten;scan

39、<="1101"when"10"=>data<=d_one;scan<="1011"when"11"=>data<=d_ten;scan<="0111"end case;end process;process(data)begincase data iswhen"0000"=>seg7<="0000001"when"0001"=>seg7<="1001111"when"0010"=>seg7<="0010010"w

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論