基于FPGA的交通燈課程設(shè)計報告_第1頁
基于FPGA的交通燈課程設(shè)計報告_第2頁
基于FPGA的交通燈課程設(shè)計報告_第3頁
基于FPGA的交通燈課程設(shè)計報告_第4頁
基于FPGA的交通燈課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子技術(shù)課程設(shè)計報告eda技術(shù)課程實驗報告課程名稱:eda技術(shù)及應(yīng)用報告題目:交通燈控制器設(shè)計學(xué) 部:信息科學(xué)與工程姓 名:陳外流學(xué) 號:104328318117050班 級:電信1002同 組 者:周際遠指導(dǎo)教師:曹鐵軍信息科學(xué)與工程學(xué)院2012-2013學(xué)年第二學(xué)期1課程設(shè)計任務(wù)書報告題目交通燈控制器的設(shè)計完成時間6.19學(xué)生姓名陳外流專業(yè)班級電信 1002班指導(dǎo)教師曹鐵軍職稱教授總體設(shè)計要求和技術(shù)要點1.任務(wù)及要求(1) 設(shè)計一個交通信號燈控制器,由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在

2、禁行線外。(2) 紅、綠、黃發(fā)光二極管作信號燈,用傳感器或邏輯開關(guān)作檢測車輛是否到來的信號。(3) 主干道處于常允許通行的狀態(tài),支干道有車來時才允許通行。主干道亮綠燈時,支干道亮紅燈;支干道亮綠燈時,主干道亮紅燈。(4) 主、支干道均有車時,兩者交替允許通行,主干道每次放行45秒,支干道每次放行25秒,設(shè)立45秒、25秒計時、顯示電路。(5) 在每次由綠燈亮到紅燈亮的轉(zhuǎn)換過程中,要亮5秒黃燈作為過渡,使行駛中的車輛有時間停到禁行線外,設(shè)立5秒計時、顯示電路。(6) 按湖南涉外經(jīng)濟學(xué)院課程設(shè)計管理辦法要求提交課程設(shè)計報告。工作內(nèi)容及時間進度安排第17周:周1-周2 :立題、論證方案設(shè)計周3-周5

3、 :程序設(shè)計與調(diào)試第18周:周1-周3 :硬件調(diào)試與測試、撰寫課程設(shè)計報告周4-周5 :驗收答辯課程設(shè)計成果1與設(shè)計內(nèi)容對應(yīng)的軟件程序2課程設(shè)計總結(jié)報告摘要本實驗為自主選題設(shè)計實驗,實驗選擇具有倒計時顯示功能的紅黃綠三色交通設(shè)計,實驗中采用vhdl 作為設(shè)計功能描述語言,選用altera公司的ep1k30144-pin tqfp最為主控芯片,實驗報告中簡要介紹了fpga器件,并給出了設(shè)計原理圖,詳細的介紹了交通燈的設(shè)計流程,實驗報告中還附有實驗代碼實驗結(jié)果照片圖。 abstract this experiment designed for independent choice experime

