2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(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>  課程名稱: 交通燈設(shè)計(jì) . </p><p>  學(xué) 院: 電氣工程學(xué)院 專 業(yè): 測儀 </p><p>  姓 名: 學(xué)

2、 號: </p><p>  年 級: 級 任課教師: </p><p>  2012年 1月12日</p><p><b>  電氣工程學(xué)院</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></

3、p><p>  課題名稱:  交通燈控制器的設(shè)計(jì)  </p><p>  專業(yè)、班級: 測控技術(shù)與儀器測儀 班 </p><p>  指導(dǎo)教師:     </p><p>  20 年 1 月 2 日至 20 年 1 月 13 日共 2 周</p><p>  指導(dǎo)教師簽名:

4、 </p><p>  教研室主任簽名: </p><p>  分管院長簽名: </p><p><b>  一、課程設(shè)計(jì)內(nèi)容</b></p><p>  1.學(xué)習(xí)ALTERA公司的FPGA/CPLD的結(jié)構(gòu)、特點(diǎn)和性能。</p><p>  2

5、.學(xué)習(xí)集成開發(fā)軟件MAX+plus II/Quartus II的使用及設(shè)計(jì)過程。</p><p>  3.熟悉EDA工具設(shè)計(jì)數(shù)字電路設(shè)計(jì)方法,掌握VHDL硬件描述語言設(shè)計(jì)方法。</p><p>  4.根據(jù)給定題目設(shè)計(jì)數(shù)字電路,來加深對可編程邏輯器件的理解和掌握。</p><p>  二、課程設(shè)計(jì)應(yīng)完成的工作</p><p>  1.在所選擇

6、器件內(nèi)完成交通燈控制器的設(shè)計(jì),要求設(shè)計(jì)完成后芯片具有交通燈控制器的全部功能、包括顯示和操作接口。</p><p>  2.交通燈控制器要求控制十字路口兩道路的交通燈,兩道路交替通行,每次通行時(shí)間可設(shè)定20——60秒之間,每個(gè)路口要求有前行、禁止、人行燈。(根據(jù)實(shí)際設(shè)計(jì)進(jìn)度考慮可以增加左右轉(zhuǎn)向燈,等待和通行時(shí)間顯示等)。</p><p>  3.撰寫設(shè)計(jì)說明書一份(不少于2000字),闡述系

7、統(tǒng)的工作原理,軟、硬件設(shè)計(jì)方法,重點(diǎn)闡述軟件思路。說明書應(yīng)包括封面、任務(wù)書、目錄、摘要、正文、參考文獻(xiàn)(資料)等內(nèi)容,以及硬件電路綜合圖和軟件程序清單等材料。</p><p>  注:設(shè)計(jì)說明書題目字體用小三,黑體,正文字體用五號字,宋體,小標(biāo)題用四號及小四,宋體,并用A4紙打印。</p><p>  三、課程設(shè)計(jì)進(jìn)程安排</p><p>  四、設(shè)計(jì)資料及參考文獻(xiàn)

8、</p><p>  1.康華光 主編,《電子技術(shù)基礎(chǔ)-數(shù)字部分》,高等教育出版社,1998。</p><p>  2.譚會(huì)生等 主編,《EDA技術(shù)及應(yīng)用》,西安電子科技大學(xué)出版社,2001</p><p>  3.潘松等 主編,《EDA技術(shù)實(shí)用教程》,科學(xué)出版社,2006</p><p>  4.雷伏容 主編,《VHDL電路設(shè)計(jì)》,清華大學(xué)

9、出版社,2006</p><p>  5.Charles H.Roth等著,《數(shù)字系統(tǒng)設(shè)計(jì)與VHDL》,電子工業(yè)出版社,2008</p><p>  五、成績評定綜合以下因素:</p><p>  (1) 說明書及設(shè)計(jì)圖紙的質(zhì)量(占50%)。</p><p>  (2) 獨(dú)立工作能力及設(shè)計(jì)過程的表現(xiàn) (占30%)。</p>&l

10、t;p>  (3) 回答問題的情況(占20%)。</p><p>  說明書和圖紙部分評分分值分布如下:</p><p>  任務(wù)分析與設(shè)計(jì)思路(10分)</p><p>  要求說明設(shè)計(jì)任務(wù)的具體技術(shù)指標(biāo)打算如何實(shí)現(xiàn),根據(jù)實(shí)現(xiàn)各技術(shù)指標(biāo)的解決方法,提出總體設(shè)計(jì)的思路和解決方案,說明其中關(guān)鍵問題及其解決辦法。</p><p><b

11、>  詳細(xì)設(shè)計(jì)(50分)</b></p><p>  根據(jù)總體設(shè)計(jì)完成下面任務(wù):</p><p>  1)用Quartus 綜合出電路原理圖;(10分)</p><p>  2)列出芯片引腳分配并有注釋;(10分)</p><p>  3)提供波形圖并給出具體分析;(10分)</p><p>  4)

