版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> EDA課程設(shè)計(jì)總結(jié)</b></p><p> 設(shè)計(jì)題目:基于Quartus II的交通燈設(shè)計(jì)</p><p> 學(xué) 院 名 稱: </p><p> 專 業(yè): </p><p> 班 級(jí):
2、 </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師姓名: </p><p> 2010 年 4 月</p><p><b> 目
3、 錄</b></p><p> 序言······························
4、83;·······················3</p><p> 第一章 設(shè)計(jì)任務(wù)和要求·······
5、··································4</p><
6、;p> 1.1 設(shè)計(jì)任務(wù)··································
7、······················4</p><p> 1. 2 設(shè)計(jì)要求·········&
8、#183;····································
9、;··········4</p><p> 第二章 電路工作原理及方案設(shè)計(jì)····················
10、·········4</p><p> 第三章 單元電路設(shè)計(jì)與仿真·····················
11、83;···········6</p><p> 3.1 軟件原理圖···················
12、3;··································6</p>&
13、lt;p> 3.2 各模塊的原理及其程序································
14、3;···········6</p><p> 3.2.1 分頻模塊的設(shè)計(jì)及仿真圖··················
15、83;·····················6</p><p> 3.2.2 計(jì)數(shù)模塊的設(shè)計(jì)及仿真圖········
16、183;·······························7</p><p> 3.2.3
17、控制模塊的設(shè)計(jì)及仿真圖···································
18、;·····9</p><p> 3.2.4 分位模塊的設(shè)計(jì)及仿真圖························
19、3;···············10</p><p> 3.2.5 譯碼模塊的設(shè)計(jì)及仿真圖··············
20、183;·························11</p><p> 第四章 系統(tǒng)設(shè)計(jì)·····
21、83;····································1
22、2</p><p> 4.1 頂層電路設(shè)計(jì)·······························
23、····················12</p><p> 4.2整體電路波形仿真圖··········
24、83;···································13</
25、p><p> 第五章 總結(jié)································
26、3;·············13</p><p> 參考文獻(xiàn)··················
27、83;······························14</p><p> 附錄·
28、3;····································
29、183;··············14</p><p><b> 序言</b></p><p> CPLD(Complex Programmable Logic Device)是Complex PLD的簡(jiǎn)稱,一種較PLD為復(fù)
30、雜的邏輯元件。CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺(tái),用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。 20世紀(jì)70年代,最早的可編程邏輯器件--PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因?yàn)樗挠布Y(jié)構(gòu)設(shè)計(jì)可由軟件完成,因而它的設(shè)計(jì)比純硬件的數(shù)字電路具有很強(qiáng)的靈活性,但其過于簡(jiǎn)單的結(jié)構(gòu)也
31、使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為彌補(bǔ)PLD只能設(shè)計(jì)小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件--CPLD。目前應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機(jī)床、航天測(cè)控設(shè)備等方面。 它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)<
32、;/p><p> 在一個(gè)交通繁忙的十字路口,沒有交通燈來控制來往車輛和行人的通行,假設(shè)也沒有交警,那會(huì)發(fā)生什么事情呢?后果是難以想象的,可能會(huì)陷入一片混亂,甚至癱瘓。當(dāng)然我們每個(gè)人都不希望這樣。我們作為社會(huì)的一員,每人都有責(zé)任為它的更加先進(jìn)和快捷做出力所能及的事情。我們?cè)O(shè)計(jì)的這個(gè)信號(hào)控制系統(tǒng)可以通過交通燈控制東西方向車道和南北方向車道兩條交叉道路上的車輛交替運(yùn)行,每次通行時(shí)間都可以根據(jù)實(shí)際情況預(yù)設(shè),用以減少交通事故
33、的發(fā)生概率。并且經(jīng)過些次實(shí)驗(yàn)使得我們對(duì)電子技術(shù)課程內(nèi)容的理解和掌握有了更深一層的認(rèn)識(shí),也學(xué)會(huì)使用半導(dǎo)體元件和集成電路,掌握電子電路的基本分析方法和設(shè)計(jì)方法,進(jìn)一步提高分析解決實(shí)際問題的綜合能力,也為將來的就業(yè)或繼續(xù)深造做好準(zhǔn)備。</p><p> 第一章 設(shè)計(jì)任務(wù)與要求</p><p><b> 1.1 設(shè)計(jì)任務(wù)</b></p><p>
34、 設(shè)計(jì)一個(gè)基于FPGA的十字路口交通控制器,分為手動(dòng)操作、自動(dòng)操作和復(fù)位系統(tǒng),假設(shè)南北方向和東西方向,兩個(gè)方向分別設(shè)置紅燈、綠燈、黃燈和左拐四盞燈,每個(gè)方向設(shè)置一組倒計(jì)時(shí)顯示器,用以指揮車輛和行人有序的通行。紅燈亮表示左轉(zhuǎn)和直行車輛禁行;綠燈亮表示直行車輛可以通行;黃燈亮表示左轉(zhuǎn)或直行車輛即將禁行;左拐燈亮表示左轉(zhuǎn)車輛可以通行;倒計(jì)時(shí)顯示器用來顯示允許通行或禁止通行的時(shí)間 。</p><p><b>
35、 1.2 設(shè)計(jì)要求</b></p><p> 在十字路口南北和東西兩個(gè)方向各設(shè)一組紅燈、綠燈、黃燈和左拐燈。顯示順序:綠燈→ 黃燈→ 紅燈→ 左拐→ 黃燈→ 紅燈。在南北和東西兩個(gè)方向各設(shè)一組倒計(jì)時(shí)顯示器。</p><p> 自動(dòng)控制:設(shè)置一組數(shù)碼管,以倒計(jì)時(shí)的方式顯示允許通行或禁止通行的時(shí)間,南北方向?yàn)橹鞲傻?,左拐、綠燈、黃燈和紅燈顯示時(shí)間分別是20s、20s、5s和20
36、s。東西方向?yàn)榇胃傻?,左拐、綠燈、黃燈和紅燈顯示時(shí)間分別為15s、15s、5s和25s。</p><p> 手動(dòng)控制:按按鈕依次執(zhí)行以上顯示狀態(tài),綠燈→ 黃燈→ 紅燈→ 左拐→ 黃燈→ 紅燈,倒計(jì)時(shí)顯示為“0”。</p><p> 系統(tǒng)設(shè)有總復(fù)位開關(guān),可在任意時(shí)間內(nèi)對(duì)系統(tǒng)進(jìn)行復(fù)位。</p><p> 通過開關(guān)按鈕切換交通燈的工作狀態(tài)。</p>&
37、lt;p> 第二章 電路工作原理及方案設(shè)計(jì)</p><p><b> 交通燈的顯示狀態(tài):</b></p><p><b> 總體框圖:</b></p><p> 在VHDL設(shè)計(jì)描述中,采用自頂向下的設(shè)計(jì)思路,該思路,首先要描述頂層的接口,上面的描述已經(jīng)規(guī)定了交通燈控制的輸入輸出信號(hào):輸入信號(hào):復(fù)位開關(guān)信號(hào)re
38、set;外部時(shí)鐘信號(hào)clk。LED七段顯示數(shù)碼管的輸出信號(hào)count1(6 downto 0),count2(6 downto 0),count3(6 downto 0),count4(6 downto 0);在自頂向下的VHDL設(shè)計(jì)描述中,通常把整個(gè)設(shè)計(jì)的系統(tǒng)劃分為幾個(gè)模塊,然后采用結(jié)構(gòu)描述方式對(duì)整個(gè)系統(tǒng)進(jìn)行描述。根據(jù)實(shí)驗(yàn)設(shè)計(jì)的結(jié)構(gòu)功能,來確定使用哪些模塊以及這些模塊之間的關(guān)系。通過上面的分析,不難得知可以把交通燈控制系統(tǒng)劃分為4個(gè)模
39、塊:時(shí)鐘分頻模塊,計(jì)數(shù)模塊,控制模塊,分位譯碼模塊。</p><p> 分頻電路:把555多諧振蕩器發(fā)出的較高頻率脈沖用分頻電路的到較第頻率的時(shí)鐘信號(hào),本電路通過三次10分平分別得到10Hz、1Hz的時(shí)鐘信號(hào)。</p><p> 控制器電路:根據(jù)計(jì)數(shù)器的計(jì)數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段譯碼管的分位譯碼電路。當(dāng)檢測(cè)到手動(dòng)控制信號(hào)(Con=’1’)時(shí),執(zhí)行手動(dòng)控制;
40、</p><p> 計(jì)數(shù)器電路:這里需要的計(jì)數(shù)器的計(jì)數(shù)范圍為0~89。計(jì)到89后,下一個(gè)時(shí)鐘沿升為1時(shí),開始下一輪計(jì)數(shù),此外當(dāng)系統(tǒng)復(fù)位信號(hào)(Reset=’1’)使計(jì)數(shù)器異步清‘0’。手動(dòng)信號(hào)(Con=’1’)使系統(tǒng)清‘0’。</p><p> 分位譯碼電路:因?yàn)榭刂破鬏敵龅牡褂?jì)時(shí)數(shù)值可能是1位或者2位十進(jìn)制數(shù),所以在七段數(shù)碼管的譯碼電路前要加上分位電路(即將其分為2個(gè)1位的十進(jìn)制數(shù),如
41、20分為2和0,7分為0和7)。七段數(shù)碼管的譯碼電路根據(jù)控制電路的控制信號(hào),驅(qū)動(dòng)交通燈的顯示,通過輸入二進(jìn)制數(shù)值,輸出信號(hào)點(diǎn)亮二極管,我們用的是共陽極數(shù)碼管,因此譯碼電路輸出邏輯數(shù)值‘0’點(diǎn)亮二極管,譯碼電路輸出邏輯數(shù)值‘1’熄滅二極管。</p><p> 第三章 單元電路設(shè)計(jì)與仿真</p><p><b> 3.1 軟件原理圖</b></p>&l
42、t;p> 3.2 各模塊的原理及其程序</p><p> 3.2.1 分頻模塊的設(shè)計(jì)及仿真圖</p><p> 實(shí)體:entity clk_10 is</p><p> port( clk : in std_logic;</p><p> clk_div10 : out std_logic);</p>
43、<p> end clk_10;</p><p><b> 功能:實(shí)現(xiàn)十分頻</b></p><p> 接口:clk—脈沖輸入</p><p> Clk-div10—十分頻后脈沖輸出</p><p><b> 仿真結(jié)果如下:</b></p><p> 3
44、.2.2 計(jì)數(shù)模塊的設(shè)計(jì)及仿真圖</p><p> 實(shí)體:entity counter is</p><p> port( clk0:in std_logic;</p><p> con:in std_logic;</p><p> reset:in std_logic;</p><p> countnum
45、:buffer integer range 0 to 89);</p><p> end counter;</p><p> 功能:實(shí)現(xiàn)0到89的計(jì)數(shù)</p><p> clk0—脈沖輸入 </p><p> con—手動(dòng)控制信號(hào) </p><p> reset—復(fù)位信號(hào) </p>
46、<p> countnum—計(jì)數(shù)輸出</p><p><b> 仿真波形如下:</b></p><p> 3.2.3 控制模塊的設(shè)計(jì)及仿真圖</p><p> 實(shí)體:entity controller is</p><p> Port ( clk1 : in std_logic;</p>
47、<p> con1 : in std_logic;</p><p> con2 : in std_logic;</p><p> countnum : in integer range 0 to 89;</p><p> numa,numb : out integer range 0 to 25;</p><p> r
48、a,ga,ya,ga1 : out std_logic;</p><p> rb,gb,yb,gb1: out std_logic);</p><p> end controller;</p><p> 功能:控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段譯碼管的分位譯碼電路。</p><p> clk1—脈沖信號(hào)輸入 </
49、p><p> con1—手動(dòng)控制信號(hào) </p><p> con2—狀態(tài)控制信號(hào) </p><p> countnum—計(jì)數(shù)輸入</p><p> numa,numb—兩個(gè)方向的倒計(jì)時(shí)數(shù)值輸出 </p><p> ra,ga,ya,ga1,rb,gb,yb,gb1—發(fā)光二極管輸出</p>&l
50、t;p><b> 仿真波形如下:</b></p><p> 3.2.4 分位模塊的設(shè)計(jì)與仿真圖</p><p> 實(shí)體:entity fenwei is</p><p> port ( numin:in integer range 0 to 25;</p><p> numa,numb:out inte
51、ger range 0 to 9 );</p><p> end fenwei;</p><p> 功能:把倒計(jì)時(shí)的數(shù)值分成2個(gè)1位的十進(jìn)制數(shù)。</p><p> numin:倒計(jì)時(shí)數(shù)值輸入 </p><p> numa,numb—將數(shù)值分為2個(gè)1位的十進(jìn)制輸出</p><p><b> 仿真波形
52、如下:</b></p><p> 3.2.5 譯碼模塊的設(shè)計(jì)及仿真圖</p><p> 實(shí)體:entity display is</p><p><b> port(</b></p><p> clk2:in std_logic;</p><p> bb: in std_lo
53、gic_vector(3 downto 0);</p><p> ya:out std_logic;</p><p> yb:out std_logic;</p><p> yc:out std_logic;</p><p> yd:out std_logic;</p><p> ye:out std_log
54、ic;</p><p> yf:out std_logic;</p><p> yg:out std_logic);</p><p> end display;</p><p> 功能:根據(jù)控制電路的控制信號(hào),驅(qū)動(dòng)交通燈的顯示, 通過輸入二進(jìn)制數(shù)值,輸出信號(hào)點(diǎn)亮二極管。</p><p> b
55、b[3..0]--BCD碼輸入</p><p> clk2—脈沖輸入 </p><p> ya,yb,yc,yd,ye,yf,yg—七段數(shù)碼管顯示輸出</p><p><b> 仿真波形如下:</b></p><p><b> 第四章 系統(tǒng)設(shè)計(jì)</b></p><p>
56、; 4.1 頂層文件的設(shè)計(jì)</p><p> entity dingceng is</p><p> port(clkd,resetd,cond,con1d:in std_logic;</p><p> count1:out std_logic_vector(6 downto 0);</p><p> count2:out st
57、d_logic_vector(6 downto 0);</p><p> count3:out std_logic_vector(6 downto 0);</p><p> count4:out std_logic_vector(6 downto 0);</p><p> reda,greena,yellowa,greena1: out std_logic;&
58、lt;/p><p> redb,greenb,yellowb,greenb1: out std_logic);</p><p> end entity dingceng;</p><p><b> clkd—脈沖輸入</b></p><p> resetd—復(fù)位信號(hào)</p><p> con
59、—手動(dòng)控制信號(hào)</p><p> con1d—狀態(tài)控制信號(hào)</p><p> count1,count2,count3,count4—七段數(shù)碼管顯示</p><p> reda,greena,yellowa,greena1,redb,greenb,yellowb,greenb1—發(fā)光二極管輸出</p><p> 4.2 整體電路波形圖
60、</p><p><b> 第五章 總結(jié)</b></p><p> 課程設(shè)計(jì)對(duì)學(xué)生而言是其對(duì)所學(xué)課程內(nèi)容掌握情況的一次自我驗(yàn)證,從而有著極其重要的意義。通過課程設(shè)計(jì)能提高學(xué)生對(duì)所學(xué)知識(shí)的綜合應(yīng)用能力,能全面檢查并掌握所學(xué)內(nèi)容,本學(xué)期我們進(jìn)行了數(shù)字電路課程設(shè)計(jì),老師命題,六人一大組,兩人一小組進(jìn)行設(shè)計(jì)(包括設(shè)計(jì)總體方案、硬件電路、軟件設(shè)計(jì)、焊接、調(diào)試等工作)。趣味性
61、強(qiáng),同時(shí)也可以學(xué)到很多東西。我們做的是交通燈控制器的設(shè)計(jì)。</p><p> 在這學(xué)期的課程設(shè)計(jì)中,在收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟,在此過程中,我們通過查找大量資料,請(qǐng)教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。</p&
62、gt;<p> 通過這個(gè)程序設(shè)計(jì)讓我學(xué)會(huì)一種新的語言,對(duì)數(shù)字系統(tǒng)結(jié)構(gòu)也有了更進(jìn)一步的了解和認(rèn)識(shí),對(duì)我以后的學(xué)習(xí)有很大的幫助。希望其他人在看再做類似設(shè)計(jì)時(shí)有所借鑒。</p><p> 通過幾天的課程設(shè)計(jì),我對(duì)數(shù)據(jù)庫(kù)軟件EDA技術(shù)、VHDL、等系列知識(shí)都有了一定的了解。使用EDA技術(shù)開發(fā)頁(yè)面的能力也有了很大提高。</p><p> 另外,我還學(xué)到了一個(gè)人的力量畢竟有限,但是
63、團(tuán)隊(duì)的力量勢(shì)不可擋,我們不能只靠自己,遇到不會(huì)的要多多求助同學(xué),</p><p> 這次課程設(shè)計(jì)雖然結(jié)束了,也留下了很多遺憾,因?yàn)橛捎跁r(shí)間的緊缺和許多課業(yè)的繁忙,并沒有做到最好,但是,最起碼我們沒有放棄,它是我們的驕傲!相信以后我們會(huì)以更加積極地態(tài)度對(duì)待我們的學(xué)習(xí)、對(duì)待我們的生活。我們的激情永遠(yuǎn)不會(huì)結(jié)束,相反,我們會(huì)更加努力,努力的去彌補(bǔ)自己的缺點(diǎn),發(fā)展自己的優(yōu)點(diǎn),去充實(shí)自己,只有在了解了自己的長(zhǎng)短之后,我們會(huì)
64、更加珍惜擁有的,更加努力的去完善它,增進(jìn)它。只有不斷的測(cè)試自己,挑戰(zhàn)自己,才能擁有更多的成功和快樂!快樂至上,享受過程,而不是結(jié)果!認(rèn)真對(duì)待每一個(gè)實(shí)驗(yàn),珍惜每一分一秒,學(xué)到最多的知識(shí)和方法,鍛煉自己的能力,這個(gè)是我們?cè)趯?shí)時(shí)測(cè)量技術(shù)試驗(yàn)上學(xué)到的最重要的東西,也是以后都將受益匪淺的! </p><p><b> 參考文獻(xiàn)</b></p><p> 1、《VHDL與數(shù)字
65、電路設(shè)計(jì)》.盧毅, 賴杰. 科學(xué)出版社</p><p> 2、《VHDL 程序設(shè)計(jì)》(第二版). 曾繁泰等. 清華大學(xué)出版社</p><p> 3、《VHDL入門與應(yīng)用》陳雪松, 滕立中 .人民郵電出版社 </p><p> 4、《EDA技術(shù)與VHDL》(第二版).潘松,黃繼業(yè). 清華大學(xué)出
66、版社</p><p> 5、《數(shù)字電路技術(shù)基礎(chǔ)》(第二版). 閻石 .高等教育出版社</p><p><b> 附錄 總程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ie
67、ee.std_logic_unsigned.all;</p><p> entity dingceng is</p><p> port(clkd,resetd,cond,con1d:in std_logic;</p><p> count1:out std_logic_vector(6 downto 0);</p><p> c
68、ount2:out std_logic_vector(6 downto 0);</p><p> count3:out std_logic_vector(6 downto 0);</p><p> count4:out std_logic_vector(6 downto 0);</p><p> reda,greena,yellowa,greena1: out
69、 std_logic;</p><p> redb,greenb,yellowb,greenb1: out std_logic);</p><p> end entity dingceng;</p><p> architecture one of dingceng is</p><p> component clk_10</
70、p><p> port(clk:in std_logic;</p><p> clk_div10 : out std_logic);</p><p> end component;</p><p> component counter</p><p><b> port</b></p&
71、gt;<p> (clk0:in std_logic;</p><p> con:in std_logic;</p><p> reset:in std_logic;</p><p> countnum:buffer integer range 0 to 89);</p><p> end component;<
72、/p><p> component controller</p><p><b> port</b></p><p> ( clk1 : in std_logic;</p><p> con1 : in std_logic;</p><p> con2: in std_logic;</
73、p><p> countnum : in integer range 0 to 89;</p><p> numa,numb : out integer range 0 to 25;</p><p> ra,ga,ya,ga1: out std_logic;</p><p> rb,gb,yb,gb1 : out std_logic);&
74、lt;/p><p> end component;</p><p> component fenwei </p><p> port ( numin:in integer range 0 to 25;</p><p> numa,numb:out integer range 0 to 9 );</p><p>
75、end component;</p><p> component yima</p><p> port(clk2:in std_logic;</p><p> bb: in integer range 0 to 9;</p><p> ya:out std_logic;</p><p> yb:out st
76、d_logic;</p><p> yc:out std_logic;</p><p> yd:out std_logic;</p><p> ye:out std_logic;</p><p> yf:out std_logic;</p><p> yg:out std_logic);</p>
77、<p> end component;</p><p> signal a,b,c:std_logic;</p><p> signal ww:integer range 0 to 89;</p><p> signal yy1,yy2:integer range 0 to 25;</p><p> signal tt1
78、,tt2,tt3,tt4:integer range 0 to 9;</p><p><b> begin</b></p><p> u0: clk_10 port map(clk=>clkd,clk_div10=>a);</p><p> u1: clk_10 port map(clk=>clkd,clk_div10=
79、>b);</p><p> u2: clk_10 port map(clk=>b,clk_div10=>c);</p><p> u3:counter port </p><p> map(clk0=>c,con=>cond,reset=>resetd,countnum=>ww);</p><p&g
80、t; u4:controller port map </p><p> (clk1=>c,con1=>cond,con2=>con1d,countnum=>ww,numa=>yy1,numb=>yy2,ra=>reda,ga=>greena,ya=>yellowa,ga1=>greena1,rb=>redb,gb=>greenb,yb=&
81、gt;yellowb,gb1=>greenb1);</p><p> u5:fenwei port map(numin=>yy1,numa=>tt1,numb=>tt2);</p><p> u6:fenwei port map (numin=>yy2,numa=>tt3,numb=>tt4);</p><p><
82、b> u7:yima</b></p><p> port map(clk2=>b,bb=>tt1,ya=>count1(0),yb=>count1(1),yc=>count1(2),yd=>count1(3),ye=>count1(4),yf=>count1(5),yg=>count1(6));</p><p>
83、 u8:yima port map (clk2=>b,bb=>tt2,ya=>count2(0),yb=>count2(1),yc=>count2(2),yd=>count2(3),ye=>count2(4),yf=>count2(5),yg=>count2(6));</p><p> u9:yima port map(clk2=>b,bb=>t
84、t3,ya=>count3(0),yb=>count3(1),yc=>count3(2),yd=>count3(3),ye=>count3(4),yf=>count3(5),yg=>count3(6));</p><p> u10:yima port map(clk2=>b,bb=>tt4,ya=>count4(0),yb=>count4(1),
85、yc=>count4(2),yd=>count4(3),ye=>count4(4),yf=>count4(5),yg=>count4(6));</p><p> end architecture one;</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;<
86、;/p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity clk_10 is</p><p> port( clk : in std_logic;</p><p> c
87、lk_div10 : out std_logic);</p><p> end clk_10;</p><p> architecture one of clk_10 is</p><p> signal clk_temp : std_logic;</p><p><b> begin</b></p>
88、<p> process(clk)</p><p> variable counter : std_logic_vector(2 downto 0);</p><p> constant md : std_logic_vector(2 downto 0) := "101";</p><p><b> begin&l
89、t;/b></p><p> if(clk'event and clk='1') then</p><p> if(counter = md)then</p><p> counter := (others =>'0');</p><p> clk_temp <= not cl
90、k_temp;</p><p><b> end if;</b></p><p> counter := counter + 1 ;</p><p><b> end if; </b></p><p> end process;</p><p> clk_div10
91、 <= clk_temp;</p><p><b> end one;</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity counter is</p><p><b&
92、gt; port</b></p><p> ( clk0:in std_logic;</p><p> con:in std_logic;</p><p> reset:in std_logic;</p><p> countnum:buffer integer range 0 to 89);</p>&
93、lt;p> end counter;</p><p> architecture one of counter is</p><p><b> begin </b></p><p> process (reset,clk0)</p><p><b> begin</b></p&
94、gt;<p> if reset='1' then</p><p> countnum <= 0;</p><p> elsif rising_edge( clk0 ) then </p><p> if con='1' then</p><p> countnum <=
95、0;</p><p><b> else</b></p><p> if countnum=89 then</p><p> countnum <= 0;</p><p><b> else</b></p><p> countnum <= countn
96、um + 1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b>
97、 end one;</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity controller is</p><
98、p><b> port</b></p><p> ( clk1 : in std_logic;</p><p> con1 : in std_logic;</p><p> con2 : in std_logic;</p><p> countnum : in integer range 0 t
99、o 89;</p><p> numa,numb : out integer range 0 to 25;</p><p> ra,ga,ya,ga1 : out std_logic;</p><p> rb,gb,yb,gb1: out std_logic);</p><p> end controller;</p>
100、<p> architecture one of controller is</p><p> signal m : integer range 0 to 7;</p><p><b> begin</b></p><p> process ( clk1,con1,con2,countnum )</p><
101、p> variable aa:std_logic_vector(7 downto 0);</p><p><b> begin</b></p><p> if (clk1'event and clk1 = '1' )then</p><p> if con1 ='0' then</p&
102、gt;<p> if countnum >= 65then</p><p> numb<=90-countnum;</p><p> numa <=90-countnum;</p><p> if countnum >= 70 then </p><p> aa := "0001100
103、0"; </p><p> else aa := "00101000";</p><p> numa<= 70-countnum;</p><p><b> end if;</b></p><p> elsif countnum >= 45 then </
104、p><p> numb <= 65-countnum;</p><p> numa <=65-countnum;</p><p> if countnum >= 50 then</p><p> aa := "10000100";</p><p> else aa :=
105、"10000010";</p><p> numb<= 50-countnum; </p><p><b> end if;</b></p><p> elsif countnum >= 20 then </p><p> numa <= 45-countnum;<
106、/p><p> numb <=45-countnum;</p><p> if countnum >= 25 then</p><p> aa := "01001000"; </p><p> else aa := "00101000";</p><p>
107、; numa <= 25-countnum;</p><p><b> end if;</b></p><p> elsif countnum >= 0 then</p><p> numa <= 20-countnum;</p><p> numb <= 20-countnum;&l
108、t;/p><p> if countnum >= 5 then</p><p> aa := "10000100"; </p><p> else aa := "10000010";</p><p> numb <= 5-countnum; </p><p>&
109、lt;b> end if;</b></p><p><b> end if;</b></p><p><b> else</b></p><p> if con1= '1' then </p><p> numa <= 0;</p>
110、<p> numb <= 0; </p><p> if con2 = '1' then</p><p> if m = 7 then </p><p><b> m <= 0;</b></p><p><b> else</b></p>
111、<p> m <= m + 1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if m = 0 then</p><p> aa := "01001000";</p>
112、;<p> elsif m= 1 then</p><p> aa := "00101000"; </p><p> elsif m=2 then</p><p> aa :="10000100"; </p><p> elsif m=3 then</p><
113、p> aa := "10000010"; </p><p> elsif m=4 then</p><p> aa := "00011000"; </p><p> elsif m=5 then</p><p> aa := "00101000"; </p&g
114、t;<p> elsif m=6 then</p><p> aa := "10000001"; </p><p> elsif m=7 then</p><p> aa := "10000010";</p><p><b> end if;</b><
115、/p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> ra <= aa(7);</p><p> ga <= aa(6);&
116、lt;/p><p> ya <= aa(5); </p><p> ga1 <= aa(4);</p><p> rb <= aa(3);</p><p> gb <= aa(2);</p><p> yb <= aa(1);</p><p> gb1 &l
117、t;= aa(0); </p><p> end process;</p><p><b> end one;</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity fenwei
118、is</p><p> port ( numin:in integer range 0 to 25;</p><p> numa,numb:out integer range 0 to 9 );</p><p> end fenwei;</p><p> architecture one of fenwei is</p&
119、gt;<p><b> begin </b></p><p> process( numin )</p><p> variable numa1,numb1: integer range 0 to 9; </p><p><b> begin</b></p><p> if
120、numin >= 20 then</p><p> numa1 :=2;</p><p> numb1 := numin - 20;</p><p> elsif numin >= 10 then</p><p> numa1 := 1;</p><p> numb1 := numin - 10;
121、</p><p><b> else </b></p><p> numa1 := 0 ;</p><p> numb1 := numin ;</p><p><b> end if ;</b></p><p> numa <= numa1; </p&g
122、t;<p> numb <= numb1;</p><p> end process ;</p><p><b> end one ;</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p>&l
123、t;p> entity display is</p><p><b> port(</b></p><p> clk2:in std_logic;</p><p> bb: in std_logic_vector(3 downto 0);</p><p> ya:out std_logic;</p&
124、gt;<p> yb:out std_logic;</p><p> yc:out std_logic;</p><p> yd:out std_logic;</p><p> ye:out std_logic;</p><p> yf:out std_logic;</p><p> yg:o
125、ut std_logic);</p><p> end display;</p><p> architecture one of display is</p><p> signal temp: std_logic_vector(6 downto 0);</p><p><b> begin</b></p
126、><p> process(bb)</p><p><b> begin</b></p><p> case bb is</p><p> when "0000" => temp <= "1000000";</p><p> when &q
127、uot;0001" => temp <= "1111001";</p><p> when "0010" => temp <= "0100100";</p><p> when "0011" => temp <= "0110000";<
128、/p><p> when "0100" => temp <= "0011001";</p><p> when "0101" => temp <= "0010010";</p><p> when "0110" => temp <
129、= "0000010";</p><p> when "0111" => temp <= "1011000";</p><p> when "1000" => temp <= "0000000";</p><p> when "
130、1001" => temp <= "0010000";</p><p> when others => temp <= "1111111";</p><p><b> end case;</b></p><p> end process;</p>&l
131、t;p> ya<=temp(0);</p><p> yb<=temp(1); </p><p> yc<=temp(2);</p><p> yd<=temp(3);</p><p> ye<=temp(4);</p><p> yf<=temp(5);</
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda交通燈課程設(shè)計(jì)報(bào)告(eda)
- eda交通燈課程設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)
- 基于sopc交通燈的eda課程設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)論文
- eda交通燈課程設(shè)計(jì)論文
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)的設(shè)計(jì)
- eda課程設(shè)計(jì)--交通燈控制
- eda課程設(shè)計(jì)報(bào)告-- 交通燈的設(shè)計(jì)與實(shí)現(xiàn)
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)
- eda課程設(shè)計(jì)報(bào)告-- 交通燈控制器
- eda課程設(shè)計(jì)報(bào)告--交通燈控制系統(tǒng)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--基于fpga的交通燈設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)--cpld實(shí)現(xiàn)交通燈控制系統(tǒng)
- eda課程設(shè)計(jì)報(bào)告-交通燈控制器1
- eda課程設(shè)計(jì)--交通燈控制器設(shè)計(jì)
- eda課程設(shè)計(jì)--交通燈控制系統(tǒng)設(shè)計(jì)
- eda課程設(shè)計(jì)--交通燈控制器
- eda課程設(shè)計(jì)(交通燈控制器)
- eda課程設(shè)計(jì)---交通燈控制器
評(píng)論
0/150
提交評(píng)論