EDA交通信號(hào)控制器的VHDL設(shè)計(jì)21_第1頁(yè)
EDA交通信號(hào)控制器的VHDL設(shè)計(jì)21_第2頁(yè)
EDA交通信號(hào)控制器的VHDL設(shè)計(jì)21_第3頁(yè)
EDA交通信號(hào)控制器的VHDL設(shè)計(jì)21_第4頁(yè)
EDA交通信號(hào)控制器的VHDL設(shè)計(jì)21_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

II的使用方法,熟悉可編程邏輯器件的使用。通過(guò)制作來(lái)了解交通燈控制系統(tǒng),交通燈控制系統(tǒng)主要是實(shí)現(xiàn)城市十字交叉路口紅綠燈的控制。設(shè)計(jì)說(shuō)明:在事先準(zhǔn)備及老師指導(dǎo)后,將此次設(shè)計(jì)分4個(gè)模塊,來(lái)解決交通燈的各項(xiàng)特性。(1)第一模塊:clk時(shí)鐘秒脈沖發(fā)生電路在紅綠燈交通信號(hào)系統(tǒng)中,大多數(shù)情況是通過(guò)自動(dòng)控制的方式指揮交通的。因此為了避免意外事件的發(fā)生,電路必須給一個(gè)穩(wěn)定的時(shí)鐘(clock)才能讓系統(tǒng)正常運(yùn)作。模塊說(shuō)明:系統(tǒng)輸入信號(hào):Clk:由外接信號(hào)發(fā)生器提供256的時(shí)鐘信號(hào)系統(tǒng)輸出信號(hào):full:產(chǎn)生每秒一個(gè)脈沖的信號(hào)(2)第二模塊:計(jì)數(shù)秒數(shù)選擇電路計(jì)數(shù)電路最主要的功能就是記數(shù)負(fù)責(zé)顯示倒數(shù)的計(jì)數(shù)值,對(duì)下一個(gè)模塊提供狀態(tài)轉(zhuǎn)換信號(hào)。模塊說(shuō)明:系統(tǒng)輸入:full:接收由clk電路的提供的1hz的時(shí)鐘脈沖信號(hào)系統(tǒng)輸出信號(hào):tm:產(chǎn)生顯示電路狀態(tài)轉(zhuǎn)換信號(hào)tl:倒計(jì)數(shù)值秒數(shù)個(gè)位變化控制信號(hào)th:倒計(jì)數(shù)值秒數(shù)十位變化控制信號(hào)(3)第三模塊:紅綠燈狀態(tài)轉(zhuǎn)換電路本電路負(fù)責(zé)紅綠燈的轉(zhuǎn)換。模塊說(shuō)明:系統(tǒng)輸入信號(hào):full:接收由clk電路的提供的1hz的時(shí)鐘脈沖信號(hào)tm:接收計(jì)數(shù)秒數(shù)選擇電路狀態(tài)轉(zhuǎn)換信號(hào)系統(tǒng)輸出信號(hào):comb_out:負(fù)責(zé)紅綠燈的狀態(tài)顯示(4)第四模塊:時(shí)間顯示電路本電路負(fù)責(zé)紅綠燈的計(jì)數(shù)時(shí)間的顯示。模塊說(shuō)明:系統(tǒng)輸入信號(hào):tl:倒計(jì)數(shù)值秒數(shù)個(gè)位變化控制信號(hào)th:倒計(jì)數(shù)值秒數(shù)十位變化控制信號(hào)系統(tǒng)輸出信號(hào):led7s1:負(fù)責(zé)紅綠燈的顯示秒數(shù)個(gè)位led7s2:負(fù)責(zé)紅綠燈的顯示秒數(shù)十位三、設(shè)計(jì)方案狀態(tài)寄存器秒脈沖信號(hào)發(fā)生器計(jì)數(shù)器CLK狀態(tài)寄存器秒脈沖信號(hào)發(fā)生器計(jì)數(shù)器時(shí)間顯示數(shù)據(jù)輸出次態(tài)發(fā)生器次態(tài)發(fā)生器信號(hào)燈輸出信號(hào)信號(hào)燈輸出圖2交通信號(hào)燈控制器程序原理框圖進(jìn)程將CLK信號(hào)分頻后產(chǎn)生1秒信號(hào),然后構(gòu)成兩個(gè)帶有預(yù)置數(shù)功能的十進(jìn)制計(jì)數(shù)器,并產(chǎn)生允許十位計(jì)數(shù)器計(jì)數(shù)的控制信號(hào)。狀態(tài)寄存器實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換和產(chǎn)生狀態(tài)轉(zhuǎn)換的控制信號(hào),下個(gè)模塊產(chǎn)生次態(tài)信號(hào)和信號(hào)燈輸出信號(hào),以及每一個(gè)狀態(tài)的時(shí)間值。經(jīng)過(guò)四個(gè)模塊的處理,使時(shí)間計(jì)數(shù)、紅綠燈顯示能夠正常運(yùn)行。四、程序清單:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYtrafficIS PORT(clk:instd_logic;led7s1:outstd_logic_vector(6downto0);led7s2:outstd_logic_vector(6downto0);comb_out:outstd_logic_vector(5downto0));END;ARCHITECTUREoneOFtrafficISTYPEdmIS(s0,s1,s2,s3);SIgnalcurrent_state,next_state:dm;SIGNALFULL:STD_LOGIC;SIGNALtl:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALth:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALtm:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALTIME:STD_LOGIC_VECTOR(6DOWNTO0);BEGINP_REG:PROCESS(CLK)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8="11111111"THENCNT8:="00000000";FULL<='1';ELSECNT8:=CNT8+1;FULL<='0';ENDIF;ENDIF;ENDPROCESSP_REG;PROCESS(full)BEGINIFfull'EVENTANDfull='1'THENIFTIME<"1000011"THENTIME<=TIME+1;ELSeTIME<="0000000";ENDIF;ENDIF;ENDPROCESS;REG:process(full,current_state)BEGINIFfull='1'ANDfull'EVENTTHENcurrent_state<=next_state;ENDIF;ENDprocess;COM:process(current_state,time)begincasecurrent_stateiswhens0=>comb_out<="001100";tm<=39-time;iftime=39thennext_state<=s1;elsenext_state<=s0;endif;whens1=>comb_out<="010100";tm<=43-time;iftime=40thencomb_out<="010100";elsiftime=41thencomb_out<="000100";elsiftime=42thencomb_out<="010100";elsiftime=43thennext_state<=s2;elsenext_state<=s1;endif;whens2=>comb_out<="100001";tm<=63-time;iftime=63thennext_state<=s3;elsenext_state<=s2;endif;whens3=>comb_out<="100010";tm<=67-time;iftime=64thencomb_out<="100010";elsiftime=65thencomb_out<="100000";elsiftime=66thencomb_out<="100010";elsiftime=67thennext_state<=s0;elsenext_state<=s3;endif;endcase;endprocess;PROCESS(tm)BEGINIFtm>=30THENth<="11";tl<=tm-30;ELSIFtm>=20THENth<="10";tl<=tm-20;ELSIFtm>=10THENth<="01";tl<=tm-10;ELSEth<="00";tl<=tm;ENDIF;ENDPROCESS;process(th,tl)begincasethiswhen"00"=>led7s1<="0111111";when"01"=>led7s1<="0000110";when"10"=>led7s1<="1011011";when"11"=>led7s1<="1001111";whenothers=>null;endcase;casetliswhen"0000000"=>led7s2<="0111111";when"0000001"=>led7s2<="0000110";when"0000010"=>led7s2<="1011011";when"0000011"=>led7s2<="1001111";when"0000100"=>led7s2<="1100110";when"0000101"=>led7s2<="1101101";when"0000110"=>led7s2<="1111101";when"0000111"=>led7s2<="0000111";when"0001000"=>led7s2<="1111111";when"0001001"=>led7s2<="1101111";whenothers=>null;endcase;endprocess;end;五、用QuartusII軟件的設(shè)計(jì)過(guò)程主要包括建立項(xiàng)目輸入設(shè)計(jì)電路(可采用不同方式)設(shè)計(jì)編譯設(shè)計(jì)仿真設(shè)計(jì)下載六、仿真結(jié)果(如下圖) 七、引腳設(shè)置接下來(lái)就要選擇目標(biāo)器件并對(duì)相應(yīng)的引腳進(jìn)行鎖定了,我們選擇的器件為cyclone系列的EP1C3T144芯片,引腳鎖定方法如下圖所示。將未使用的管腳設(shè)置為三態(tài)輸入(一定要設(shè)置,否則可能會(huì)損壞芯片)。本實(shí)驗(yàn)只能用采用模式6下載調(diào)試,一切正常。八、實(shí)驗(yàn)中問(wèn)題A、程序設(shè)計(jì)中的問(wèn)題在程序設(shè)計(jì)中有遇到不知如何簡(jiǎn)化程序的問(wèn)題,開(kāi)始編寫(xiě)的時(shí)候設(shè)置的變量、信號(hào)過(guò)多,不懂得巧妙的應(yīng)用。B、波形仿真中的問(wèn)題波形仿真正確,但是波形圖中存在毛刺現(xiàn)象,毛刺現(xiàn)象又稱(chēng)為競(jìng)爭(zhēng)冒險(xiǎn),由于信號(hào)在FPGA器件內(nèi)部通過(guò)連線和邏輯單元時(shí)都有一定的延時(shí)。延時(shí)的大小與連線的長(zhǎng)短和邏輯單元的數(shù)目有關(guān),同時(shí)還受器件的制造工藝、工作電壓、溫度等條件的影響。另外信號(hào)高低電平的轉(zhuǎn)換也需要一定的過(guò)渡時(shí)間。所以多路信號(hào)的電平值發(fā)生變化時(shí),在信號(hào)變化的瞬間,組合邏輯的輸出有先后順序,并不是同時(shí)變化,往往會(huì)出現(xiàn)一些不正確的尖峰信號(hào),這些尖峰信號(hào)稱(chēng)為“毛刺”。如果一個(gè)組合邏輯電路中有“毛刺“出現(xiàn),就說(shuō)明該電路存在“冒險(xiǎn)”。毛刺的消除

