eda課程設(shè)計(jì)及及-交通燈控制器的設(shè)計(jì)_第1頁
eda課程設(shè)計(jì)及及-交通燈控制器的設(shè)計(jì)_第2頁
eda課程設(shè)計(jì)及及-交通燈控制器的設(shè)計(jì)_第3頁
eda課程設(shè)計(jì)及及-交通燈控制器的設(shè)計(jì)_第4頁
eda課程設(shè)計(jì)及及-交通燈控制器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

EDA課程設(shè)計(jì)報(bào)告題目交通燈控制器的設(shè)計(jì)摘要交通燈信號(hào)控制器通常要實(shí)現(xiàn)自動(dòng)控制和手動(dòng)控制其紅綠燈的變化,基于FPGA設(shè)計(jì)的交通燈信號(hào)控制器電路簡單、可靠性好。本設(shè)計(jì)可控制2個(gè)路口的紅、黃、綠三盞燈.讓其按特定的規(guī)律進(jìn)行變化。利用QuartusⅡ?qū)υO(shè)計(jì)結(jié)果進(jìn)行仿真,發(fā)現(xiàn)系統(tǒng)工作性能良好。據(jù)此設(shè)計(jì)而成的硬件電路,也實(shí)現(xiàn)了控制要求。關(guān)鍵詞:交通燈自動(dòng)控制手動(dòng)控制目錄1.概述課程設(shè)計(jì)目的此次課程設(shè)計(jì)是根據(jù)《VHDL程序設(shè)計(jì)》這門課程開設(shè)的綜合設(shè)計(jì)課程,要求學(xué)生利用VHDL編程語言,基于EDA開發(fā)平臺(tái)Quartus=2\*ROMAN錯(cuò)誤!未找到引用源。,設(shè)計(jì)相應(yīng)的數(shù)字系統(tǒng),通過對(duì)系統(tǒng)進(jìn)行編程、仿真、調(diào)試與實(shí)現(xiàn),體驗(yàn)設(shè)計(jì)的全過程,進(jìn)一步加深對(duì)所學(xué)基礎(chǔ)知識(shí)的理解,培養(yǎng)學(xué)生將理論知識(shí)應(yīng)用于實(shí)踐的能力、學(xué)生自學(xué)與創(chuàng)新能力和分析解決實(shí)際問題的能力。培養(yǎng)學(xué)生設(shè)計(jì)、繪圖、計(jì)算機(jī)應(yīng)用、文獻(xiàn)查閱、實(shí)驗(yàn)研究、報(bào)告撰寫等基本技能;提高學(xué)生獨(dú)立分析和解決工程實(shí)際問題的能力;增強(qiáng)學(xué)生的團(tuán)隊(duì)協(xié)作精神、創(chuàng)新意識(shí)、嚴(yán)肅認(rèn)真的治學(xué)態(tài)度和嚴(yán)謹(jǐn)求實(shí)的工作作風(fēng)。課程設(shè)計(jì)題目及要求交通燈控制器的設(shè)計(jì):隨著各種交通工具的發(fā)展和交通指揮的需要,交通燈的誕生大大改善了城市交通狀況。要求設(shè)計(jì)一個(gè)交通燈控制器,假設(shè)某個(gè)交通十字路口是由一條主干道和一條次干道匯合而成,在每個(gè)方向設(shè)置紅綠黃燈3種信號(hào)燈,紅燈亮禁止通行,綠燈亮允許通行。黃燈亮允許車輛有時(shí)間停靠到禁止線以外。在自動(dòng)控制模式時(shí),主干道(東西)每次放行時(shí)間為30s,次干道(南北)每次放行時(shí)間為20s,主干道紅燈、次干道黃燈、主干道黃燈、次干道紅燈持續(xù)時(shí)間為5s。綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮5s,才能變換運(yùn)行車道。要求交通燈控制器有復(fù)位功能,并要求所有交通燈的狀態(tài)變化在時(shí)鐘脈沖上升沿處。實(shí)驗(yàn)環(huán)境軟件仿真采用QuartusII;硬件仿真采用KFH-1型CPLD/FPGA實(shí)驗(yàn)開發(fā)系統(tǒng);2.系統(tǒng)總體設(shè)計(jì)根據(jù)設(shè)計(jì)要求和系統(tǒng)所具有的功能,并參考相關(guān)的文獻(xiàn)資料,經(jīng)行方案設(shè)計(jì),可以畫出如下述所示的交通信號(hào)燈控制器的系統(tǒng)流程圖與系統(tǒng)框圖。我們選擇按照自頂向下的層次化設(shè)計(jì)方法,整個(gè)系統(tǒng)可分為4個(gè)模塊,系統(tǒng)時(shí)序發(fā)生電路、紅綠燈計(jì)數(shù)時(shí)間選擇模塊、定時(shí)控制電路、紅綠燈信號(hào)譯碼電路。系統(tǒng)組成其中系統(tǒng)時(shí)序發(fā)生電路最主要的功能就是產(chǎn)生一些額外的輸出信號(hào),它們是為紅綠燈信號(hào)譯碼電路提供的頻率39kHz的掃描信號(hào),為定時(shí)控制電路提供的使能(enable)控制信號(hào),為紅綠燈信號(hào)譯碼電路提供的占空比為50%的秒閃爍信號(hào);紅綠燈計(jì)數(shù)時(shí)間選擇模塊是負(fù)責(zé)輸出顯示器需要的值(即倒數(shù)的秒數(shù)值),作為定時(shí)控制電路的倒計(jì)時(shí)秒數(shù),在該模塊中可設(shè)置東西路口河南北路口的信號(hào)燈維持秒數(shù);定時(shí)控制電路功能就是負(fù)責(zé)接收紅綠燈計(jì)數(shù)時(shí)間選擇模塊輸出的值(即倒數(shù)的秒數(shù)值),然后將其轉(zhuǎn)換成BCD碼,利用七段顯示器顯示出來,讓新人能清楚的知道再過多久就會(huì)變成紅燈;紅綠燈信號(hào)譯碼電路除了負(fù)責(zé)控制路口紅綠燈的顯示外,最主要的功能就是能夠利用開關(guān)來切換手動(dòng)與自動(dòng)的模式,讓交警能夠通過外部輸入的方式指揮交通的,但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)還必須使用手動(dòng)紅字,即讓交警執(zhí)行指揮交通。為了系統(tǒng)正常運(yùn)作,整個(gè)控制器采用同步工作方式,由外接信號(hào)發(fā)生器(該電路的設(shè)計(jì)可參見本章)提供1Hz的時(shí)鐘信號(hào)CLK。3.系統(tǒng)層次化設(shè)計(jì)與軟件仿真EDA技術(shù)的基本設(shè)計(jì)方法有電路設(shè)計(jì)方法和系統(tǒng)設(shè)計(jì)方法。電路級(jí)設(shè)計(jì)方法已經(jīng)不能適應(yīng)新的形勢,本系統(tǒng)采用的是系統(tǒng)級(jí)層次設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片F(xiàn)PGA芯片實(shí)現(xiàn),首先用VHDL語言編寫各個(gè)功能模塊程序,最后通過綜合器和適配器生成最終的目標(biāo)器件,然后用頂層原理圖將各功能模塊連接起來。下面給出各模塊的VHDL設(shè)計(jì)過程和仿真結(jié)果。系統(tǒng)時(shí)序發(fā)生電路在紅綠燈交通信號(hào)控制系統(tǒng)中,大多數(shù)的情況是通過自動(dòng)控制的方式指揮交通的。因此,為了避免意外事件的發(fā)生,電路必須有一個(gè)穩(wěn)定的時(shí)鐘(clock)才能讓系統(tǒng)正常工作。但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)也必須使用手動(dòng)可能工資,即讓交警能夠順利的指揮交通。CLK_gen電路最主要的功能就是產(chǎn)生一些額外的輸出信號(hào),并將其用作后續(xù)幾個(gè)電路的使用(enable)控制與同步信號(hào)處理。該電路的核心部分就是分頻電路,通過對(duì)外接信號(hào)發(fā)生器提供1Hz的時(shí)鐘信號(hào)進(jìn)行1000分頻,得到一個(gè)周期1s的輸出使能信號(hào)ena_1Hz(占空比1:1000)和flash_Hz(占空比1:1);1024分頻后得到紅綠燈信號(hào)譯碼電路所需要的頻率為39kHz的顯示使能信號(hào)ena_scan。VHDL源代碼:LIBRARYIEEE;USEclk_genISPort(reset:instd_logic;clk:instd_logic;ena_scan:outstd_logic;ena_1Hz:outstd_logic;flash_1Hz:outstd_logic);end;ARCHITECTUREBEHAVIORofclk_genISCONSTANTscan_bit:positive:=10;CONSTANTscan_val:positive:=1024;CONSTANTtwo_Hz_bit:positive:=15;CONSTANTtwo_Hz_val:positive:=19532;signalclk_scan_ff:std_logic_vector(scan_bit-1downto0);signalclk_2Hz_ff:std_logic_vector(two_Hz_bit-1downto0);signalena_s,ena_one,ena_two:std_logic;beginscan:process(clk,reset)beginifreset='1'thenclk_scan_ff<="000000000";ena_s<='0';elsif(clk'eventandclk='1')thenifclk_scan_ff>=scan_val-1thenclk_scan_ff<="000000000";ena_s<='1';elseclk_scan_ff<=clk_scan_ff+1;ena_s<='0';endif;endif;endprocess;ena_scan<=ena_s;two_Hz:process(reset,clk,ena_s)beginifreset='1'thenena_one<='0';ena_two<='0';clk_2Hz_ff<="0000000000000";elsif(clk'eventandclk='1')thenifena_s='1'thenifclk_2Hz_ff>=two_Hz_val-1thenclk_2Hz_ff<="0000000000000";ena_two<='1';ena_one<=notena_one;elseclk_2Hz_ff<=clk_2Hz_ff+1;ena_two<='0';endif;endif;endif;endprocess;ena_1Hz<=ena_oneandena_twoandena_s;flash_1Hz<=ena_one;endBEHAVIOR;系統(tǒng)時(shí)序發(fā)生電路clk_gen的仿真輸出波形和元件符號(hào)系統(tǒng)時(shí)序發(fā)生電路clk_gen的仿真輸出波形圖3-1系統(tǒng)時(shí)序發(fā)生電路CLK_GEN紅綠燈計(jì)數(shù)時(shí)間選擇模塊當(dāng)過馬路的時(shí)候,綠燈的一方又是會(huì)附加一個(gè)顯示器告訴行人,目前還剩下幾秒信號(hào)燈將變成紅燈。因此,traffic_mux電路最主要的功能就是負(fù)責(zé)輸出顯示器需要的值(即倒數(shù)的秒值數(shù)),作為定時(shí)控制電路的技術(shù)秒數(shù)。該電路的核心部分就是數(shù)據(jù)選擇電路,利用選擇語句case_when(單輸入,多輸出)實(shí)現(xiàn)4選1,其選擇輸入信號(hào)sign_state是紅綠燈信號(hào)譯碼電路產(chǎn)生的4種狀態(tài)信號(hào),狀態(tài)轉(zhuǎn)換輸出表如表3-2所示。狀態(tài)sign_state東西路口南北路口時(shí)間(s)00(狀態(tài)0)東西路口為通行狀態(tài),此時(shí)東西路口綠燈亮南北路口紅燈亮3001(狀態(tài)1)東西路口為過渡狀態(tài),此時(shí)東西路口黃燈亮南北路口紅燈亮510(狀態(tài)2)東西路口紅燈亮南北路口為通行狀態(tài),此時(shí)南北路口綠燈亮2011(狀態(tài)3)東西路口紅燈亮南北路口為過渡狀態(tài),此時(shí)南北路口黃燈亮5表3-2紅綠燈計(jì)數(shù)時(shí)間狀態(tài)轉(zhuǎn)換表VHDL源代碼:LIBRARYIEEE;USEtraffic_muxISPORT(reset,clk,ena_scan,recount:instd_logic;sign_state:instd_logic_vector(1downto0);load:outstd_logic_vector(7downto0));end;ARCHITECTUREBEHAVIORoftraffic_muxISCONSTANTyellow0_time:integer:=5;CONSTANTgreen0_time:integer:=30;CONSTANTyellow1_time:integer:=5;CONSTANTgreen1_time:integer:=20;beginload_time:process(reset,clk)beginifreset='1'thenload<="00000000";elsif(clk'eventandclk='1')thenif(ena_scan='1'andrecount='1')thenCASEsign_stateISWHEN"00"=>load<=CONV_STD_LOGIC_VECTOR(green0_time,8);WHEN"01"=>load<=CONV_STD_LOGIC_VECTOR(yellow0_time,8);WHEN"10"=>load<=CONV_STD_LOGIC_VECTOR(green1_time,8);WHENOTHERS=>load<=CONV_STD_LOGIC_VECTOR(yellow1_time,8);ENDCASE;ENDIF;ENDIF;ENDPROCESS;ENDBEHAVIOR;計(jì)數(shù)時(shí)間選擇模塊traffic_mux的仿真輸出波形和元件符號(hào)計(jì)數(shù)時(shí)間選擇模塊traffic_mux的仿真輸出波形定時(shí)控制電路該電路的核心部分是可置數(shù)的減法計(jì)數(shù)器電路和七段譯碼輸出顯示電路。可置數(shù)的減法計(jì)數(shù)器電路是利用if_then_else語句完成,兩位七段譯碼輸出顯示電路則利用case_when語句通過查表的方式構(gòu)成。VHDL源代碼:LIBRARYIEEE;USEcount_downISPort(reset,clk,ena_1Hz,recount:instd_logic;load:instd_logic_vector(7downto0);seg7:outstd_logic_vector(15downto0);next_state:outstd_logic);end;ARCHITECTUREBEHAVIORofcount_downISsignalcnt_ff:std_logic_vector(7downto0);begincount:process(clk,reset)beginif(reset='1')thencnt_ff<="00000000";seg7<="0000000000000000";elsif(clk'eventandclk='1')thenifena_1Hz='1'thenif(recount='1')thencnt_ff<=load-1;elsecnt_ff<=cnt_ff-1;endif;endif;caseconv_integer(cnt_ff)iswhen0=>seg7(15downto0)<="001";when1=>seg7(15downto0)<="000";when2=>seg7(15downto0)<="001";when3=>seg7(15downto0)<="001";when4=>seg7(15downto0)<="000";when5=>seg7(15downto0)<="001";when6=>seg7(15downto0)<="001";when7=>seg7(15downto0)<="001";when8=>seg7(15downto0)<="001";when9=>seg7(15downto0)<="001";when10=>seg7(15downto0)<="00000";when11=>seg7(15downto0)<="00000";when12=>seg7(15downto0)<="00000";when13=>seg7(15downto0)<="00000";when14=>seg7(15downto0)<="00000";when15=>seg7(15downto0)<="00000";when16=>seg7(15downto0)<="00000";when17=>seg7(15downto0)<="00000";when18=>seg7(15downto0)<="00000";when19=>seg7(15downto0)<="00000";when20=>seg7(15downto0)<="011";when21=>seg7(15downto0)<="010";when22=>seg7(15downto0)<="011";when23=>seg7(15downto0)<="011";when24=>seg7(15downto0)<="010";when25=>seg7(15downto0)<="001";when26=>seg7(15downto0)<="001";when27=>seg7(15downto0)<="011";when28=>seg7(15downto0)<="011";when29=>seg7(15downto0)<="011";when30=>seg7(15downto0)<="011";when31=>seg7(15downto0)<="010";when32=>seg7(15downto0)<="011";when33=>seg7(15downto0)<="011";when34=>seg7(15downto0)<="010";when35=>seg7(15downto0)<="001";when36=>seg7(15downto0)<="001";when37=>seg7(15downto0)<="011";when38=>seg7(15downto0)<="011";when39=>seg7(15downto0)<="011";whenothers=>seg7(15downto0)<="001";endcase;endif;endprocess;next_state<='1'whencnt_ff=1else'0';endBEHAVIOR;定時(shí)控制電路count_down的仿真輸出波形和元件符號(hào)定時(shí)控制電路count_down的仿真輸出波形紅綠燈信號(hào)譯碼電路在紅綠燈交通燈信號(hào)系統(tǒng)中,大多數(shù)的情況是通過自動(dòng)控制的方式指揮交通的。但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)還必須使用手動(dòng)控制,即讓交警自行指揮交通。因此,traffic_fsm電路除了負(fù)責(zé)監(jiān)控路口紅綠燈之外,最主要的功能就是能夠利用開關(guān)來切手動(dòng)與自動(dòng)的模式,讓交警能夠通過外部輸入的方式來控制紅綠燈信號(hào)系統(tǒng)的運(yùn)作。輸出信號(hào):recount(產(chǎn)生重新計(jì)數(shù)的輸出使能控制信號(hào))、sign_state(產(chǎn)生的輸出狀態(tài)信號(hào)共2位,4種狀態(tài))、red(負(fù)責(zé)紅燈的顯示,共2位,4種狀態(tài))、green(負(fù)責(zé)綠燈的顯示,共2位,4種狀態(tài))、yelllow(負(fù)責(zé)黃燈的顯示,共2位,4種狀態(tài))。設(shè)南北路口紅黃綠3色燈為r0、y0、g0,東西路口的紅黃綠3色燈為r1、y1、g1,自動(dòng)操作模式和手動(dòng)操作模式信號(hào)燈顯示的真值表如表3-2、表3-3所示。信號(hào)燈顯示的真值表CLKresetena_1hznext_stagestate狀態(tài)sign_stagerecountlightstate11XXr0g1001010010state2011r0g1->roy1011011000010r0g1000010010state3011r0y1->g0r1101100001010r0y1010011000state4011g0r1->y0r1111100100010g0r1100100001state5011y0r1->r0g1001010010010y0r1110100100state6011others000110000表中定義了一些進(jìn)程(process)間整體共享的電路內(nèi)部傳遞信號(hào),以整合所有功能,它們是:state信號(hào)(設(shè)定紅綠燈電路的狀態(tài),在該程序里定義8種狀態(tài))、st_transfer(在手動(dòng)模式下判斷是否轉(zhuǎn)態(tài)的控制信號(hào))、light[5:0](在自動(dòng)模式下該信號(hào)為是否轉(zhuǎn)態(tài)的控制信號(hào),其位數(shù)從高到低分別表示red1、red0、yellow1、yellow0、green1、green0)。VHDL源代碼:LIBRARYIEEE;USEtraffic_CONISPort(reset,clk,ena_scan,ena_1Hz,flash_1Hz,a_m,st_butt,next_state:instd_logic;recount:outstd_logic;sign_state:outstd_logic_vector(1downto0);red:outstd_logic_vector(1downto0);green:outstd_logic_vector(1downto0);yellow:outstd_logic_vector(1downto0));end;ARCHITECTUREBEHAVIORoftraffic_CONIStypeSreg0_typeis(r0g1,r0y1,g0r1,y0r1,y0y1,y0g1,g0y1,r0r1);signalstate:Sreg0_type;signalst_transfer:std_logic;signallight:std_logic_vector(5downto0);beginrebounce:process(reset,clk,ena_scan,st_butt)variablerebn_ff:std_logic_vector(5downto0);beginif(st_butt='1'orreset='1')thenrebn_ff:="111111";st_transfer<='0';elsif(clk'eventandclk='1')thenif(ena_scan='1')thenif(rebn_ff>=3)thenrebn_ff:=rebn_ff-1;st_transfer<='0';elsif(rebn_ff=2)thenrebn_ff:=rebn_ff-1;st_transfer<='1';elserebn_ff:=rebn_ff;st_transfer<='0';endif;endif;endif;endprocess;CON:process(clk,ena_1Hz,reset)beginIf(reset='1')thenstate<=r0g1;sign_state<="00";recount<='1';elseif(clk'eventandclk='1')thencaseSTATEiswhenr0g1=>if(a_m='1'andena_1Hz='1')thenif(next_state='1')thenrecount<='1';state<=r0y1;sign_state<="01";elserecount<='0';state<=r0g1;endif;elsif(a_m='0'andena_scan='1')thenif(st_transfer='0')thenrecount<='1';state<=r0g1;elserecount<='1';state<=r0y1;sign_state<="01";endif;endif;whenr0y1=>if(a_m='1'andena_1Hz='1')thenif(next_state='1')thenrecount<='1';state<=g0r1;sign_state<="10";elserecount<='0';state<=r0y1;endif;elsif(a_m='0'andena_scan='1')thenif(st_transfer='0')thenrecount<='1';state<=r0y1;elserecount<='1';state<=g0r1;sign_state<="10";endif;endif;wheng0r1=>if(a_m='1'andena_1Hz='1')thenif(next_state='1')thenrecount<='1';state<=y0r1;sign_state<="11";elserecount<='0';state<=g0r1;endif;elsif(a_m='0'andena_scan='1')thenif(st_transfer='0')thenrecount<='1';state<=g0r1;elserecount<='1';state<=y0r1;sign_state<="11";endif;endif;wheny0r1=>if(a_m='1'andena_1Hz='1')thenif(next_state='1')thenrecount<='1';state<=r0g1;sign_state<="00";elserecount<='0';state<=y0r1;endif;elsif(a_m='0'andena_scan='1')thenif(st_transfer='0')thenrecount<='1';state<=y0r1;elserecount<='1';state<=r0g1;sign_state<="00";endif;endif;whenothers=>state<=r0g1;recount<='0';sign_state<="00";endcase;endif;endif;endprocess;light<="010010"when(state=r0g1)else"011000"when(state=r0y1)else"100001"when(state=g0r1)else"100100"when(state=y0r1)else"010010"when(state=r0g1)else"110000";red<=light(5downto4);yellow<=light(3downto2);green<=light(1downto0);endBEHAVIOR;信號(hào)譯碼電路信號(hào)譯碼電路traffic_CON的仿真輸出波形在源程序中,利用類別的定義格式Typetype_nameistype_mark,將所有紅綠燈交通信號(hào)系統(tǒng)發(fā)生的狀況利用類別(type)的定義格式一一列舉出來(程序中共定義了8種情況),信號(hào)線state的設(shè)置的目的是將sreg0_type定義的8種狀況轉(zhuǎn)換成位的方式表示。程序包含兩個(gè)進(jìn)程debounce、con。進(jìn)程debounce是抖動(dòng)清除電路,其重點(diǎn)在于st_transfer何時(shí)為1.當(dāng)外部按下st_butt鍵時(shí)(即st_buff=0),內(nèi)部的計(jì)數(shù)器rebn_ff開始計(jì)數(shù)(3f-02),在rebn_ff尚未數(shù)到02秒時(shí),st_butt鍵被松開,那么狀態(tài)將不會(huì)改變。假如是由于電路效應(yīng)引起開關(guān)誤動(dòng)作,開關(guān)抖動(dòng)的速度是非常快的(約小于1ms),故電路不會(huì)有誤動(dòng)作的產(chǎn)生,也就達(dá)到了這個(gè)抖動(dòng)消除的目的。進(jìn)程con是紅綠燈狀態(tài)控制器和紅綠燈閃爍控制器。紅綠燈交通控制器頂層電路紅綠燈交通燈控制器頂層電路分為4個(gè)模塊,它們是系統(tǒng)時(shí)序發(fā)生電路clk_gen,紅綠燈計(jì)數(shù)時(shí)間選擇模塊traffic_mux,定時(shí)控制電路count_down,紅綠燈信號(hào)譯碼電路traffic_CON,圖3-51所示的是頂層電路原理圖。本節(jié)所要做的工作就是將所有的子電路全部連接起來,進(jìn)行時(shí)序分析正確無誤后,再下載FPGA,以便進(jìn)行硬件電路的測試工作。圖3-51紅綠燈交通控制器頂層電路原理圖利用元件例化的方法,將Traffic_TOP設(shè)置為頂層文件。按圖3-51將4個(gè)子電路連接起來。VHDL源代碼:LIBRARYIEEE;USEtraffic_TOPISPORT(RE:instd_logic;clk:instd_logic;K1:instd_logic;K2:instd_logic;recount:outstd_logic;NEXT_S:outstd_logic;R:outstd_logic_vector(1downto0);G:outstd_logic_vector(1downto0);Y:outstd_logic_vector(1downto0);S:outstd_logic_vector(15downto0));ENDtraffic_TOP;architecturebehaveoftraffic_TOPiscomponentclk_genPORT(reset:instd_logic;clk:instd_logic;ena_scan:outstd_logic;ena_1Hz:outstd_logic;flash_1Hz:outstd_logic);endcomponent;componenttraffic_muxPORT(reset:instd_logic;clk:instd_logic; ena_scan:instd_logic; recount:instd_logic;sign_state:instd_logic_vector(1downto0);load:outstd_logic_vector(7downto0));endcomponent;componentcount_downPort(reset:instd_logic; clk:instd_logic; ena_1Hz:instd_logic; recount:instd_logic;load:instd_logic_vector(7downto0);seg7:outstd_logic_vector(15downto0);next_state:outstd_logic);endcomponent;componenttraffic_CONPort(reset:instd_logic; clk:instd_logic; ena_scan:instd_logic; ena_1Hz:instd_logic; flash_1Hz:instd_logic; a_m:instd_logic; st_butt:instd_logic; next_state:instd_logic;recount:outstd_logic;sign_state:outstd_logic_vector(1downto0);red:outstd_logic_vector(1downto0);green:outstd_logic_vector(1downto0);yellow:outstd_logic_vector(1downto0));endcomponent;signalena_scan_1:std_logic;signalena_1Hz_1:std_logic;signalflash_1Hz_1:std_logic;signalrecount_1:std_logic;signalnext_state_1:std_logic;signalsign_state_1:std_logic_vector(1downto0);signalload:std_logic_vector(7downto0);beginu1:clk_genportmap(RE,clk,ena_scan_1,ena_1Hz_1,flash_1Hz_1);u2:traffic_muxportmap(RE,clk,ena_scan_1,recount_1,sign_state_1,load);u3:count_downportmap(RE,clk,ena_1Hz_1,recount_1,load,S,next_state_1);u4:traffic_CONportmap(RE,clk,ena_scan_1,ena_1Hz_1,flash_1Hz_1,K1,K2,next_state_1,recount_1,sign_state_1,R,G,Y);NEXT_S<=next_state_1;Endbehave;交通控制器頂層電路Traffic_TOP的仿真輸出波形和元件符號(hào)交通控制器頂層電路的仿真輸出波形圖3-54中,控制器輸入信號(hào)有以下幾種。eq\o\ac(○,1)CLK:由外界信號(hào)發(fā)生器提供1Hz的時(shí)鐘脈沖信號(hào)。eq\o\ac(○,2)RE:系統(tǒng)內(nèi)部自復(fù)位信號(hào)。eq\o\ac(○,3)K1:手動(dòng)、自動(dòng)切換鈕(1:自動(dòng),0:手動(dòng))。eq\o\ac(○,4)K2:紅綠燈狀態(tài)切換鍵(每按一次就切換一個(gè)狀態(tài))(使用在手動(dòng)模式下)。輸出信號(hào)有以下幾種:eq\o\ac(○,1)NEXT_S:當(dāng)計(jì)數(shù)器計(jì)時(shí)完畢時(shí)

溫馨提示

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