12、提交程序清單,程序清單必須有詳細(xì)注釋。(10分)</p><p><b>  六、其他說明</b></p><p>  課程設(shè)計(jì)需獨(dú)立完成,每人必須提交課程設(shè)計(jì)說明書。</p><p>  課程設(shè)計(jì)說明書內(nèi)容不得雷同,雷同者本課程設(shè)計(jì)成績一律不及格。指導(dǎo)老師不負(fù)責(zé)甄別原創(chuàng)者與抄襲者。</p><p><b> 

13、 正 文</b></p><p><b>  目 錄</b></p><p>  一.摘要..........................</p><p>  二.設(shè)計(jì)思路........................</p><p>  三.設(shè)計(jì)過程...............

14、.........</p><p> ?。保诸l模塊div..................</p><p> ?。玻t綠的現(xiàn)實(shí)模塊crosslight與crosslight2......</p><p>  3.計(jì)數(shù)兼譯碼模塊.................</p><p> ?。矗K連接圖....................&l

15、t;/p><p>  五.設(shè)計(jì)分析與總結(jié).....................</p><p>  六.程序清單........................</p><p>  一、摘 要</p><p>  EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語言VHDL完成的設(shè)計(jì)文件,自動(dòng)的完成邏輯編譯,化簡,分割,綜合及優(yōu)化,布局布線

16、,仿真以及對特定目標(biāo)芯片的適配編譯和編程下載等工作.隨著基于CPLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,EDA技術(shù)在電子信息,通信,自動(dòng)控制用計(jì)算機(jī)等領(lǐng)域的重要性日益突出。作為一個(gè)學(xué)習(xí)通信工程專業(yè)的學(xué)生,我們必須不斷的了解更多的新產(chǎn)品信息,這就更加要求我們對EDA有個(gè)全面認(rèn)識。本程序設(shè)計(jì)的是基于VHDL的數(shù)字時(shí)鐘,采用EDA作為開發(fā)工具,VHDL語言為硬件描述語言,QUARTUSII作為程序的運(yùn)行平臺,所開發(fā)的程序經(jīng)過調(diào)試運(yùn)行,波

17、形仿真驗(yàn)證,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。本程序使用的硬件描述語言VHDL,可以大大降低了硬件數(shù)字系統(tǒng)設(shè)計(jì)的入門級別,讓人感覺就是C語言的親近。通過本次的課程設(shè)計(jì),不但使同學(xué)們進(jìn)一步了解EDA技術(shù)在實(shí)際中的應(yīng)用,也使同學(xué)們對EDA的綜合應(yīng)用有了更深一步的應(yīng)用,這次的課程設(shè)計(jì)給同學(xué)們以后的學(xué)習(xí)與工作中有了一個(gè)全面的指導(dǎo)作用. </p><p>  典型的EDA工具中必須包含兩個(gè)特殊的軟件包,即綜合器和適配器,綜合器的功能就是

18、將設(shè)計(jì)者在EDA平臺上完成的針對某個(gè)系統(tǒng)項(xiàng)目的VHDL原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進(jìn)行編譯,優(yōu)化,轉(zhuǎn)換和綜合,最終獲得我們欲將實(shí)現(xiàn)的功能的描述文件。綜合器在工作前,必須給定要實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來,也就是說綜合器是軟件描述與硬件實(shí)現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉(zhuǎn)換成低級的,可與目標(biāo)器件CPLD相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件

19、配置與指定的目標(biāo)器件中,產(chǎn)生最終的下載文件。適配器所選的目標(biāo)器件(CPLD芯片)必須包含于在綜合器中已指定的目標(biāo)器件系列。</p><p>  硬件描述語言VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language。它主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了還有很多硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與

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

21、設(shè)計(jì)思路 </b></p><p>  首先,既然是要用VHDL語言設(shè)計(jì)就必須得先學(xué)會(huì)VHDL語言,這是設(shè)計(jì)前必須的準(zhǔn)備工作;其次,要求學(xué)會(huì)軟件的仿真使用,此次設(shè)計(jì)中所用的軟件工具是QUARTUSII 5.1;再者就是具體設(shè)計(jì)過程的構(gòu)想了。</p><p>  在車流不需交叉轉(zhuǎn)彎的單十字路口可以僅用簡單的四組的紅、黃、綠燈來控制,其中兩兩相同。假設(shè)一個(gè)十字路口有東西南北方向