可以通過(guò)改變?cè)O(shè)計(jì),破壞毛刺產(chǎn)生的條件來(lái)減少毛刺的發(fā)生。毛刺并不是對(duì)所有的輸入都有危害,對(duì)于D觸發(fā)器的D輸入端,只要毛刺不出現(xiàn)在時(shí)鐘的上升沿并且不滿足數(shù)據(jù)的建立和保持時(shí)間,就不會(huì)對(duì)系統(tǒng)造成危害,因此可認(rèn)為D觸發(fā)器的D輸入端對(duì)毛刺不敏感。根據(jù)這個(gè)特性,應(yīng)當(dāng)在系統(tǒng)中盡可能采用同步電路,因?yàn)橥诫娐沸盘?hào)的變化都發(fā)生在時(shí)鐘沿,只要毛刺不出現(xiàn)在時(shí)鐘的沿口并且不滿足數(shù)據(jù)的建立和保持時(shí)間,就不會(huì)對(duì)系統(tǒng)造成危害。由于毛刺很短,多為幾納秒,基本上都不可能滿足數(shù)據(jù)的建立和保持時(shí)間。

這種方法可以大大減少毛刺,但他并不能完全消除毛刺,必須手工修改電路來(lái)去除毛刺。一般,冒險(xiǎn)出現(xiàn)在信號(hào)發(fā)生電平轉(zhuǎn)換的時(shí)刻,即在輸出信號(hào)的建立時(shí)間內(nèi)會(huì)發(fā)生冒險(xiǎn),而在輸出信號(hào)的保持時(shí)間內(nèi)是不會(huì)有毛刺信號(hào)出現(xiàn)的。如果在輸出信號(hào)的保持時(shí)間內(nèi)對(duì)其進(jìn)行“采樣”,就可以消除毛刺信號(hào)的影響。

