![VHDL課程設(shè)計報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/3740f821-4f73-45e7-89ba-864c0e8117c9/3740f821-4f73-45e7-89ba-864c0e8117c91.gif)
![VHDL課程設(shè)計報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/3740f821-4f73-45e7-89ba-864c0e8117c9/3740f821-4f73-45e7-89ba-864c0e8117c92.gif)
![VHDL課程設(shè)計報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/7/3740f821-4f73-45e7-89ba-864c0e8117c9/3740f821-4f73-45e7-89ba-864c0e8117c93.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、GUJZH0UUNIVERSITY課程設(shè)計課程名稱:交通燈設(shè)計、課程設(shè)計內(nèi)容1. 學(xué)習(xí)ALTERA公司的FPGA/CPLD的結(jié)構(gòu)、特點和性能。2. 學(xué)習(xí)集成開發(fā)軟件MAX+plusII/QuartusII的使用及設(shè)計過程。3. 熟悉EDA工具設(shè)計數(shù)字電路設(shè)計方法,掌握VHDL硬件描述語言設(shè)計方4. 根據(jù)給定題目設(shè)計數(shù)字電路,來加深對可編程邏輯器件的理解和掌握。二、課程設(shè)計應(yīng)完成的工作1. 在所選擇器件內(nèi)完成交通燈控制器的設(shè)計,要求設(shè)計完成后芯片具有交通燈控制器的全部功能、包括顯示和操作接口。2. 交通燈控制器要求控制十字路口兩道路的交通燈,兩道路交替通行,每次通行時間可設(shè)定2060秒之間,每個
2、路口要求有前行、禁止、人行燈。(根據(jù)實際設(shè)計進度考慮可以增加左右轉(zhuǎn)向燈,等待和通行時間顯示等)。3.撰寫設(shè)計說明書一份(不少丁2000字),闡述系統(tǒng)的工作原理,軟、硬件設(shè)計方法,重點闡述軟件思路。說明書應(yīng)包括封面、任務(wù)書、目錄、摘要、正文、參考文獻(資料)等內(nèi)容,以及硬件電路珠合圖和軟件程序活單等材料。注:設(shè)計說明書題目字體用小三,黑體,正文字體用五號字,宋體,小標題用四號及小四,宋體,并用A4紙打印。三、課程設(shè)計進程安排四、設(shè)計資料及參考文獻.康華光主編,電子技術(shù)基礎(chǔ)-數(shù)字部分,高等教育出版社,1998。課程設(shè)計各階段名稱日期1軟件學(xué)習(xí)12月1日12月12日2編寫軟件12月12日1月7日3軟
3、件仿真調(diào)試1月8日4軟、硬件仿真調(diào)試,撰寫設(shè)計說明書1月12日5完善設(shè)計說明書,提交設(shè)計說明書1月13日譚會生等主編,EDA技術(shù)及應(yīng)用,西安電子科技大學(xué)出版社,2001潘松等主編,EDA技術(shù)實用教程,科學(xué)出版社,2006雷伏容主編,VHDL電路設(shè)計,活華大學(xué)出版社,2006CharlesH.Roth等著,數(shù)字系統(tǒng)設(shè)計與VHDL,電子工業(yè)出版社,2008五、成績評定綜合以下因素:(1)說明書及設(shè)計圖紙的質(zhì)量(占50%)。獨立工作能力及設(shè)計過程的表現(xiàn)(占30%)?;卮饐栴}的情況(占20%)。說明書和圖紙部分評分分值分布如下:1、任務(wù)分析與設(shè)計思路(10分)要求說明設(shè)計任務(wù)的具體技術(shù)指標打算如何實現(xiàn)
4、,根據(jù)實現(xiàn)各技術(shù)指標的解決方法,提出總體設(shè)計的思路和解決方案,說明其中關(guān)鍵問題及其解決辦法。2、詳細設(shè)計(50分)根據(jù)總體設(shè)計完成下面任務(wù):1)用Quartus綜合出電路原理圖;(10分)2)列出芯片引腳分配并有注釋;(10分)3)提供波形圖并給出具體分析;(10分)4)提交程序活單,程序活單必須有詳細注釋。(10分)六、其他說明1. 課程設(shè)計需獨立完成,每人必須提交課程設(shè)計說明書。2. 課程設(shè)計說明書內(nèi)容不得$同,$同者本課程設(shè)計成績一律不及格。指導(dǎo)老師不負責(zé)甄別原創(chuàng)者與抄襲者。五. 目錄摘要設(shè)計思路設(shè)計過程.分頻模塊div.紅綠的現(xiàn)實模塊crosslight與crosslight2.計數(shù)兼
5、譯碼模塊4.模塊連接圖設(shè)計分析與總結(jié)程序清單EDA技術(shù)是以計算機為工具,根據(jù)硬件描述語言VHDL完成的設(shè)計文件,自動的完成邏輯編譯,化簡,分割,綜合及優(yōu)化,布局布線,仿真以及對特定目標芯片的適配編譯和編程下載等工作.隨著基于CPLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息,通信,自動控制用計算機等領(lǐng)域的重要性日益突出。作為一個學(xué)習(xí)通信工程專業(yè)的學(xué)生,我們必須不斷的了解更多的新產(chǎn)品信息,這就更加要求我們對EDA有個全面認識。本程序設(shè)計的是基于VHDL的數(shù)字時鐘,采用EDA作為開發(fā)工具,VHDL語言為硬件描述語言,QUARTUSII作為程序的運行平臺,所開發(fā)的程序經(jīng)過調(diào)試運行
6、,波形仿真驗證,初步實現(xiàn)了設(shè)計目標。本程序使用的硬件描述語言VHDL,可以大大降低了硬件數(shù)字系統(tǒng)設(shè)計的入門級別,讓人感覺就是C語言的親近。通過本次的課程設(shè)計,不但使同學(xué)們進一步了解EDA技術(shù)在實際中的應(yīng)用,也使同學(xué)們對EDA的綜合應(yīng)用有了更深一步的應(yīng)用,這次的課程設(shè)計給同學(xué)們以后的學(xué)習(xí)與工作中有了一個全面的指導(dǎo)作用.典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器,綜合器的功能就是將設(shè)計者在EDA平臺上完成的針對某個系統(tǒng)項目的VHDL原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進行編譯,優(yōu)化,轉(zhuǎn)換和綜合,最終獲得我們欲將實現(xiàn)的功能的描述文件。綜合器在工作前,必須給定要實現(xiàn)的硬件結(jié)
7、構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來,也就是說綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉(zhuǎn)換成低級的,可與目標器件CPLD相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置與指定的目標器件中,產(chǎn)生最終的下載文件。適配器所選的目標器件(CPLD芯片)必須包含于在綜合器中已指定的目標器件系列。硬件描述語言VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage。它主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了還有很多硬件特征的語句外,VHDL的語
8、言形式和描述風(fēng)格與句法是十分類似與一般的高級計算機語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。二、設(shè)計思路首先,既然是要用VHDL語言設(shè)計就必須得先學(xué)會VHDL語言,這是設(shè)計前必須的準備工作;其次,要求學(xué)會軟件的仿真使用,此次設(shè)計中所用的軟件工具是QUARTUSII5.1;再者就是具體設(shè)計過程的構(gòu)想了。在
9、車流不需交叉轉(zhuǎn)彎的單十字路口可以僅用簡單的四組的紅、黃、綠燈來控制,其中兩兩相同。假設(shè)一個十字路口有東西南北方向,則南北方向紅、黃、綠燈時序完全相同,東西方向亦如此。當南北方向為綠燈時東西方向為紅燈,此時南北方向通行而東西方向禁止通行,同時來至東、西方的車輛均可以右轉(zhuǎn),但不能左轉(zhuǎn),這是此設(shè)計的最大不足。當一個直通方向的紅燈停止時為該直通方向的出發(fā)的車輛不與另一直通方向已經(jīng)進入十字路交叉處但還為使出的車輛發(fā)生碰撞事故,必須設(shè)置黃燈等待指示作為緩沖。即為紅燈停了亮黃燈,黃燈停了亮綠燈,綠燈停了亮紅燈,依次循環(huán)。同時可以設(shè)置黃等2秒,綠燈20秒,紅燈22秒。采用模塊化設(shè)計,先將各個功能模塊設(shè)計調(diào)試成
10、功之后再用例化語句將各個功能模塊連接起來,即建立頂層模塊。三、設(shè)計過程1、分頻模塊div其功能就是根據(jù)所提供的晶振頻率進行分頻,以予驅(qū)動計數(shù)模塊和紅綠燈顯示模塊能,此模塊可以通過改變軟件的個別參數(shù)實現(xiàn)任意倍數(shù)的分頻。div:uiClk接晶振,fpclk用丁驅(qū)動后續(xù)模塊,rst接復(fù)位信號,低電平復(fù)位2、紅綠的顯示模塊crosslight與crosslight2用丁對紅綠燈的顯示控制,分別控制兩個直通方向的紅綠燈,clk為時鐘輸入端,接分頻模塊的輸出,鐘輸入端,接分頻模塊的輸出,rstl與rst0分別為復(fù)位信號輸入端,高電平crossliglhtSu?復(fù)位,greenlgt、yellowlgt、E
11、NeZZADOUTe22M|6,.DclkDOURW明EhG2A3OUT22MIG.JckDO*JT2201G.O|EN02Bdi沖偵redlgt與greenlgt0、yellowlgt0、redlgt0分別作為兩個直通方向的綠燈黃燈和紅燈的顯示。3、計數(shù)兼譯碼模塊這六個模塊均為計數(shù)模塊,其輸出直接為字形碼,即兼?zhèn)渥g碼的功能。具體原理為采用加計數(shù)器的方向顯示,利用直接查表賦值的方法逐一賦值,丁是就可以實現(xiàn)正序的加一計數(shù)行成倒序的減一計數(shù)。此六個模塊的功能實現(xiàn)原理完全一致,EN02EN20EN22ENe02ENe20ENe22即為復(fù)位輸入端,低電平復(fù)位。右端均為輸出端,輸出與七段顯示碼對應(yīng)的字型
12、碼可以直接驅(qū)動數(shù)碼管。CNT22SU5CNTeZOsENeZOADOUTe2DM0D|elkDCHTe2OB0.OJCNT2tku64、模塊連接圖通過頂層模塊的例化語句連接得到此圖EN20ADOUT2DM6QdkUUUT20LJ6UratDl2(輸入端口)*QJTeffiMPS5f-二二:1geec-|,三NT1>=gu土(輸出端口)四、仿真波形圖中第一個為分頻器時鐘輸入,第二到七個信號為紅綠燈的輸出信號,以下為計數(shù)輸出,計數(shù)輸出全為字型碼,可直接驅(qū)動七段數(shù)碼管顯示,例如圖中的1111110”為十進制“0”的字型碼ps81.92U5103E4«245T6us32766us409
13、.6世491.52usVlueatr1l.DUEps81.92U5103E4«245T6us32766us409.6世491.52usVlueatr1l.DUEps81.92U5103E4«245T6us32766us409.6世491.52usVlueatr1l.DUEtlkBCr3191rstUS0rstlI0r«dlgiI1yell.-.B0gree.r,S0r-edltOS0八以S1I0 MVT22HEOllCOOi回DOUT2SEEQOOCOOi曰TOVT02HB0111114EDOirrajwbuioodo MirrsoEeooooooi舊rein-e
14、ouodo舊TOUT.BOQDOOQI±jKVT.BDllOOOlamitt.boiooooElDOllT.EOtlOODDl3ElUa1!l11lilijl11jl1II11I1hiiinaiii|li|iai11aiiiiiiiiiiiLIIIaaniiiiiiiiiir11IIII iiuaihnii iiiiiiiiiiiLiiiiiii1aiiinjiiii.riiaiiiii111|i1ij111111n101IPX:;(niooqo:;:I|H.111:110JU3lllllluX.i_.i一一:"一i._.Eiuo.I1llollooooiiii;i;i!c
15、_m.niniuar-加成oiioooo:flipoolrJmgI碰0ns五、設(shè)計分析與總結(jié)本次課程設(shè)計的程序的設(shè)計和調(diào)試都花了我不少精力,雖然結(jié)果并不如意但至少最后還是仿真陳功了,而且通過本次課程設(shè)計是我進一步加深了對VHDL硬件描述語言的理解及其運用,VHDL描述數(shù)字電路系統(tǒng)設(shè)計的行為、功能、輸入和輸出,它在語法上與現(xiàn)代編程語言相似,但包含了許多與硬件有特殊關(guān)系的結(jié)構(gòu)。VHDL將一個設(shè)計稱為一個實體Entity(元件、電路或者系統(tǒng)),并且將它分成外部的可見部分(實體名、連接)和內(nèi)部的隱藏部分(實體算法、實現(xiàn))。當定義了一個設(shè)計的實體之后,其他實體可以利用該實體,也可以開發(fā)一個實體庫。所以,
16、內(nèi)部和外部的概念對系統(tǒng)設(shè)計的VHDL是十分重要的。外部的實體名或連接由實體聲明Entity來描述。而內(nèi)部的實體算法或?qū)崿F(xiàn)則由結(jié)構(gòu)體Architecture來描述。結(jié)構(gòu)體可以包含相連的多個進程process或者組建component等其他并行結(jié)構(gòu)。在此過程中,程序的反復(fù)調(diào)試簡直讓人想哭,有時候就僅僅是一個標點符號的錯誤都會花費大量的時間,特別是頂層模塊的調(diào)用,一不小心就錯誤一大堆。不過盡管感覺這次設(shè)計好難,但這也可以作為一次寶貴的人生體驗,可以加強獨立學(xué)習(xí)的能力,也許有同學(xué)會覺得快畢業(yè)了就沒必要學(xué)習(xí)了但我不這樣認為,我以前沒學(xué)好是現(xiàn)在更應(yīng)該抓住著大學(xué)剩下的短短時間。盡管很累,但我覺得很值得,謝謝
17、老師給予我這個“累”的機會。六、程序活單(由于六個計數(shù)兼顯示模塊設(shè)計思想完全一致,在注釋部分僅對前面兩個模塊進行注釋)-頂層模塊,完成各個功能模塊的鏈接LIBRARYIEEE;-主程序庫說明部分USEIEEE.Std_Logic_1164.ALL;ENTITYyintongIS-實體說明port(rst0,rst1,rst,clk:instd_logic;yellowlgt,greenlgt,redlgt:outstd_logic;greenlgt0,yellowlgt0,redlgt0:outstd_logic;DOUT02M:outstd_logic_vector(6downto0);DO
18、UTe02M:outstd_logic_vector(6downto0);DOUT22M,DOUT22B:outstd_logic_vector(6downto0);DOUT20M,DOUT20B:outstd_logic_vector(6downto0);DOUTe20M,DOUTe20B:outstd_logic_vector(6downto0);DOUTe22M,DOUTe22B:outstd_logic_vector(6downto0);endyintong;architecturetongofyintongis-結(jié)構(gòu)體說明componentdiv-分頻模塊弓I用port(rst:in
19、std_logic;clk:instd_logic;fpclk:outstd_logic);endcomponent;componentcrosslight2-一直通方向紅綠燈顯示模塊引用port(clk:instd_logic;rst1:instd_logic;greenlgt:outstd_logic;yellowlgt:outstd_logic;redlgt:outstd_logic);endcomponent;componentcrosslight-另一直通方向的紅綠燈顯示模塊引用port(clk:instd_logic;rst0:instd_logic;greenlgt0:outst
20、d_logic;yellowlgt0:outstd_logic;redlgt0:outstd_logic);endcomponent;componentcnt02s-一直通方向的黃燈顯示模塊引用port(clk,EN02B:instd_logic;DOUT02M:outstd_logic_vector(6downto0);endcomponent;componentcnte02s-另一直通方向的黃的顯示模塊引用port(clk,ENe02B:instd_logic;DOUTe02M:outstd_logic_vector(6downto0);endcomponent;componentCNT2
21、2s-直通方向的紅燈顯示模塊引用port(clk,EN22A:instd_logic;DOUT22M,DOUT22B:outstd_logic_vector(6downto0);endcomponent;componentCNT20s-endcomponent;componentCNT20s-componentCNT20s-componentCNT20s-直通方向的綠燈顯示模塊引用port(clk,EN20A:instd_logic;DOUT20M,DOUT20B:outstd_logic_vector(6downto0);endcomponent;componentCNTe20s-endco
22、mponent;componentCNTe20s-componentCNTe20s-componentCNTe20s-另一直通方向的綠燈顯示模塊引用port(clk,ENe20A:instd_logic;DOUTe20M,DOUTe20B:outstd_logic_vector(6downto0);endcomponent;componentCNTe22s-endcomponent;componentCNTe22s-componentCNTe22s-componentCNTe22s-另一直通方向的紅燈顯示模塊引用port(clk,ENe22A:instd_logic;DOUTe22M,DOUT
23、e22B:outstd_logic_vector(6downto0);endcomponent;signalo1:std_logic;-endcomponent;signalo1:std_logic;-signalo1:std_logic;-signalo1:std_logic;-信號量的定義signalyl:std_logic;-信號量的定義signaleyl:std_logic;-信號量的定義signalrl:std_logic;-signalrl:std_logic;-signalrl:std_logic;-信號量的定義下同signalerl:std_logic;signalgl:std
24、_logic;signalegl:std_logic;beginu1:divportmap(rst,clk,o1);-位置映射方法完成信號連接卜同u2:crosslightportmap(o1,rst1,egl,eyl,erl);u3:crosslight2portmap(o1,rst0,gl,yl,rl);u4:cnt02sportmap(o1,yl,DOUT02M);u5:cnt22sportmap(o1,rl,DOUT22M,DOUT22B);u6:CNT20sportmap(o1,gl,DOUT20M,DOUT20B);u7:cnte02sportmap(o1,eyl,DOUTe02M
25、);u8:CNTe20sportmap(o1,egl,DOUTe20M,DOUTe20B);u9:cnte22sportmap(o1,rl,DOUTe22M,DOUTe22B);yellowlgt<=yl;-賦值輸出下同yellowlgt0<=eyl;redlgt<=rl;greenlgt<=gl;greenlgt0<=egl;redlgt0<=erl;endtong;-頂層模塊結(jié)束-分頻模塊libraryieee;-庫說明useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydivi
26、s-實體說明port(rst:instd_logic;clk:instd_logic;fpclk:outstd_logic);enddiv;architecturearcofdivis-結(jié)構(gòu)體說明beginprocess(clk)-并行進程語句variablecount:integerrange0to1000000000;-定義允許分頻為0到-1000000000variableclk0:std_logic;beginifrst='0'then-rst為低電平時復(fù)位clk0:='0'elsifclk'eventandclk='1'then
27、ifcount=1000thenclk0:=notclk0;count:=0;-上升沿敏感,定義1000分頻elsecount:=count+1;endif;endif;fpclk<=clk0;endprocess;endarc;-一方向紅綠燈顯示模塊libraryieee;-庫說明useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycrosslightis-generic(yellow:integer:=2;-green:integer:=20;-red:integer:=22-實體說明定義黃燈顯示時間定義綠燈
28、顯示時間定義紅燈顯示時間);port(clk:instd_logic;rst0:instd_logic;greenlgt0:outstd_logic;yellowlgt0:outstd_logic;redlgt0:outstd_logic);endcrosslight;architectureaofcrosslightis-結(jié)構(gòu)體說明typestatesis(st0,st1,st2);signalstate:states;signalcnt:integer;signalcnt_end:std_logic;begin輸入process(rst0,clk)-并行進程語句實現(xiàn)紅綠燈信beginif(
29、rst0='1')then-定義高電平復(fù)位state<=st0;cnt<=0;elsif(rising_edge(clk)thenif(cnt_end='1')thencnt<=cnt+1;-計數(shù)加一elsecnt<=0;endif;casestateiswhenst0=>if(cnt=green)thenstate<=st1;elsestate<=st0;endif;whenst1=>if(cnt=yellow)thenstate<=st2;elsestate<=st1;endif;whenst2=&
30、gt;if(cnt=red)thenstate<=st0;elsestate<=st2;endif;endcase;endif;endprocess;process(state)-并行進程語句實現(xiàn)紅綠燈信號輸出begincasestateiswhenstO=>yellowlgtO<='1'greenlgtO<='O'redlgtO<='O'cnt_end<='r;if(cnt=green)thencnt_end<='0'endif;whenst1=>yellowlgt0
31、<='0'greenlgtO<='1'redlgtO<='O'cnt_end<='r;if(cnt=yellow)thencnt_end<='0'endif;whenst2=>yellowlgt0<='0'greenlgtO<='O'redlgtO<='r;cnt_end<='r;if(cnt=red)thenentend<='0'endif;endcase;endprocess;enda;-另
32、一方向紅綠燈顯示模塊libraryieee;-庫說明useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycrosslight2is-entitycrosslight2is-entitycrosslight2is-實體說明generic(generic(generic(green:integer:=20;-green:integer:=20;-green:integer:=20;-定義綠燈顯示時間yellow:integer:=2;-yellow:integer:=2;-yellow:integer:=2;-定義黃燈顯示
33、時間red:integer:=22-red:integer:=22-red:integer:=22-定義紅燈顯示時間);port(clk:instd_logic;rst1:instd_logic;greenlgt:outstd_logic;yellowlgt:outstd_logic;redlgt:outstd_logic);endcrosslight2;結(jié)構(gòu)體說明結(jié)構(gòu)體說明architectureaofcrosslight2is-typestatesis(st0,st1,st2);signalstate:states;signalcnt:integer;signalcnt_end:std_l
34、ogic;beginprocess(rst1,clk)-并行進程語句實現(xiàn)紅綠燈信號輸入beginif(rst1='1')thenstate<=st0;cnt<=0;-復(fù)位elsif(rising_edge(clk)thenif(cnt_end='1')thencnt<=cnt+1;elsecnt<=0;endif;casestateiswhenst0=>if(cnt=red)thenstate<=st1;elsestate<=st0;endif;whenst1=>if(cnt=yellow)thenstate<
35、;=st2;elsestate<=st1;endif;whenst2=>if(cnt=green)thenstate<=st0;elsestate<=st2;endif;endcase;endif;endprocess;process(state)-并行進程語句實現(xiàn)紅綠燈信號輸出begincasestateiswhenst0=>redlgt<='1'yellowlgt<='0'greenlgt<='0'cnt_end<='1'if(cnt=red)thencnt_end<
36、='0'endif;whenst1=>redlgt<='0'yellowlgt<='1'greenlgt<='0'cnt_end<='1'if(cnt=yellow)thencnt_end<='0'endif;whenst2=>redlgt<='0'yellowlgt<='0'greenlgt<='1'cnt_end<='1'if(cnt=green)thencnt_en
37、d<='0'endif;endcase;endprocess;enda;-一方向兩秒計數(shù)及顯示libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT02sis-實體說明port(clk,EN02B:instd_logic;定義七位輸出定義七位輸出定義七位輸出DOUT02M:outstd_logic_vector(6downto0);-endentityCNT02s;architectureartofCNT02sissignalCNT2B:std_logic_vector
38、(1downto0);beginprocess(clk,EN02B)isbeginif(clk'eventandclk='1')then-上升沿計數(shù)ifEN02B='1'thenCNT2B<=CNT2B+1;-計數(shù)器加一ELSECNT2B<="01"endif;endif;endprocess;process(CNT2B)isbeginCASECNT2BisWHEN"00”=>DOUT02M<="0111110”;-字型碼輸出WHEN"01”=>DOUT02M<=&qu
39、ot;1111110”;-字型碼輸出WHENOTHERS=>DOUT02M<="1111110”;-字型碼輸出ENDCASE;ENDPROCESS;ENDARCHITECTUREART;-二十二秒計數(shù)兼顯示模塊,正序計時倒序輸出useieee.std_logic_1164.all;-庫說明useieee.std_logic_unsigned.all;port(clk,EN22A:instd_logic;DOUT22M,DOUT22B:outstd_logic_vector(6downto0);-定義高位和地位字型碼的輸出endentityCNT22s;architectu
40、reartofCNT22sis-結(jié)構(gòu)體說明signalCNT6B:std_logic_vector(4downto0);-5位計數(shù)beginlibraryieee;process(clk,EN22A)is-正序計數(shù)并行進程語句beginif(clk'eventandclk='1')thenifEN22A='1'thenCNT6B<=CNT6B+1;-上升沿計數(shù)EN22A為低電平時復(fù)位ELSECNT6B<="10110"endif;endif;Endprocess;Process(CNT6B)is-倒序字型碼輸出beginC
41、ASECNT6BisWHEN"10110”=>DOUT22M<="1111110”;DOUT22B<="1111110”;-字型碼倒序輸出下同WHEN"10101"=>DOUT22M<="1111110"DOUT22B<="0110000"WHEN"10100"=>DOUT22M<="1111110"DOUT22B<="1101101"WHEN"10011"=>DOU
42、T22M<="1111110"DOUT22B<="1111001"WHEN"10010”=>DOUT22M<="1111110”;DOUT22B<="0110011”;WHEN"10001"=>DOUT22M<="1111110"DOUT22B<="1011011"WHEN"10000"=>DOUT22M<="1111110"DOUT22B<="101
43、1111"WHEN"01111"=>DOUT22M<="1111110"DOUT22B<="1110010"WHEN"01110"=>DOUT22M<="1111110"DOUT22B<="1111111"WHEN"01101"=>DOUT22M<="1111110"DOUT22B<="1111011"WHEN"01100”=>DOUT2
44、2M<="0110000”;DOUT22B<="1111110”;WHEN"01011"=>DOUT22M<="0110000"DOUT22B<="0110000"WHEN"01010"=>DOUT22M<="0110000"DOUT22B<="1101101"WHEN"01001"=>DOUT22M<="0110000"DOUT22B<="
45、1111001"WHEN"01000"=>DOUT22M<="0110000"DOUT22B<="0110011"WHEN"00111"=>DOUT22M<="0110000"DOUT22B<="1011011"WHEN"00110"=>DOUT22M<="0110000"DOUT22B<="1011111"WHEN"00101"=&
46、gt;DOUT22M<="0110000"DOUT22B<="1110010"WHEN"00100"=>DOUT22M<="0110000"DOUT22B<="1111111"WHEN"00011"=>DOUT22M<="0110000"DOUT22B<="1111011"WHEN"00010"=>DOUT22M<="1101101"DO
47、UT22B<="1111110"WHEN"00001"=>DOUT22M<="1101101"DOUT22B<="0110000"WHEN"00000"=>DOUT22M<="1101101"DOUT22B<="1101101"WHENOTHERS=>DOUT22M<="1111110”;DOUT22B<="1111110”;ENDCASE;ENDPROCESS;ENDARCH
48、ITECTUREART;-二十秒計數(shù)兼顯示模塊,其余注釋同上libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT20sisport(clk,EN20A,EN20B:instd_logic;DOUT20M,DOUT20B:outstd_logic_vector(6downto0);endentityCNT20s;architectureartofCNT20sissignalCNT6B:std_logic_vector(4downto0);beginprocess(clk,EN20A,EN20
49、B)isbeginif(clk'eventandclk='1')thenifEN20A='1'thenCNT6B<=CNT6B+1;ELSEcNT6B<="10100”;endif;endif;endprocess;process(CNT6B)isbegincASECNT6BiswHEN"10100”=>DOUT20M<="1111110”;DOUT20B<="1111110”;wHEN"10011”=>DOUT20M<="1111110”;DOUT20
50、B<="0110000”;wHEN"10010”=>DOUT20M<="1111110”;DOUT20B<="1101101”;wHEN"10001"=>DOUT20M<="1111110"DOUT20B<="1111001"wHEN"10000"=>DOUT20M<="1111110"DOUT20B<="0110011"wHEN"01111"=>DO
51、UT20M<="1111110"DOUT20B<="1011011"wHEN"01110"=>DOUT20M<="1111110"DOUT20B<="1011111"wHEN"01101"=>DOUT20M<="1111110"DOUT20B<="1110010"wHEN"01100"=>DOUT20M<="1111110"DOUT20B
52、<="1111111"wHEN"01011"=>DOUT20M<="1111110"DOUT20B<="1111011"wHEN"01010”=>DOUT20M<="0110000”;DOUT20B<="1111110”;wHEN"01001"=>DOUT20M<="0110000"DOUT20B<="0110000"wHEN"01000"=>
53、;DOUT20M<="0110000"DOUT20B<="1101101"wHEN"00111"=>DOUT20M<="0110000"DOUT20B<="1111001"wHEN"00110"=>DOUT20M<="0110000"DOUT20B<="0110011"wHEN"00101"=>DOUT20M<="0110000"DOUT
54、20B<="1011011"wHEN"00100"=>DOUT20M<="0110000"DOUT20B<="1011111"wHEN"00011"=>DOUT20M<="0110000"DOUT20B<="1110010"wHEN"00010"=>DOUT20M<="0110000"DOUT20B<="1111111"wHEN"
55、;00001"=>DOUT20M<="0110000"DOUT20B<="1111011"wHEN"00000"=>DOUT20M<="1101101"DOUT20B<="1111110"WHENOTHERS=>DOUT20M<="1111110”;DOUT20B<="1111110”;ENDCASE;eNDPROCESS;eNDARCHITECTUREART;libraryieee;useieee.std_lo
56、gic_1164.all;useieee.std_logic_unsigned.all;entityCNTe02sisport(clk,ENe02B:instd_logic;DOUTe02M:outstd_logic_vector(6downto0);endentityCNTe02s;architectureartofCNTe02sissignalCNTe2B:std_logic_vector(1downto0);beginprocess(clk,ENe02B)isbeginif(clk'eventandclk='1')thenifENe02B='1't
57、henCNTe2B<=CNTe2B+1;ELSECNTe2B<="01”;endif;endif;endprocess;process(CNTe2B)isbeginCASECNTe2BisWHEN"01”=>DOUTe02M<="1111110”;WHEN"00”=>DOUTe02M<="0110000”;WHENOTHERS=>DOUTe02M<="1111110”;ENDCASE;ENDPROCESS;ENDARCHITECTUREART;-二十秒計數(shù)兼顯示其余注釋同上library
58、ieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNTe20sisport(clk,ENe20A,ENe20B:instd_logic;DOUTe20M,DOUTe20B:outstd_logic_vector(6downto0);endentityCNTe20s;architectureartofCNTe20sissignalCNTe6B:std_logic_vector(4downto0);beginprocess(clk,ENe20A,ENe20B)isbeginif(clk'eventan
59、dclk='1')thenifENe20A='1'thenCNTe6B<=CNTe6B+1;ELSEcNTe6B<="10100"endif;endif;endprocess;process(CNTe6B)isbegincASECNTe6BiswHEN"10100”=>DOUTe20M<="1111110”;DOUTe20B<="1111110”;wHEN"10011”=>DOUTe20M<="1111110”;DOUTe20B<="0
60、110000”;wHEN"10010"=>DOUTe20M<="1111110"DOUTe20B<="1101101"wHEN"10001"=>DOUTe20M<="1111110"DOUTe20B<="1111001"wHEN"10000"=>DOUTe20M<="1111110"DOUTe20B<="0110011"wHEN"01111"=
61、>DOUTe20M<="1111110"DOUTe20B<="1011011"wHEN"01110"=>DOUTe20M<="1111110"DOUTe20B<="1011111"wHEN"01101"=>DOUTe20M<="1111110"DOUTe20B<="1110010"wHEN"01100"=>DOUTe20M<="1111110
62、"DOUTe20B<="1111111"wHEN"01011"=>DOUTe20M<="1111110"DOUTe20B<="1111011"wHEN"01010”=>DOUTe20M<="0110000”;DOUTe20B<="1111110”;wHEN"01001"=>DOUTe20M<="0110000"DOUTe20B<="0110000"wHEN&
63、quot;01000"=>DOUTe20M<="0110000"DOUTe20B<="1101101"wHEN"00111"=>DOUTe20M<="0110000"DOUTe20B<="1111001"wHEN"00110"=>DOUTe20M<="0110000"DOUTe20B<="0110011"wHEN"00101"=>DOUTe20M&
64、lt;="0110000"DOUTe20B<="1011011"wHEN"00100"=>DOUTe20M<="0110000"DOUTe20B<="1011111"wHEN"00011"=>DOUTe20M<="0110000"DOUTe20B<="1110010"wHEN"00010"=>DOUTe20M<="0110000"DOUTe20
65、B<="1111111"wHEN"00001"=>DOUTe20M<="0110000"DOUTe20B<="1111011"wHEN"00000"=>DOUTe20M<="1101101"DOUTe20B<="1111110"WHENOTHERS=>DOUTe20M<="1111110”;DOUTe20B<="1111110”;ENDCASE;eNDPROCESS;eNDAR
66、CHITECTUREART;-二十二秒計數(shù)兼顯示,其余注釋同上libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNTe22sisport(clk,ENe22A:instd_logic;DOUTe22M,DOUTe22B:outstd_logic_vector(6downto0);endentityCNTe22s;architectureartofCNTe22sissignalCNTe6B:std_logic_vector(4downto0);beginprocess(clk,ENe22A)isbeginif(clk'eventandclk='1&
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3404-2024石漠化防治效益監(jiān)測與評價規(guī)范
- 陜教版道德與法治九年級上冊8.1《升學(xué)就業(yè)善選擇》聽課評課記錄
- 浙教版數(shù)學(xué)七年級上冊第五章《一元一次方程》復(fù)習(xí)聽評課記錄
- 蘇科版七年級數(shù)學(xué)上冊《2.7.1理數(shù)的乘方》聽評課記錄
- 華東師大版七年級數(shù)學(xué)上冊《第1章走進數(shù)學(xué)世界1.2人類離不開數(shù)學(xué) 》聽評課記錄
- 蘇科版數(shù)學(xué)九年級下冊8.4《抽簽方法合理嗎》聽評課記錄
- 蘇科版數(shù)學(xué)九年級上冊1.2《一元二次方程的解法》聽評課記錄4
- 生態(tài)環(huán)境監(jiān)測數(shù)據(jù)共享合同(2篇)
- 環(huán)境數(shù)據(jù)共享服務(wù)合同(2篇)
- 聽評課研討記錄七年級
- 電化學(xué)免疫傳感器的應(yīng)用
- 數(shù)據(jù)中心基礎(chǔ)知識培訓(xùn)-2024鮮版
- 供電企業(yè)輿情的預(yù)防及處置
- 【高中語文】《氓》課件++統(tǒng)編版+高中語文選擇性必修下冊
- T-WAPIA 052.3-2023 無線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第3部分:接入點和控制器
- 第4課+中古時期的亞洲(教學(xué)設(shè)計)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 金點子活動總結(jié)匯報
- 運動技能學(xué)習(xí)與控制完整
- 原料驗收標準知識培訓(xùn)課件
- Unit4MyfamilyStorytime(課件)人教新起點英語三年級下冊
- 物流運作管理-需求預(yù)測
評論
0/150
提交評論