22、,則南北方向紅、黃、綠燈時(shí)序完全相同,東西方向亦如此。當(dāng)南北方向?yàn)榫G燈時(shí)東西方向?yàn)榧t燈,此時(shí)南北方向通行而東西方向禁止通行,同時(shí)來至東、西方的車輛均可以右轉(zhuǎn),但不能左轉(zhuǎn),這是此設(shè)計(jì)的最大不足。當(dāng)一個(gè)直通方向的紅燈停止時(shí)為該直通方向的出發(fā)的車輛不與另一直通方向已經(jīng)進(jìn)入十字路交叉處但還為使出的車輛發(fā)生碰撞事故,必須設(shè)置黃燈等待指示作為緩沖。即為紅燈停了亮黃燈,黃燈停了亮綠燈,綠燈停了亮紅燈,依次循環(huán)。同時(shí)可以設(shè)置黃等2秒,綠燈20秒,紅燈2

23、2秒。采用模塊化設(shè)計(jì),先將各個(gè)功能模塊設(shè)計(jì)調(diào)試成功之后再用例化語句將各個(gè)功能模塊連接起來,即建立頂層模塊。</p><p><b>  三、設(shè)計(jì)過程</b></p><p><b>  1、分頻模塊div</b></p><p>  其功能就是根據(jù)所提供的晶振頻率進(jìn)行分頻,以予驅(qū)動(dòng)計(jì)數(shù)模塊和紅綠燈顯示模塊能,此模塊可以通過

24、改變軟件的個(gè)別參數(shù)實(shí)現(xiàn)任意倍數(shù)的分頻。</p><p>  Clk接晶振,fpclk用于驅(qū)動(dòng)后續(xù)模塊,rst接復(fù)位信號,低電平復(fù)位。</p><p>  紅綠的顯示模塊crosslight與crosslight2</p><p>  用于對紅綠燈的顯示控制,分別控制兩個(gè)直通方向的紅綠燈,clk為時(shí)鐘輸入端,接分頻模塊的輸出,rst1與rst0分別為復(fù)位信號輸入端,高

25、電平</p><p>  復(fù)位,greenlgt、yellowlgt、 redlgt與greenlgt0、 yellowlgt0、 redlgt0 分別作為兩個(gè)直通方向的綠燈黃燈和紅燈的顯示。</p><p><b>  計(jì)數(shù)兼譯碼模塊</b></p><p>  這六個(gè)模塊均為計(jì)數(shù)模塊,其輸出直接為字形碼,即兼?zhèn)渥g碼的功能。具體原理為采用加計(jì)

26、數(shù)器的方向顯示,利用直接查表賦值的方法逐一賦值,于是就可以實(shí)現(xiàn)正序的加一計(jì)數(shù)行成倒序的減一計(jì)數(shù)。此六個(gè)模塊的功能實(shí)現(xiàn)原理完全一致,EN02 EN20 EN22 ENe02 ENe20 ENe22即為復(fù)位輸入端,低電平復(fù)位。右端均為輸出端,輸出與七段顯示碼對應(yīng)的字型碼可以直接驅(qū)動(dòng)數(shù)碼管。</p><p>  模塊連接圖 通過頂層模塊的例化語句連接得到此圖</p><p><b&g

27、t; ?。ㄝ斎攵丝?) </b></p><p><b>  (輸出端口)</b></p><p><b>  四、仿真波形</b></p><p>  圖中第一個(gè)為分頻器時(shí)鐘輸入,第二到七個(gè)信號為紅綠燈的輸出信號,以下為計(jì)數(shù)輸出,計(jì)數(shù)輸出全為字型碼,可直接驅(qū)動(dòng)七段數(shù)碼管顯示,例如圖中的“1111110”為十進(jìn)

28、制“0”的字型碼。</p><p><b>  五、設(shè)計(jì)分析與總結(jié)</b></p><p>  本次課程設(shè)計(jì)的程序的設(shè)計(jì)和調(diào)試都花了我不少精力,雖然結(jié)果并不如意但至少最后還是仿真陳功了,而且通過本次課程設(shè)計(jì)是我進(jìn)一步加深了對VHDL硬件描述語言的理解及其運(yùn)用,VHDL描述數(shù)字電路系統(tǒng)設(shè)計(jì)的行為、功能、輸入和輸出,它在語法上與現(xiàn)代編程語言相似,但包含了許多與硬件有特殊關(guān)

29、系的結(jié)構(gòu)。VHDL將一個(gè)設(shè)計(jì)稱為一個(gè)實(shí)體Entity(元件、電路或者系統(tǒng)),并且將它分成外部的可見部分(實(shí)體名、連接)和內(nèi)部的隱藏部分(實(shí)體算法、實(shí)現(xiàn))。當(dāng)定義了一個(gè)設(shè)計(jì)的實(shí)體之后,其他實(shí)體可以利用該實(shí)體,也可以開發(fā)一個(gè)實(shí)體庫。所以,內(nèi)部和外部的概念對系統(tǒng)設(shè)計(jì)的VHDL是十分重要的。外部的實(shí)體名或連接由實(shí)體聲明Entity來描述。而內(nèi)部的實(shí)體算法或?qū)崿F(xiàn)則由結(jié)構(gòu)體 Architecture來描述。結(jié)構(gòu)體可以包含相連的多個(gè)進(jìn)程proce