“采樣”可通過(guò)兩種方法實(shí)現(xiàn):一種是在輸出信號(hào)的保持時(shí)間內(nèi),用一定寬度的高電平脈沖與輸出信號(hào)做邏輯“與”運(yùn)算,由此獲取輸出信號(hào)的電平值。

上述方法的一個(gè)缺點(diǎn)是必須人為地保證SAMPLE信號(hào)必須在合適的時(shí)間中產(chǎn)生,否則仍不能得到滿意的結(jié)果。另一種實(shí)現(xiàn)方法是可利用D觸發(fā)器的D輸入端對(duì)毛刺信號(hào)不敏感的特點(diǎn),在輸出信號(hào)的保持時(shí)間內(nèi),用D觸發(fā)器讀取組合邏輯的輸出信號(hào),這種方法類(lèi)似于將異步電路轉(zhuǎn)化為同步電路,從以上分析看出,通過(guò)上述的電路處理可以有效減少毛刺的產(chǎn)生,從而減少邏輯錯(cuò)誤,提高芯片工作的穩(wěn)定性。C、模式選擇問(wèn)題該實(shí)驗(yàn)選擇模式六,在試驗(yàn)前,我不了解實(shí)驗(yàn)箱的模式,所以選擇有些茫然,在了解實(shí)驗(yàn)箱的模式結(jié)構(gòu)后,解決了這個(gè)困惑。D、調(diào)試中的問(wèn)題首先實(shí)驗(yàn)箱的93號(hào)引腳中的頻率出現(xiàn)問(wèn)題,選擇93號(hào)做clk時(shí),數(shù)碼管和等不能正常變換,改用16號(hào)引腳后,實(shí)驗(yàn)現(xiàn)象正常,符合了實(shí)驗(yàn)的要求。其次,程序編寫(xiě)時(shí)對(duì)紅、黃、綠燈的排列順序有些混亂造成燈的點(diǎn)亮順序混亂,對(duì)程序進(jìn)行改進(jìn)后,結(jié)果正確。九、實(shí)驗(yàn)心得體會(huì)首先,我不得不說(shuō)EDA課程設(shè)計(jì)對(duì)我來(lái)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論