4、nt, experiment choice which has the function of the countdown display red yellow green traffic design, description language (vhdl as design function is applied in the experiments, the most main control chip select max ii epm240t100c5 altera company, experiment report, this paper briefly introduces t

5、he max ii device series, and gives the design diagram, detailed introduces the traffic lights of the design process, the experiment report with the code results photo graph.目錄一、概述.1 1.1課程設(shè)計背景.1 1.2課程設(shè)計題目.1 1.3課題功能補充 .1二、系統(tǒng)設(shè)計與論證 .22.1系統(tǒng)設(shè)計思路.2 2.2系統(tǒng)框架設(shè)計.3 2.3輸入輸出設(shè)計.4 2.4模塊設(shè)計過程.4 2.4.1狀態(tài)轉(zhuǎn)換模塊.4 2.4.2數(shù)碼管

6、顯示模塊.5 2.5模塊描述.5 2.5.1主控制模塊.5 2.5.2 45s時間倒計時模塊.6 2.5.3 25s時間倒計時模塊.6 2.5.4 5s時間倒計時模塊.7 2.5.5 數(shù)據(jù)選擇模塊.7 2.6整體電路圖.83、 系統(tǒng)仿真.9四、心得體會.9五、附錄.10 5.1主控制模塊源程序.10 5.2 45s模塊源程序.12 5.3 25s模塊源程序.13 5.4 5s模塊源程序.14 5.5 數(shù)據(jù)選擇模塊源程序.16六、參考文獻.16七、老師評語及成績.171、 概述1.1課程設(shè)計背景經(jīng)過兩個學(xué)期的電子線路設(shè)計測試實驗,我們從基礎(chǔ)的模電、數(shù)電典型電路的設(shè)計和實現(xiàn)做起,從pspice和m

7、ax的設(shè)計與仿真,到面包板搭建電路的實踐與測試,在不斷的學(xué)習(xí)和積累中,了解了電子技術(shù)設(shè)計的基本過程和基礎(chǔ)知識。在本學(xué)期,我們迎來了電子技術(shù)課程設(shè)計,這是一次將理論付諸實踐的寶貴機會,是提升我們運用電子技術(shù)設(shè)計手段實現(xiàn)實際問題的能力的良好機遇。在選題階段,我躊躇滿志的和另一個同學(xué)選擇了sd卡音樂播放器這個選做題,但是由于沒有足夠地去深入了解相關(guān)的技術(shù)問題,致使在開題時沒有通過曾老師的驗收,只能十分遺憾的選擇了基礎(chǔ)題,改做交通燈控制器了。雖然有些遺憾,因為當初覺得自己有能力完成那樣一個選做題,但是這也給了我一個深刻的教訓(xùn),在機遇和挑戰(zhàn)面前,再有信心也要做好充足的準備來證明你的實力。另一方面給我的啟

8、示就是,盡管一個相同的題目前人做了很多工作,給我們提供了一個很好的平臺,但是如果我們只是去讀懂和使用它們,僅限在這樣一個層次是遠遠不夠了,要學(xué)會從前人的研究成果中尋找新的突破點,利用自己已掌握的知識或者所具備的能力,在原有的基礎(chǔ)上實現(xiàn)更加豐富的功能,這才應(yīng)該是我們做課程設(shè)計的最終目的。僅僅看懂別人的設(shè)計思路和代碼并不是能力的體現(xiàn),而真正鍛煉我們能力的是在充分掌握前人設(shè)計手段的基礎(chǔ)上,融會貫通地使原有的設(shè)計更加結(jié)合實際,更加完善。1.2課程設(shè)計題目設(shè)計一個十字路口交通信號燈的控制電路。要求紅、綠燈按照一定的要求亮和滅,并在亮燈期間進行倒計時,且將運行時間用數(shù)碼管顯示出來。要求主干道每次通行時間為

9、45秒,支干道每次通行時間為25秒。每次變換運行車道前綠燈閃爍,持續(xù)時間為5秒。即車道要由45轉(zhuǎn)換為25時,主干道在通行時間只剩下5秒鐘時,綠燈閃爍顯示,支干道仍為紅燈??梢詫χ鳌⒅Х较蛏系慕煌暨\行時間進行重新設(shè)置。1.3課題功能補充在原有題目功能要求的基礎(chǔ)上,我對交通燈控制器的功能在設(shè)計方面進行了補充,主要體現(xiàn)在:(1) 增加主、支干道左轉(zhuǎn)紅綠信號燈;(2) 增加主、支干道左轉(zhuǎn)運行時間倒計時,并用數(shù)碼管顯示;(3) 增加led同步顯示當前運行狀態(tài)功能,即用led顯示信號燈狀態(tài);功能增加了,可以說任務(wù)量也增加了不少。就最為關(guān)鍵的時間設(shè)置和顯示方面,由于增加了兩個左轉(zhuǎn)方向的運行時間,雖然只是增

10、加了兩個狀態(tài),但是同時顯示四個方向的等待和通行的倒計時,確實在開始設(shè)計時,我有些茫然,覺得無從下手。我花了很長時間在網(wǎng)上查閱實際中的交通燈到底是如何計時和運行的,也到學(xué)校周圍的路口實地調(diào)查過幾種十字路口交通燈的設(shè)置,慢慢的從實際設(shè)置需求中理清頭緒,具體的設(shè)計思路將在后面的部分詳細說明。二、系統(tǒng)設(shè)計2.1系統(tǒng)設(shè)計思路前面講到,基于狀態(tài)機的方法可以輕松實現(xiàn)交通燈的控制,而狀態(tài)轉(zhuǎn)換利用verilog中的case和循環(huán)語句很容易實現(xiàn)。我將四種狀態(tài)的轉(zhuǎn)換順序設(shè)置為:主直主左次直次左主直(依次循環(huán)),每個狀態(tài)在設(shè)置時間的基礎(chǔ)上由倒計時進行狀態(tài)的變換。以上都是比較容易實現(xiàn)的,也是很多經(jīng)典的例子上有講解過的,

11、下面我著重說明下如何實現(xiàn)四個方向同時進行等待和通行的倒計時。用四組數(shù)碼管來顯示主、次干道直行和左轉(zhuǎn)倒計時,首先需要了解這四組數(shù)碼管顯示的規(guī)律,也就是顯示計數(shù)的規(guī)律。在網(wǎng)上查閱資料的時候,通過觀看一段視頻,我茅塞頓開。這個視頻展示的是基于51單片機實現(xiàn)的交通燈控制器的實物功能演示,它也是利用了四組數(shù)碼管分別顯示四個方向的倒計時。通過反復(fù)觀看我發(fā)現(xiàn),其實在四個方向中,一個是通行倒計時,另外三個是等待倒計時,而等待倒計時又是它之前狀態(tài)通行時間之和,在顯示的效果上就是總會有兩組倒計時數(shù)值是相同的,即相鄰狀態(tài)的那兩個是相同的,一個是正在通行,一個是等待上一狀態(tài)通行的結(jié)束。這之后的兩個狀態(tài)顯示的倒計時是累

12、加上之前未通行狀態(tài)的設(shè)置時間和正在通行狀態(tài)的剩余時間之和。如圖所示:圖1 狀態(tài)轉(zhuǎn)換圖圖2 倒計時顯示方式(以主干道正在通行為例)2.2系統(tǒng)框架設(shè)計通過以上分析,可以較為清晰地看出在系統(tǒng)設(shè)計狀態(tài)轉(zhuǎn)換和一些實現(xiàn)方式的設(shè)計思路,下面說明系統(tǒng)的框架整體設(shè)計思路。整體框架思路為:首先將教學(xué)實驗箱提供的50mhz時鐘信號分頻,轉(zhuǎn)換為可利用的1hz cp信號,同時為了實現(xiàn)綠燈在1s內(nèi)閃爍一次,再轉(zhuǎn)換出一個2hz的cp信號提供給需要閃爍的綠燈。然后是設(shè)置時間的功能模塊,通過開關(guān)可以分別設(shè)置四個方向的運行時間,并將設(shè)置的時間傳送到狀態(tài)轉(zhuǎn)換模塊中。在狀態(tài)轉(zhuǎn)換功能模塊中,通過前面?zhèn)魉蛠淼脑O(shè)定通行時間進行倒計時和轉(zhuǎn)換