30、ss或者組建component等其他并行結(jié)構(gòu)。</p><p>  在此過程中,程序的反復(fù)調(diào)試簡直讓人想哭,有時(shí)候就僅僅是一個(gè)標(biāo)點(diǎn)符號的錯(cuò)誤都會(huì)花費(fèi)大量的時(shí)間,特別是頂層模塊的調(diào)用,一不小心就錯(cuò)誤一大堆。不過盡管感覺這次設(shè)計(jì)好難,但這也可以作為一次寶貴的人生體驗(yàn),可以加強(qiáng)獨(dú)立學(xué)習(xí)的能力,也許有同學(xué)會(huì)覺得快畢業(yè)了就沒必要學(xué)習(xí)了但我不這樣認(rèn)為,我以前沒學(xué)好是現(xiàn)在更應(yīng)該抓住著大學(xué)剩下的短短時(shí)間。盡管很累,但我覺得很值得

31、,謝謝老師給予我這個(gè)“累”的機(jī)會(huì)。</p><p><b>  六、程序清單</b></p><p> ?。ㄓ捎诹鶄€(gè)計(jì)數(shù)兼顯示模塊設(shè)計(jì)思想完全一致,在注釋部分僅對前面兩個(gè)模塊進(jìn)行注釋)</p><p>  --頂層模塊,完成各個(gè)功能模塊的鏈接</p><p>  LIBRARY IEEE;--主程序庫說明部分</p

32、><p>  USE IEEE.Std_Logic_1164.ALL;</p><p>  ENTITY yintong IS--實(shí)體說明</p><p>  port( rst0,rst1,rst,clk: in std_logic;</p><p>  yellowlgt,greenlgt,redlgt: out std_logic;<

33、/p><p>  greenlgt0,yellowlgt0,redlgt0: out std_logic;</p><p>  DOUT02M: out std_logic_vector(6 downto 0);</p><p>  DOUTe02M:out std_logic_vector(6 downto 0);</p><p>  DOUT

34、22M,DOUT22B:out std_logic_vector(6 downto 0);</p><p>  DOUT20M,DOUT20B:out std_logic_vector(6 downto 0);</p><p>  DOUTe20M,DOUTe20B:out std_logic_vector(6 downto 0);</p><p>  DOUTe2

35、2M,DOUTe22B:out std_logic_vector(6 downto 0));</p><p>  end yintong;</p><p>  architecture tong of yintong is--結(jié)構(gòu)體說明</p><p>  component div--分頻模塊引用</p><p>  port( rst:

36、in std_logic;</p><p>  clk: in std_logic;</p><p>  fpclk: out std_logic);</p><p>  end component;</p><p>  component crosslight2-- 一直通方向紅綠燈顯示模塊引用</p><p> 

37、 port(clk: in std_logic;</p><p>  rst1: in std_logic;</p><p>  greenlgt: out std_logic;</p><p>  yellowlgt: out std_logic;</p><p>  redlgt: out std_logic);</p>&