13、狀態(tài),并輸出當前方向通行剩余時間和四向使能en信號。在時間顯示功能模塊中,接收到前面的設(shè)置時間、剩余時間、使能信號,運用前面說明的現(xiàn)實方式的邏輯,計算出等待時間,在該向通行時顯示剩余時間,在該向等待時顯示等待時間,最終將時間信號輸出到數(shù)碼管顯示模塊;另外,由于數(shù)碼管數(shù)量的限制,只能一次性顯示8個(即四組),那么究竟是顯示倒計時還是顯示設(shè)置時間就需要一個開關(guān)信號來區(qū)分,于是設(shè)置一個輸入信號來判別是否進入設(shè)置模式,并且只能在設(shè)置模式下設(shè)置時間。led信號燈顯示功能模塊則將狀態(tài)轉(zhuǎn)換模塊輸出的en使能信號和2hz的cp信號以及當前剩余時間作為輸入,根據(jù)狀態(tài)點亮相應(yīng)的led信號燈。led顯示功能模塊的原

14、理和led信號燈顯示模塊類似,也是根據(jù)同步狀態(tài)en使能信號,通過刷新字符的方式,改變和顯示當前通行狀態(tài)。最后,數(shù)碼管顯示功能模塊是結(jié)合de2教學(xué)開發(fā)板數(shù)碼管的編碼規(guī)則將bcd碼轉(zhuǎn)換為七段碼,在譯碼后顯示出來。圖3 系統(tǒng)框圖上圖所示的系統(tǒng)框圖只是大致說明系統(tǒng)的框架和流程,沒有具體到每個模塊的輸入和輸出,在前面的文字描述中有所說明,更加詳細的設(shè)計說明將在后面模塊功能說明的詳細介紹。2.3輸入輸出設(shè)計根據(jù)功能需要,輸入設(shè)計采用兩個按鍵,模擬主干道、支干道有車過來。時鐘信號輸入為1mhz的時鐘頻率振蕩器。輸入設(shè)計采用4個數(shù)碼管用于顯示倒計時,8個led燈作為交通信號。2.4模塊設(shè)計過程2.4.1狀態(tài)轉(zhuǎn)

15、換模塊該模塊是控制器的核心部分,但是原理其實很簡單,只是輸入輸出量很多,獲取的信息多,處理后輸出的信息也多。前文已說明了狀態(tài)轉(zhuǎn)換的思想是該控制器實現(xiàn)的主要思路,那么如何處理好這么多輸入輸出的關(guān)系就成為了重點需要解決的問題了。輸入部分的關(guān)鍵是四向設(shè)定通行時間的傳入,這可以從時間設(shè)置模塊的輸出獲取。這四個設(shè)定時間傳入的時間需要選擇好,即選擇恰當?shù)臅r機讀取新的設(shè)置通行時間,因為設(shè)置時間的操作可能發(fā)生在任何運行時間,如果不能選擇很好的時機來讀入新的設(shè)置通行時間,可能造成邏輯上的混亂,致使狀態(tài)不能按照正常的順序進行轉(zhuǎn)移,也給實際的交通信號控制造成了一定的影響。在這里,我選取了在每個狀態(tài)運行結(jié)束的同時來讀

16、取新的設(shè)置通行時間,這樣在任意狀態(tài)時刻設(shè)置時間,將會在下一個狀態(tài)到來時切換到新的通行時間上去運行,一方面不會使設(shè)置的效果延時太長,另一方面也不會出現(xiàn)如果恰巧在該方向上設(shè)置時間,那么該方向可能一直顯示通行而不能正常轉(zhuǎn)換狀態(tài)的邏輯錯誤。輸出部分的關(guān)鍵是四個方向的en使能信號和通行倒計時時間。根據(jù)所在的狀態(tài),可以對四個方向的en使能信號進行賦值輸出,用于控制信號燈顯示和led同步狀態(tài)顯示等。通行時間倒計時是為了數(shù)碼管能夠顯示出通行剩余時間和等待通行時間,這個顯示的方式在前文也有描述,這里不再贅述。通行剩余時間就是狀態(tài)轉(zhuǎn)換過程所依據(jù)的倒計時時間,在狀態(tài)轉(zhuǎn)換中需要根據(jù)各向通行時間在每個通行狀態(tài)進行減計數(shù)

17、倒計時,當計數(shù)到01時切換狀態(tài),而這個倒計時的時間正好是該方向通行的剩余時間,輸出后經(jīng)過顯示方式的邏輯處理,就可以變成其它禁止方向的等待通行時間了。2.4.2數(shù)碼管顯示模塊該功能模塊同樣建立在de2底層函數(shù)調(diào)用基礎(chǔ)上,實現(xiàn)4個數(shù)碼管的時間顯示。根據(jù)de2教學(xué)開發(fā)板上數(shù)碼管的七段編碼規(guī)則,將輸入時間的8位bcd碼轉(zhuǎn)換為七段碼顯示出來,我根據(jù)實際需要修改了底層函數(shù),使得調(diào)用更加方便和集成化。根據(jù)數(shù)碼管七段的位置進行編碼,每個段位的管子仍然是共陽極的,所以高電平實現(xiàn)熄滅管子,低電平實現(xiàn)點亮管子。小數(shù)點在物理上沒有連接,所以無法使用。圖4 七段數(shù)碼管的原理圖和每段的標識位置該功能在實現(xiàn)上,只要有輸入就

18、會有相應(yīng)的輸出,所以原理上比較簡單,只要編碼正確不會出現(xiàn)問題,所以不再贅述。2.5模塊描述2.5.1主控制模塊說明:下面每個模塊的源程序都在附錄中圖5 主控制模塊原理圖inputclk /時鐘,復(fù)位信號輸入inputsm、sb /sm為主干道模擬檢測開關(guān),sb為支干道模擬檢測開關(guān)outputmr、my、mg /主干道的紅、黃、綠led燈顯示引腳output br、by、bg /支干道紅、黃、綠led燈顯示引腳模塊源程序:2.5.2 45s時間倒計時模塊圖6 45s時間倒計時原理圖inputen45/45s模塊使能信號inputsb /支干道使能信號inputclk/模塊時鐘源output do