38、lt;p>  end component;</p><p>  component crosslight-- 另一直通方向的紅綠燈顯示模塊引用</p><p>  port(clk: in std_logic;</p><p>  rst0: in std_logic;</p><p>  greenlgt0: out std_logi

39、c;</p><p>  yellowlgt0: out std_logic;</p><p>  redlgt0: out std_logic);</p><p>  end component;</p><p>  component cnt02s-- 一直通方向的黃燈顯示模塊引用</p><p>  port(

40、clk,EN02B:in std_logic;</p><p>  DOUT02M:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  component cnte02s-- 另一直通方向的黃的顯示模塊引用</p><p>  port(clk,ENe0

41、2B:in std_logic;</p><p>  DOUTe02M:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  component CNT22s-- 一直通方向的紅燈顯示模塊引用</p><p>  port(clk,EN22A:in std

42、_logic;</p><p>  DOUT22M,DOUT22B:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  component CNT20s-- 一直通方向的綠燈顯示模塊引用</p><p>  port(clk,EN20A:in std_l

43、ogic;</p><p>  DOUT20M,DOUT20B:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  component CNTe20s-- 另一直通方向的綠燈顯示模塊引用</p><p>  port(clk,ENe20A:in std_

44、logic;</p><p>  DOUTe20M,DOUTe20B:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  component CNTe22s-- 另一直通方向的紅燈顯示模塊引用</p><p>  port(clk,ENe22A:in s

45、td_logic;</p><p>  DOUTe22M,DOUTe22B:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  signal o1:std_logic;-- 信號量的定義</p><p>  signal yl:std_logic; --

46、 信號量的定義</p><p>  signal eyl:std_logic; -- 信號量的定義</p><p>  signal rl:std_logic; -- 信號量的定義 下同</p><p>  signal erl:std_logic;</p><p>  signal gl:std_logic;</p>

47、<p>  signal egl:std_logic; </p><p><b>  begin</b></p><p>  u1:div port map(rst,clk,o1);-- 位置映射方法完成信號連接 下同</p><p>  u2:crosslight port map(o1,rst1,egl,eyl,erl);&

48、lt;/p><p>  u3:crosslight2 port map(o1,rst0,gl,yl,rl);</p><p>  u4:cnt02s port map(o1,yl,DOUT02M);</p><p>  u5:cnt22s port map(o1,rl,DOUT22M,DOUT22B);</p><p>  u6:CNT20s p

49、ort map(o1,gl,DOUT20M,DOUT20B);</p><p>  u7:cnte02s port map(o1,eyl,DOUTe02M);</p><p>  u8:CNTe20s port map(o1,egl,DOUTe20M,DOUTe20B);</p><p>  u9:cnte22s port map(o1,rl,DOUTe22M,DO

50、UTe22B);</p><p>  yellowlgt<=yl;-- 賦值輸出 下同</p><p>  yellowlgt0<=eyl;</p><p>  redlgt<=rl;</p><p>  greenlgt<=gl;</p><p>  greenlgt0<=egl;

51、</p><p>  redlgt0<=erl;</p><p>  end tong;-- 頂層模塊結(jié)束</p><p><b>  --分頻模塊</b></p><p>  library ieee;-- 庫說明</p><p>  use ieee.std_logic_1164.a

52、ll;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity div is-- 實(shí)體說明</p><p>  port( rst: in std_logic;</p><p>  clk: in std_logic;</p><p>  fpclk:

53、out std_logic);</p><p><b>  end div;</b></p><p>  architecture arc of div is-- 結(jié)構(gòu)體說明</p><p><b>  begin</b></p><p>  process(clk)-- 并行進(jìn)程語句 <

54、/p><p>  variable count: integer range 0 to 1000000000;-- 定義允許分頻為0到--1000000000</p><p>  variable clk0: std_logic;</p><p><b>  begin</b></p><p>  if rst='

55、0' then -- rst為低電平時(shí)復(fù)位</p><p>  clk0:='0' ;</p><p>  elsif clk'event and clk='1' then</p><p>  if count=1000 then</p><p>  clk0:=not clk0; </

56、p><p>  count:=0; --上升沿敏感,定義1000分頻</p><p><b>  else </b></p><p>  count:=count+1;</p><p><b>  end if;</b></p><p><b>  end if;&l

57、t;/b></p><p>  fpclk<=clk0;</p><p>  end process;</p><p><b>  end arc;</b></p><p>  --一方向紅綠燈顯示模塊</p><p>  library ieee;-- 庫說明</p>

58、<p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity crosslight is-- 實(shí)體說明</p><p><b>  generic(</b></p><p>  ye

59、llow:integer:=2;-- 定義黃燈顯示時(shí)間</p><p>  green:integer:=20;-- 定義綠燈顯示時(shí)間</p><p>  red:integer:=22-- 定義紅燈顯示時(shí)間</p><p><b>  );</b></p><p><b>  port(</b&

60、gt;</p><p>  clk: in std_logic;</p><p>  rst0: in std_logic;</p><p>  greenlgt0: out std_logic;</p><p>  yellowlgt0: out std_logic;</p><p>  redlgt0: out s

61、td_logic);</p><p>  end crosslight;</p><p>  architecture a of crosslight is-- 結(jié)構(gòu)體說明</p><p>  type states is (st0,st1,st2);</p><p>  signal state :states;</p>&

62、lt;p>  signal cnt : integer;</p><p>  signal cnt_end: std_logic;</p><p><b>  begin</b></p><p>  process(rst0,clk) -- 并行進(jìn)程語句 實(shí)現(xiàn)紅綠燈信號輸入</p><p><b> 

63、 begin</b></p><p>  if(rst0='1')then-- 定義高電平復(fù)位</p><p>  state<=st0; cnt<=0;</p><p>  elsif(rising_edge(clk))then</p><p>  if(cnt_end='1')t

64、hen</p><p>  cnt<=cnt+1;-- 計(jì)數(shù)加一</p><p>  else cnt<=0;</p><p><b>  end if;</b></p><p>  case state is</p><p>  when st0=></p>&

65、lt;p>  if(cnt=green)then</p><p>  state<=st1;</p><p>  else state<=st0;</p><p><b>  end if;</b></p><p>  when st1=></p><p>  if(cnt

66、=yellow)then</p><p>  state<=st2;</p><p>  else state<=st1;</p><p><b>  end if;</b></p><p>  when st2=></p><p>  if (cnt=red)then</

67、p><p>  state<=st0;</p><p>  else state<=st2;</p><p><b>  end if;</b></p><p><b>  end case;</b></p><p><b>  end if;</b&

68、gt;</p><p>  end process;</p><p>  process (state) -- 并行進(jìn)程語句 實(shí)現(xiàn)紅綠燈信號輸出</p><p><b>  begin</b></p><p>  case state is</p><p>  when st0=><

69、;/p><p>  yellowlgt0<='1';</p><p>  greenlgt0<='0';</p><p>  redlgt0<='0';</p><p>  cnt_end<='1';</p><p>  if(cnt=

70、green)then</p><p>  cnt_end<='0';</p><p><b>  end if;</b></p><p>  when st1=></p><p>  yellowlgt0<='0';</p><p>  green

71、lgt0<='1';</p><p>  redlgt0<='0';</p><p>  cnt_end<='1';</p><p>  if(cnt=yellow)then</p><p>  cnt_end<='0';</p><p

72、><b>  end if;</b></p><p>  when st2=></p><p>  yellowlgt0<='0';</p><p>  greenlgt0<='0';</p><p>  redlgt0<='1';</p

73、><p>  cnt_end<='1';</p><p>  if(cnt=red)then</p><p>  cnt_end<='0';</p><p><b>  end if;</b></p><p><b>  end case;<

74、/b></p><p>  end process;</p><p><b>  end a;</b></p><p>  --另一方向紅綠燈顯示模塊</p><p>  library ieee; -- 庫說明</p><p>  use ieee.std_logic_1164.all;

75、</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity crosslight2 is-- 實(shí)體說明</p><p><b>  generic(</b></p><p>  green:integer:=20; -- 定義綠燈顯示時(shí)間</p>

76、;<p>  yellow:integer:=2; -- 定義黃燈顯示時(shí)間</p><p>  red:integer:=22-- 定義紅燈顯示時(shí)間</p><p><b>  );</b></p><p><b>  port(</b></p><p>  clk: in std

77、_logic;</p><p>  rst1: in std_logic;</p><p>  greenlgt: out std_logic;</p><p>  yellowlgt: out std_logic;</p><p>  redlgt: out std_logic</p><p><b>  

78、);</b></p><p>  end crosslight2;</p><p>  architecture a of crosslight2 is-- 結(jié)構(gòu)體說明</p><p>  type states is (st0,st1,st2);</p><p>  signal state :states;</p>

79、;<p>  signal cnt : integer;</p><p>  signal cnt_end: std_logic;</p><p><b>  begin</b></p><p>  process(rst1,clk) -- 并行進(jìn)程語句 實(shí)現(xiàn)紅綠燈信號輸入</p><p><b&

80、gt;  begin</b></p><p>  if(rst1='1')then</p><p>  state<=st0; cnt<=0;-- 復(fù)位</p><p>  elsif(rising_edge(clk))then</p><p>  if(cnt_end='1')th

81、en</p><p>  cnt<=cnt+1;</p><p>  else cnt<=0;</p><p><b>  end if;</b></p><p>  case state is</p><p>  when st0=></p><p> 

82、 if(cnt=red)then</p><p>  state<=st1;</p><p>  else state<=st0;</p><p><b>  end if;</b></p><p>  when st1=></p><p>  if(cnt=yellow)the

83、n</p><p>  state<=st2;</p><p>  else state<=st1;</p><p><b>  end if;</b></p><p>  when st2=></p><p>  if (cnt= green)then</p>&

84、lt;p>  state<=st0;</p><p>  else state<=st2;</p><p><b>  end if;</b></p><p><b>  end case;</b></p><p><b>  end if;</b></

85、p><p>  end process;</p><p>  process (state) -- 并行進(jìn)程語句 實(shí)現(xiàn)紅綠燈信號輸出</p><p><b>  begin</b></p><p>  case state is</p><p>  when st0=></p>

86、<p>  redlgt<='1';</p><p>  yellowlgt<='0';</p><p>  greenlgt<='0';</p><p>  cnt_end<='1';</p><p>  if(cnt=red)then<

87、;/p><p>  cnt_end<='0';</p><p><b>  end if;</b></p><p>  when st1=></p><p>  redlgt<='0';</p><p>  yellowlgt<='1&#

88、39;;</p><p>  greenlgt<='0';</p><p>  cnt_end<='1';</p><p>  if(cnt=yellow)then</p><p>  cnt_end<='0';</p><p><b>  e

89、nd if;</b></p><p>  when st2=></p><p>  redlgt<='0';</p><p>  yellowlgt<='0';</p><p>  greenlgt<='1';</p><p>  cn

90、t_end<='1';</p><p>  if(cnt= green)then</p><p>  cnt_end<='0';</p><p><b>  end if;</b></p><p><b>  end case;</b></p>

91、<p>  end process;</p><p><b>  end a;</b></p><p>  --一方向兩秒計(jì)數(shù)及顯示</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  us

92、e ieee.std_logic_unsigned.all;</p><p>  entity CNT02s is-- 實(shí)體說明</p><p>  port(clk,EN02B:in std_logic;</p><p>  DOUT02M:out std_logic_vector(6 downto 0));--定義七位輸出</p><p&g

93、t;  end entity CNT02s;</p><p>  architecture art of CNT02s is</p><p>  signal CNT2B:std_logic_vector(1 downto 0);</p><p><b>  begin</b></p><p>  process(clk

94、,EN02B)is</p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then-- 上升沿計(jì)數(shù)</p><p>  if EN02B='1' then CNT2B<=CNT2B+1;-- 計(jì)數(shù)器加一</p><

95、;p><b>  ELSE</b></p><p>  CNT2B<="01"; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p&

96、gt;<p>  process(CNT2B) is</p><p>  begin </p><p>  CASE CNT2B is </p><p>  WHEN"00"=>DOUT02M<="0111110";--

97、字型碼輸出</p><p>  WHEN"01"=>DOUT02M<="1111110";-- 字型碼輸出</p><p>  WHEN OTHERS=>DOUT02M<="1111110";-- 字型碼輸出</p><p><b>  END CASE;</b>

98、;</p><p>  END PROCESS;</p><p>  END ARCHITECTURE ART;</p><p>  --二十二秒計(jì)數(shù)兼顯示模塊,正序計(jì)時(shí)倒序輸出</p><p>  use ieee.std_logic_1164.all;-- 庫說明</p><p>  use ieee.std_l

99、ogic_unsigned.all;</p><p>  entity CNT22s is-- 實(shí)體說明</p><p>  port(clk,EN22A:in std_logic;</p><p>  DOUT22M,DOUT22B:out std_logic_vector(6 downto 0));</p><p>  --定義高位和地

100、位字型碼的輸出</p><p>  end entity CNT22s;</p><p>  architecture art of CNT22s is-- 結(jié)構(gòu)體說明</p><p>  signal CNT6B:std_logic_vector(4 downto 0);-- 5位計(jì)數(shù)</p><p>  beginlibrary iee

101、e;</p><p>  process(clk,EN22A)is-- 正序計(jì)數(shù)并行進(jìn)程語句</p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then</p><p>  if EN22A='1' then C

102、NT6B<=CNT6B+1;-- 上升沿計(jì)數(shù) EN22A為低電平時(shí)復(fù)位</p><p><b>  ELSE</b></p><p>  CNT6B<="10110";</p><p><b>  end if;</b></p><p><b>  en

103、d if;</b></p><p>  End process;</p><p>  Process(CNT6B) is-- 倒序字型碼輸出</p><p>  begin </p><p>  CASE CNT6B is </p>&

104、lt;p>  WHEN"10110"=>DOUT22M<="1111110";DOUT22B<="1111110";</p><p>  --字型碼倒序輸出 下同</p><p>  WHEN"10101"=>DOUT22M<="1111110";DO

105、UT22B<="0110000"; </p><p>  WHEN"10100"=>DOUT22M<="1111110";DOUT22B<="1101101";</p><p>  WHEN"10011"=>DOUT22M<="1111110&

106、quot;;DOUT22B<="1111001";</p><p>  WHEN"10010"=>DOUT22M<="1111110";DOUT22B<="0110011";</p><p>  WHEN"10001"=>DOUT22M<="11

107、11110";DOUT22B<="1011011";</p><p>  WHEN"10000"=>DOUT22M<="1111110";DOUT22B<="1011111";</p><p>  WHEN"01111"=>DOUT22M<=&q

108、uot;1111110";DOUT22B<="1110010";</p><p>  WHEN"01110"=>DOUT22M<="1111110";DOUT22B<="1111111";</p><p>  WHEN"01101"=>DOUT22M&

109、lt;="1111110";DOUT22B<="1111011";</p><p>  WHEN"01100"=>DOUT22M<="0110000";DOUT22B<="1111110";</p><p>  WHEN"01011"=>DO

110、UT22M<="0110000";DOUT22B<="0110000";</p><p>  WHEN"01010"=>DOUT22M<="0110000";DOUT22B<="1101101";</p><p>  WHEN"01001"=

111、>DOUT22M<="0110000";DOUT22B<="1111001";</p><p>  WHEN"01000"=>DOUT22M<="0110000";DOUT22B<="0110011";</p><p>  WHEN"00111&

112、quot;=>DOUT22M<="0110000";DOUT22B<="1011011";</p><p>  WHEN"00110"=>DOUT22M<="0110000";DOUT22B<="1011111";</p><p>  WHEN"

113、00101"=>DOUT22M<="0110000";DOUT22B<="1110010";</p><p>  WHEN"00100"=>DOUT22M<="0110000";DOUT22B<="1111111";</p><p>  WHEN

114、"00011"=>DOUT22M<="0110000";DOUT22B<="1111011";</p><p>  WHEN"00010"=>DOUT22M<="1101101";DOUT22B<="1111110";</p><p>

115、  WHEN"00001"=>DOUT22M<="1101101";DOUT22B<="0110000";</p><p>  WHEN"00000"=>DOUT22M<="1101101";DOUT22B<="1101101";</p><

116、;p>  WHEN OTHERS=>DOUT22M<="1111110";DOUT22B<="1111110";</p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  END ARCHITECTURE ART;&l

117、t;/p><p>  --二十秒計(jì)數(shù)兼顯示模塊,其余注釋同上</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity CNT20s i

118、s</p><p>  port(clk,EN20A,EN20B:in std_logic;</p><p>  DOUT20M,DOUT20B:out std_logic_vector(6 downto 0));</p><p>  end entity CNT20s;</p><p>  architecture art of CNT20

119、s is</p><p>  signal CNT6B:std_logic_vector(4 downto 0);</p><p><b>  begin</b></p><p>  process(clk,EN20A,EN20B)is</p><p><b>  begin</b></p&g

120、t;<p>  if(clk'event and clk='1')then</p><p>  if EN20A='1' then CNT6B<=CNT6B+1;</p><p><b>  ELSE</b></p><p>  cNT6B<="10100";

121、</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(CNT6B) is</p><p>  begin

122、 </p><p>  cASE CNT6B is </p><p>  wHEN"10100"=>DOUT20M<="1111110";DOUT20B<="1111110";</p><p>  wHEN"10011"=>

123、;DOUT20M<="1111110";DOUT20B<="0110000"; </p><p>  wHEN"10010"=>DOUT20M<="1111110";DOUT20B<="1101101";</p><p>  wHEN"10001&q

124、uot;=>DOUT20M<="1111110";DOUT20B<="1111001";</p><p>  wHEN"10000"=>DOUT20M<="1111110";DOUT20B<="0110011";</p><p>  wHEN"0

125、1111"=>DOUT20M<="1111110";DOUT20B<="1011011";</p><p>  wHEN"01110"=>DOUT20M<="1111110";DOUT20B<="1011111";</p><p>  wHEN&

126、quot;01101"=>DOUT20M<="1111110";DOUT20B<="1110010";</p><p>  wHEN"01100"=>DOUT20M<="1111110";DOUT20B<="1111111";</p><p> 

127、 wHEN"01011"=>DOUT20M<="1111110";DOUT20B<="1111011";</p><p>  wHEN"01010"=>DOUT20M<="0110000";DOUT20B<="1111110";</p><

128、p>  wHEN"01001"=>DOUT20M<="0110000";DOUT20B<="0110000";</p><p>  wHEN"01000"=>DOUT20M<="0110000";DOUT20B<="1101101";</p>

129、<p>  wHEN"00111"=>DOUT20M<="0110000";DOUT20B<="1111001";</p><p>  wHEN"00110"=>DOUT20M<="0110000";DOUT20B<="0110011";<

130、/p><p>  wHEN"00101"=>DOUT20M<="0110000";DOUT20B<="1011011";</p><p>  wHEN"00100"=>DOUT20M<="0110000";DOUT20B<="1011111"

131、;;</p><p>  wHEN"00011"=>DOUT20M<="0110000";DOUT20B<="1110010";</p><p>  wHEN"00010"=>DOUT20M<="0110000";DOUT20B<="111111

132、1";</p><p>  wHEN"00001"=>DOUT20M<="0110000";DOUT20B<="1111011";</p><p>  wHEN"00000"=>DOUT20M<="1101101";DOUT20B<="

133、1111110";</p><p>  WHEN OTHERS=>DOUT20M<="1111110";DOUT20B<="1111110";</p><p><b>  END CASE;</b></p><p>  eND PROCESS;</p><p

134、>  eND ARCHITECTURE ART;</p><p>  --兩秒計(jì)數(shù)兼顯示,其余注釋同上</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p>

135、<p>  entity CNTe02s is</p><p>  port(clk,ENe02B:in std_logic;</p><p>  DOUTe02M:out std_logic_vector(6 downto 0));</p><p>  end entity CNTe02s;</p><p>  architect

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論