19、ut45m7.0 /主干道倒計時時間輸出output dount45b7.0 /支干道倒計時時間輸出2.5.3 25s時間倒計時模塊圖7 25s時間倒計時inputen25 /25s模塊使能信號inputsb /支干道使能信號input sm /主干道使能信號inputclk /模塊時鐘源output dout25m7.0 /主干道倒計時時間輸出output dount25b7.0 /支干道倒計時時間輸出2.5.4 5s時間倒計時模塊圖8 5s時間倒計時原理圖inputen05b /支干道使能信號input en05m /主干道使能信號inputclk /模塊時鐘源output dout57.

20、0 /倒計時時間輸出2.5.5 數(shù)據(jù)選擇模塊圖9 數(shù)據(jù)選擇器原理圖input en45 /45s模塊使能端,高電平有效input en25 /25s模塊使能端,高電平有效input en05m /主干道5s模塊使能端,高電平有效input en05b /支干道5s模塊使能端,高電平有效input ain45m7.0 /主干道45s時間輸出端input ain25m7.0 /主干道25s時間輸出端input ain25b7.0 /支干道25s時間輸出端input ain057.0 / 5s時間輸出端2.6整體電路圖將上面設(shè)計的各功能模塊依據(jù)邏輯思路,結(jié)合輸入輸出設(shè)計搭建成如下圖所示的整體電路圖。

21、圖10 系統(tǒng)總原理圖17三、 系統(tǒng)仿真先設(shè)置系統(tǒng)結(jié)束時間為10us(默認為1us,加長時間為了得到更多的周期),設(shè)置時鐘clk的值為時鐘且周期為10ps圖11 時序仿真整個周期圖圖12 放大后的時序仿真圖3.2試驗箱硬件仿真結(jié)果圖13 試驗箱硬件仿真圖四、心得體會做事不能眼高手低。就像我們在選擇選做題的時候,雖然可以找到現(xiàn)成的代碼,感覺應(yīng)該不會太難,但是僅僅靠感覺是做不成事的,只有耐心細致地去深入研究,進行充分論證,才能得出準確可靠的結(jié)果。盡管有現(xiàn)成的代碼,但最終能不能為我所用還要靠認真的研讀,充分體會編程的思想,這樣別人的代碼才能轉(zhuǎn)化為自己的。要有工程的進度安排。對于時間的規(guī)劃其實是我們最欠

22、缺的,記得在軟件開發(fā)的課程中學(xué)到過利用甘特圖來劃定開發(fā)進度,但是實際中我們卻完全沒有按照它來實現(xiàn)。每次課程設(shè)計,大部分同學(xué)都是最后一段時間拼命趕,在驗收的前幾天還在通宵寫代碼。以前我也是這樣,不過這次有所改善了,因為我大致規(guī)劃了設(shè)計、實現(xiàn)和調(diào)試的時間,使得其他同學(xué)還在寫程序進行仿真的時候,我已經(jīng)開始了逐步的下載測試和修改完善工作,這為我在功能方面的完善提供了寶貴的時間。要善于借鑒別人的想法。很多時候自己獨立思考可以充分鍛煉能力,但是汲取他人之所長會對自己的工作產(chǎn)生事倍功半的效果。但是借鑒要有限度,要講究方式方法。很多同學(xué)容易走兩個極端,一種是埋頭編程,中途遇到很多困難其實前人也都遇到并且很好地

23、解決了,但是他們還要繼續(xù)重復(fù)地探尋解決途徑;另一種是照單全收,完全不明白作者的用意和初衷,只知道看結(jié)果對就拿來用,沒弄明白其所以然,顯然是荒廢了學(xué)習(xí)的機會。五、附錄5.1主控制模塊源程序library ieee;use ieee.std_logic_1164.all;entity jtdkz isport(clk,sm,sb:in std_logic; mr,my,mg,br,by,bg:out std_logic);end entity jtdkz;architecture art of jtdkz istype state_type is(a,b,c,d);signal state:sta

24、te_type;begincnt:process(clk)is variable s:integer range 0 to 45; variable clr,en:bit;beginif(clk'event and clk='1')then if clr='0'then s:=0; elsif en='0'then s:=s; else s:=s+1; end if; case state is when a=>mr<='0'my<='0'mg<='1' br<

25、='1'by<='0'bg<='0' if(sb and sm)='1'then if s=45 then state<=b;clr:='0'en:='0' else state<=a;clr:='1'en:='1' end if; elsif(sb and(not sm)='1'then state<=b;clr:='0'en:='0' else state<=a;clr:='

26、;1'en:='1' end if; when b=>mr<='0'my<='1'mg<='0' br<='1'by<='0'bg<='0' if s=5 then state<=c;clr:='0'en:='0' else state<=b;clr:='1'en:='1' end if;when c=>mr<='1'my<=

27、'0'mg<='0' br<='0'by<='0'bg<='1' if(sm and sb)='1' then if s=25 then state<=d;clr:='0'en:='0' else state<=c;clr:='1'en:='1' end if; elsif sb='0' then state<=d;clr:='0'en:='0'

28、elsestate<=c;clr:='1'en:='1'end if;when d=>mr<='1'my<='0'mg<='0'br<='0'by<='1'bg<='0'if s=5 thenstate<=a;clr:='0'en:='0'elsestate<=d;clr:='1'en:='1'end if;end case;end if;end

29、 process cnt;end architecture art; 5.2 45s模塊源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-entity time_45 isport(sb,clk,en45:in std_logic; dout45m,dout45b:out std_logic_vector(7 downto 0);end entity time_45;-architecture art of time_45 issignal cnt6b:std_logic_vector(5

30、downto 0);beginprocess(sb,clk,en45)isbeginif sb='0'then cnt6b<=cnt6b-cnt6b-1;elsif(clk'event and clk='1')thenif en45='1' then cnt6b<=cnt6b+1;elsif en45='0'then cnt6b<=cnt6b-cnt6b-1;end if;end if;end process;process(cnt6b)isbegincase cnt6b iswhen "000

31、000"=>dout45m<="01000101"dout45b<="01010000"-45 50 when "000001"=>dout45m<="01000100"dout45b<="01001001"-44 49when "000010"=>dout45m<="01000011"dout45b<="01001000"-43 48when "000011&q

32、uot;=>dout45m<="01000010"dout45b<="01000111"-42 47when "000100"=>dout45m<="01000001"dout45b<="01000110"-41 46when "000101"=>dout45m<="01000000"dout45b<="01000101"-40 45when "000110"=&

33、gt;dout45m<="00111001"dout45b<="01000100"-39 44when "000111"=>dout45m<="00111000"dout45b<="01000011"-38 43when "001000"=>dout45m<="00110111"dout45b<="01000010"-37 42when "001001"=>dou

34、t45m<="00110110"dout45b<="01000001"-36 41when "001010"=>dout45m<="00110101"dout45b<="01000000"-35 40when "001011"=>dout45m<="00110100"dout45b<="00111001"-34 39when "001100"=>dout45m&l

35、t;="00110011"dout45b<="00111000"-33 38when "001101"=>dout45m<="00110010"dout45b<="00110111"-32 37when "001110"=>dout45m<="00110001"dout45b<="00110110"-31 36when "001111"=>dout45m<=&qu

36、ot;00110000"dout45b<="00110101"-30 35when "010000"=>dout45m<="00101001"dout45b<="00110100"-29 34when "010001"=>dout45m<="00101000"dout45b<="00110011"-28 33when "010010"=>dout45m<="001

37、00111"dout45b<="00110010"-27 32when "010011"=>dout45m<="00100110"dout45b<="00110001"-26 31when "010100"=>dout45m<="00100101"dout45b<="00110000"-25 30when "010101"=>dout45m<="00100100&

38、quot;dout45b<="00101001"-24 29when "010110"=>dout45m<="00100011"dout45b<="00101000"-23 28when "010111"=>dout45m<="00100010"dout45b<="00100111"-22 27when "011000"=>dout45m<="00100001"d

39、out45b<="00100110"-21 26when "011001"=>dout45m<="00100000"dout45b<="00100101"-20 25when "011010"=>dout45m<="00011001"dout45b<="00100100"-19 24when "011011"=>dout45m<="00011000"dout45b

40、<="00100011"-18 23when "011100"=>dout45m<="00010111"dout45b<="00100010"-17 22when "011101"=>dout45m<="00010110"dout45b<="00100001"-16 21when "011110"=>dout45m<="00010101"dout45b<=&

41、quot;00100000"-15 20when "011111"=>dout45m<="00010100"dout45b<="00011001"-14 19when "100000"=>dout45m<="00010011"dout45b<="00011000"-13 18when "100001"=>dout45m<="00010010"dout45b<="0

42、0010111"-12 17when "100010"=>dout45m<="00010001"dout45b<="00010110"-11 16when "100011"=>dout45m<="00001010"dout45b<="00010101"-10 15when "100100"=>dout45m<="01001001"dout45b<="0001010

43、0"-9 14when "100101"=>dout45m<="00001000"dout45b<="00010011"-8 13when "100110"=>dout45m<="00000111"dout45b<="00010010"-7 12when "100111"=>dout45m<="00000110"dout45b<="00010001"-6

44、 11when "101000"=>dout45m<="00000101"dout45b<="00001010"-5 10when "101001"=>dout45m<="01000100"dout45b<="01001001"-4 9when "101010"=>dout45m<="00000011"dout45b<="00001000"-3 8when &qu

45、ot;101011"=>dout45m<="00000010"dout45b<="00000111"-2 7when "101100"=>dout45m<="00000001"dout45b<="00000110"-1 6when others=>dout45m<="00000000"dout45b<="00000000" -0 0end case;end process;end archit

46、ecture art;5.3 25s模塊源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-entity time_25 is port(sb,sm,clk,en25:in std_logic; dout25m,dout25b:out std_logic_vector(7 downto 0);end entity time_25;-architecture art of time_25 is signal cnt5b:std_logic_vector(4 downto 0); begin pr

47、ocess(sb,sm,clk,en25)is begin if sb='0'or sm='0'then cnt5b<=cnt5b-cnt5b-1; elsif(clk'event and clk='1')then if en25='1' then cnt5b<=cnt5b+1; elsif en25='0'then cnt5b<=cnt5b-cnt5b-1; end if; end if; end process; process(cnt5b)is begin case cnt5b is

48、 when "00000"=>dout25m<="00100101"dout25b<="00110000"-25 30 when "00001"=>dout25m<="00100100"dout25b<="00101001"-24 29 when "00010"=>dout25m<="00100011"dout25b<="00101000"-23 28 when

49、"00011"=>dout25m<="00100010"dout25b<="00100111"-22 27 when "00100"=>dout25m<="00100001"dout25b<="00100110"-21 26 when "00101"=>dout25m<="00100000"dout25b<="00100101"-20 25 when "

50、00110"=>dout25m<="00011001"dout25b<="00100100"-19 24 when "00111"=>dout25m<="00011000"dout25b<="00100011"-18 23 when "01000"=>dout25m<="00010111"dout25b<="00100010"-17 22 when "01001&

51、quot;=>dout25m<="00010110"dout25b<="00100001"-16 21 when "01010"=>dout25m<="00010101"dout25b<="00100000"-15 20 when "01011"=>dout25m<="00010100"dout25b<="00011001"-14 19 when "01100"=

52、>dout25m<="00010011"dout25b<="00011000"-13 18 when "01101"=>dout25m<="00010010"dout25b<="00010111"-12 17 when "01110"=>dout25m<="00010001"dout25b<="00010110"-11 16 when "01111"=>do

53、ut25m<="00001010"dout25b<="00010101"-10 15 when "10000"=>dout25m<="01001001"dout25b<="00010100"-9 14 when "10001"=>dout25m<="00001000"dout25b<="00010011"-8 13 when "10011"=>dout25m<

54、;="00000111"dout25b<="00010010"-7 12 when "10100"=>dout25m<="00000110"dout25b<="00010001"-6 11 when "10110"=>dout25m<="00000101"dout25b<="00001010"-5 10 when "10111"=>dout25m<="0

55、1000100"dout25b<="01001001"-4 9 when "11000"=>dout25m<="00000011"dout25b<="00001000"-3 8 when "11001"=>dout25m<="00000010"dout25b<="00000111"-2 7 when "11010"=>dout25m<="00000001"dout25b<="00000110"-1 6 when others=>dout25m<="00000000"dout25b<="

溫馨提示

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

評論

0/150

提交評論