版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...XXXXXX學(xué)院題目:基于FPGA的交通燈控制課程設(shè)計(jì)學(xué)院:信息工程學(xué)院班級(jí):設(shè)計(jì)人:指導(dǎo)教師:設(shè)計(jì)時(shí)間:2016年6月16日目錄一.摘要............................................1二.概述............................................11.FPGA的應(yīng)用.......................................1三.系統(tǒng)總體設(shè)計(jì)....................................21.設(shè)計(jì)任務(wù).......................................22.系統(tǒng)設(shè)計(jì)流程...................................2四.硬件設(shè)計(jì)........................................41.控制模塊.......................................52.時(shí)鐘分頻模塊...................................53.分位譯碼模塊...................................54.計(jì)數(shù)模塊.......................................6五.實(shí)驗(yàn)程序設(shè)計(jì)....................................6六.程序仿真與分析..................................131.仿真結(jié)果.......................................132.仿真結(jié)果分析...................................14七.心得體會(huì)........................................14八.參考文獻(xiàn)........................................15九.附錄............................................15一.摘要EDA工具對(duì)于電子設(shè)計(jì)人員來說極其重要,它可以在電子設(shè)計(jì)的各個(gè)階段、層次進(jìn)展目前交通燈廣泛應(yīng)用于道路交通建設(shè)中。實(shí)現(xiàn)十字路口紅綠燈的自動(dòng)控制。本文設(shè)計(jì)一個(gè)十字路口交通燈控制電路,要求東西、南北兩條干道的紅、綠、黃交通燈按要求循環(huán)變化,并以倒計(jì)時(shí)方式指示干道通行或制止的維持時(shí)間。為了對(duì)交通燈系統(tǒng)進(jìn)展準(zhǔn)確控制,采用FPGA實(shí)驗(yàn)板,在QuartusⅡ軟件環(huán)境下,分別實(shí)現(xiàn)脈沖發(fā)生模塊、狀態(tài)定時(shí)模塊、交通燈顯示模塊、時(shí)間顯示模塊,進(jìn)展仿真實(shí)驗(yàn)和硬件下載,獲得的測(cè)試結(jié)果滿足設(shè)計(jì)要求。基于FPGA的交通燈設(shè)計(jì)系統(tǒng)具有可靠性強(qiáng)、實(shí)時(shí)快速擦寫、運(yùn)算速度高、故障率低、電路簡(jiǎn)單,且體積小的特點(diǎn)。使用QuartusII軟件作為開發(fā)平臺(tái);采用自頂向下的設(shè)計(jì)思路對(duì)系統(tǒng)進(jìn)展模塊化設(shè)計(jì)和綜合,并通過波形仿真和硬件實(shí)現(xiàn)兩種方式實(shí)現(xiàn)并驗(yàn)證交通燈的功能。二.概述FPGA〔Field-Programmable
Gate
Array〕,即現(xiàn)場(chǎng)可編程門陣列,它是在可編程器件的基礎(chǔ)上進(jìn)一步開展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的缺乏,又抑制了原有可編程器件門電路數(shù)有限的缺點(diǎn)。當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本身在不斷進(jìn)展更新?lián)Q代,隨著微電子技術(shù)的開展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。隨著電子技術(shù)的開展,特別是大規(guī)模集成電路和計(jì)算機(jī)技術(shù)的研制和開展,讓電子產(chǎn)品設(shè)計(jì)有了更好的應(yīng)用市場(chǎng),實(shí)現(xiàn)方法也有了更多的選擇,而電子電路的設(shè)計(jì)卻變得越來越復(fù)雜,使用“語言〞進(jìn)展電子設(shè)計(jì)已成為一種趨勢(shì)?,F(xiàn)代電子系統(tǒng)設(shè)計(jì)方法是設(shè)計(jì)師自己設(shè)計(jì)芯片來實(shí)現(xiàn)電子系統(tǒng)的功能,將傳統(tǒng)的固件選用及電路板設(shè)計(jì)工作放在芯片設(shè)計(jì)中進(jìn)展。在這些專業(yè)化軟件中,EDA(ElectronicDesignAutomation)具有一定的代表性,EDA技術(shù)是一種基于芯片的現(xiàn)代電子系統(tǒng)設(shè)計(jì)方法。基于EDA技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA),在數(shù)字系統(tǒng)設(shè)計(jì)和控制電路中越來越受到重視。VHDL語言是電子設(shè)計(jì)的主流硬件描述語言,它更適合進(jìn)展行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過多地考慮具體的硬件構(gòu)造?;贓DA技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA)電路,提出現(xiàn)場(chǎng)可編程門陣列(FPGA)是近年來迅速開展的大規(guī)模可編程專用集成電路(ASIC),在數(shù)字系統(tǒng)設(shè)計(jì)和控制電路中越來越受到重視。VHDL語言是電子設(shè)計(jì)的主流硬件描述語言,它更適合進(jìn)展行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過多地考慮具體的硬件構(gòu)造。目前以硬件描述語言所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn)單的綜合與布局,快速的燒錄至FPGA上進(jìn)展測(cè)試,是現(xiàn)代IC設(shè)計(jì)驗(yàn)證的技術(shù)主流。1.FPGA的應(yīng)用FPGA的應(yīng)用可分為三個(gè)層面:電路設(shè)計(jì),產(chǎn)品設(shè)計(jì),系統(tǒng)設(shè)計(jì)。a.電路設(shè)計(jì)連接邏輯,控制邏輯是FPGA早期發(fā)揮作用比較大的領(lǐng)域也是FPGA應(yīng)用的基石。事實(shí)上在電路設(shè)計(jì)中應(yīng)用FPGA要求開發(fā)者要具備相應(yīng)的硬件知識(shí)〔電路知識(shí)〕和軟件應(yīng)用能力〔開發(fā)工具〕。b.產(chǎn)品設(shè)計(jì)把相對(duì)成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶承受的產(chǎn)品。這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,重點(diǎn)在性能,F(xiàn)PGA技術(shù)在這個(gè)領(lǐng)域是一個(gè)實(shí)現(xiàn)手段,F(xiàn)PGA因?yàn)榫邆浣涌?,控制,功能IP,內(nèi)嵌CPU等特點(diǎn)有條件實(shí)現(xiàn)一個(gè)構(gòu)造簡(jiǎn)單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計(jì)。c.系統(tǒng)級(jí)的應(yīng)用系統(tǒng)級(jí)的應(yīng)用是FPGA與傳統(tǒng)的計(jì)算機(jī)技術(shù)結(jié)合,實(shí)現(xiàn)一種FPGA版的計(jì)算機(jī)系統(tǒng)如用XilinxV-4,V-5系列的FPGA,實(shí)現(xiàn)內(nèi)嵌POWERPCCPU,然后再配合各種外圍功能,這個(gè)平臺(tái)上跑LINIX等系統(tǒng)這個(gè)系統(tǒng)也就支持各種標(biāo)準(zhǔn)外設(shè)和功能接口了,這對(duì)于快速構(gòu)成FPGA大型系統(tǒng)來講是很有幫助的。三.系統(tǒng)總體設(shè)計(jì)1.設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)十字路口交通控制器,方向分為東南西北四個(gè)方向。東西方向的紅綠燈狀態(tài)一樣,南北方向的紅綠燈狀態(tài)一樣。每個(gè)方向上,有四盞燈,分別是左轉(zhuǎn)燈、紅燈、綠燈和黃燈。左拐燈亮表示左轉(zhuǎn)車輛可以通行;紅燈亮表示左轉(zhuǎn)和直行車輛禁行;綠燈亮表示直行車輛和右轉(zhuǎn)的車輛可以通行;黃燈亮表示左轉(zhuǎn)和直行的車輛即將禁行;倒計(jì)時(shí)顯示器用來顯示允許通行或制止通行的時(shí)間倒計(jì)時(shí)。2.系統(tǒng)設(shè)計(jì)流程提出系統(tǒng)設(shè)計(jì)要求提出系統(tǒng)設(shè)計(jì)要求需求分析需求分析模塊化方案設(shè)計(jì)模塊化方案設(shè)計(jì)底層電路設(shè)計(jì)---模塊方案設(shè)計(jì)底層電路設(shè)計(jì)---模塊方案設(shè)計(jì)頂層電路設(shè)計(jì)---原理圖描述+各模塊連接頂層電路設(shè)計(jì)---原理圖描述+各模塊連接功能仿真FPGA整體方案編譯仿真FPGA整體方案設(shè)計(jì)完成硬件連接和運(yùn)行時(shí)序仿真FPGA整體方案設(shè)計(jì)實(shí)現(xiàn)功能仿真FPGA整體方案編譯仿真FPGA整體方案設(shè)計(jì)完成硬件連接和運(yùn)行時(shí)序仿真FPGA整體方案設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)分析通過分析可以知道,所要設(shè)計(jì)的十字路口交通燈控制電路要能夠使南北、東西各四個(gè)燈〔紅、黃、綠、左轉(zhuǎn)〕,四個(gè)燈能夠按順序依次亮滅。而且要求綠燈亮轉(zhuǎn)紅燈亮或者轉(zhuǎn)左轉(zhuǎn)燈亮之前要先轉(zhuǎn)黃燈亮5秒,左轉(zhuǎn)燈亮轉(zhuǎn)紅燈亮之前也要先轉(zhuǎn)黃燈亮5秒,紅燈亮可以直接轉(zhuǎn)綠燈或左轉(zhuǎn)燈亮〔四種燈的循環(huán)順序如圖2-1所示〕。還要求四種燈的點(diǎn)亮?xí)r間能夠以倒計(jì)時(shí)的形式顯示出來??梢杂肰HDL語言合理設(shè)計(jì)系統(tǒng)功能,使紅黃綠左轉(zhuǎn)燈的轉(zhuǎn)換有一個(gè)準(zhǔn)確的時(shí)間間隔和轉(zhuǎn)換順序。經(jīng)分析,系統(tǒng)的總體構(gòu)造可以描述下述的方框圖:Hold倒計(jì)時(shí)數(shù)字及‘閃爍控制信號(hào)’七段數(shù)碼管七段數(shù)碼管驅(qū)動(dòng)電路Reset分頻電路分位譯碼電路紅、黃、綠發(fā)光二極管控制器計(jì)數(shù)器Hold倒計(jì)時(shí)數(shù)字及‘閃爍控制信號(hào)’七段數(shù)碼管七段數(shù)碼管驅(qū)動(dòng)電路Reset分頻電路分位譯碼電路紅、黃、綠發(fā)光二極管控制器計(jì)數(shù)器在FPGA設(shè)計(jì)描述中,采用自頂向下的設(shè)計(jì)思路,該思路,首先要描述頂層的接口,上面的描述已經(jīng)規(guī)定了交通燈控制的輸入輸出信號(hào):輸入信號(hào):復(fù)位開關(guān)信號(hào)reset;外部時(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è)模塊,然后采用構(gòu)造描述方式對(duì)整個(gè)系統(tǒng)進(jìn)展描述。根據(jù)實(shí)驗(yàn)設(shè)計(jì)的構(gòu)造功能,來確定使用哪些模塊以及這些模塊之間的關(guān)系。通過上面的分析,不難得知可以把交通燈控制系統(tǒng)劃分為4個(gè)模塊:時(shí)鐘分頻模塊,計(jì)數(shù)模塊,控制模塊,分位譯碼模塊。時(shí)鐘分頻模塊:把555多諧振蕩器發(fā)出的較高頻率脈沖用分頻電路的到較第頻率的時(shí)鐘信號(hào),本電路通過三次10分平分別得到10Hz、1Hz的時(shí)鐘信號(hào)。
控制器電路:根據(jù)計(jì)數(shù)器的計(jì)數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段譯碼管的分位譯碼電路。當(dāng)檢測(cè)到手動(dòng)控制信號(hào)〔Con=’1’〕時(shí),執(zhí)行手動(dòng)控制;
計(jì)數(shù)器電路:這里需要的計(jì)數(shù)器的計(jì)數(shù)范圍為0~89。計(jì)到89后,下一個(gè)時(shí)鐘沿升為1時(shí),開場(chǎng)下一輪計(jì)數(shù),此外當(dāng)系統(tǒng)復(fù)位信號(hào)〔Reset=’1’〕使計(jì)數(shù)器異步清‘0’。手動(dòng)信號(hào)〔Con=’1’〕使系統(tǒng)清‘0’。
分位譯碼電路:因?yàn)榭刂破鬏敵龅牡褂?jì)時(shí)數(shù)值可能是1位或者2位十進(jìn)制數(shù),所以在七段數(shù)碼管的譯碼電路前要加上分位電路〔即將其分為2個(gè)1位的十進(jìn)制數(shù),如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’熄滅二極管。四.硬件設(shè)計(jì)1.控制模塊控制模塊的作用是根據(jù)計(jì)數(shù)器的數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段數(shù)碼管的分位譯碼電路。此外,當(dāng)檢測(cè)到特殊情況〔EMI=‘1’〕發(fā)生時(shí),無條件點(diǎn)亮紅燈的二極管〔急救燈按下EMI='1',則東西南北都亮紅燈,在這種狀態(tài)下原來的狀態(tài)必須保持,即東西南北方向定時(shí)時(shí)間保持不變。急救燈未按下或者按下后恢復(fù),則繼續(xù)計(jì)時(shí)〔計(jì)時(shí)通過計(jì)數(shù)器ct〕,同時(shí)恢復(fù)東西南北原來燈的狀態(tài)〕。2.時(shí)鐘分頻模塊分頻器實(shí)現(xiàn)的是將高頻時(shí)鐘信號(hào)轉(zhuǎn)換成低頻時(shí)鐘信號(hào),用于觸發(fā)控制器、計(jì)數(shù)器和掃描顯示電路。將頻率變?yōu)?Hz的脈沖波,從而得到周期為1s的脈沖波。3.分位譯碼模塊〔1〕因?yàn)榭刂戚敵龅牡褂?jì)時(shí)數(shù)值可能是1位或2位十進(jìn)制數(shù),所以七段數(shù)碼管的譯碼電路前要加上分位電路〔即將其分為兩個(gè)1位的十進(jìn)制數(shù),如25分為2和5〕?!?〕分位模塊輸出的計(jì)數(shù)值將十位數(shù)和個(gè)位數(shù)分別存到數(shù)組里,這樣就可以得到兩個(gè)路口倒計(jì)時(shí)時(shí)間顯示的十位和個(gè)位信號(hào)。4.計(jì)數(shù)模塊實(shí)現(xiàn)計(jì)數(shù)為0-80計(jì)數(shù),計(jì)數(shù)到80后,下一個(gè)時(shí)鐘沿回復(fù)到0,開場(chǎng)下一計(jì)數(shù)。此外當(dāng)檢測(cè)到特殊情況〔hold=“1〞〕發(fā)生時(shí),計(jì)數(shù)器暫停計(jì)數(shù),無條件點(diǎn)亮紅色的發(fā)光二極管。而系統(tǒng)復(fù)位信號(hào)Reset則使計(jì)數(shù)器異步清零。五.實(shí)驗(yàn)程序設(shè)計(jì)1.頂層模塊library
ieee;
use
ieee.std_logic_1164.all;
use
ieee.std_logic_unsigned.all;
entity
dingceng
is
port(clkd,resetd,cond,con1d:in
std_logic;
count1:out
std_logic_vector(6
downto
0);—七段數(shù)碼管顯示
count2:out
std_logic_vector(6
downto
0);—七段數(shù)碼管顯示
count3:out
std_logic_vector(6
downto
0);—七段數(shù)碼管顯示
count4:out
std_logic_vector(6
downto
0);—七段數(shù)碼管顯示
reda,yellowa,greena,lifta:outstd_logic;—a發(fā)光二極管輸出
redb,yellowb,greenb,liftb:outstd_logic);—b發(fā)光二極管輸出
end
entity
dingceng;
architecture
one
of
dingceng
is
2.實(shí)體定義componentclk_10—脈沖輸入port(clk:in
std_logic;)--時(shí)鐘頻率為250KHz.
clk_div10
:
out
std_logic);--十分頻后脈沖輸出
end
component;
component
counter3.計(jì)數(shù)模塊port
(clk0:in
std_logic;)--脈沖信號(hào)輸入
con:in
std_logic;--手動(dòng)控制信號(hào)
reset:in
std_logic;--復(fù)位信號(hào)
countnum:bufferinteger
range
0to89);--0-89計(jì)數(shù)輸出。
end
component;
a4.控制模塊component
controller
port
(
clk1
:
in
std_logic;〕--脈沖信號(hào)輸入
con1
:
in
std_logic;--手動(dòng)控制信號(hào)
con2:
in
std_logic;--狀態(tài)控制信號(hào)countnum
:
in
integer
range
0
to
89–0-89計(jì)數(shù)輸入;
numa,numb
:
out
integer
range
0
to
25;--東西、南北兩個(gè)方向的倒計(jì)時(shí)數(shù)值輸出
ra,ga,ya,la:
out
std_logic〕;--ra,ga,ya,la發(fā)光二極管輸出
rb,gb,yb,lb:
out
std_logic);--rb,gb,yb,lb發(fā)光二極管輸出
end
component;
a5.分位模塊component
fenwei
port
(
numin:in
integer
range
0
to
25;--倒計(jì)時(shí)數(shù)值輸入
numa,numb:out
integer
range
0
to
9
);--將數(shù)值分為2個(gè)1位的十進(jìn)制輸出
end
component;
component
yima
port(clk2:in
std_logic;
bb:
in
integer
range
0
to
9;
ya:out
std_logic;--BCD碼輸出
yb:out
std_logic;--BCD碼輸出
yc:out
std_logic;--BCD碼輸出
yd:out
std_logic;--BCD碼輸出
ye:out
std_logic;--BCD碼輸出
yf:out
std_logic;--BCD碼輸出
yg:out
std_logic);--BCD碼輸出
end
component;
signal
a,b,c,d:std_logic;
signal
ww:integer
range
0
to
89;
signal
yy1,yy2:integer
range
0
to
25;
signal
tt1,tt2,tt3,tt4:integer
range
0
to
9;
begin
u0:
clk_10
port
map(clk=>clkd,clk_div10=>a);
u1:
clk_10
port
map(clk=>clkd,clk_div10=>b);
u2:
clk_10
port
map(clk=>b,clk_div10=>c);
u3:counter
port
map(clk0=>c,con=>cond,reset=>resetd,countnum=>ww);
u4:controller
port
map
(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=>yellowb,gb1=>greenb1);
u5:fenwei
port
map(numin=>yy1,numa=>tt1,numb=>tt2);
u6:fenwei
port
map
(numin=>yy2,numa=>tt3,numb=>tt4);
u7:yima
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));
u8:yima
),yf=>count2(5),yg=>count2(6));
u9:yima
3(4),yf=>count3(5),yg=>count3(6));
u10:yima
4(4),yf=>count4(5),yg=>count4(6));
end
architecture
one;b1.實(shí)體定義library
ieee;
use
ieee.std_logic_1164.all;
use
ieee.std_logic_arith.all;
use
ieee.std_logic_unsigned.all;
entity
clk_10
is--脈沖輸入
port(
clk
:
in
std_logic;--時(shí)鐘頻率為250KHz
clk_div10
:
out
std_logic);--十分頻后脈沖輸出
end
clk_10;--脈沖輸出
architecture
one
of
clk_10
is
signal
clk_temp
:
std_logic;
begin
process(clk)
variable
counter
:
std_logic_vector(2
downto
0);
constant
md
:
std_logic_vector(2
downto
0)
:=
"101";
begin
if(clk'event
and
clk='1')
then
if(counter
=
md)then
counter
:=
(others
=>'0');
clk_temp
<=
not
clk_temp;
end
if;
counter
:=
counter
+
1
;
end
if;
end
process;
port
map(clk2=>b,bb=>tt4,ya=>count4(0),yb=>count4(1),yc=>count4(2),yd=>count4(3),ye=>countport
map(clk2=>b,bb=>tt3,ya=>count3(0),yb=>count3(1),yc=>count3(2),yd=>count3(3),ye=>countport
map
(clk2=>b,bb=>tt2,ya=>count2(0),yb=>count2(1),yc=>count2(2),yd=>count2(3),ye=>count2(4)clk_div10
<=
clk_temp;
end
one;b2.計(jì)數(shù)模塊
library
ieee;
use
ieee.std_logic_1164.all;
entity
counter
is
port
(
clk0:in
std_logic;)--脈沖信號(hào)輸入
con:in
std_logic;--手動(dòng)控制信號(hào)
reset:in
std_logic;--復(fù)位信號(hào)
countnum:buffer
integer
range
0
to
89);--復(fù)位信號(hào)
end
counter;
architecture
one
of
counter
is
begin
process
(reset,clk0)
begin
if
reset='1'
then
countnum
<=
0;
elsif
rising_edge(
clk0
)
then
if
con='1'
then
countnum
<=
0;
else
if
countnum=89
then
countnum
<=
0;
else
countnum
<=
countnum
+
1;
end
if;
end
if;
end
if;
end
process;
end
one;b3.控制模塊library
ieee;
use
ieee.std_logic_1164.all;
use
ieee.std_logic_unsigned.all;
entity
controller
is
port
(
clk1
:
in
std_logic;〕--脈沖信號(hào)輸入
con1
:
in
std_logic;--手動(dòng)控制信號(hào)
con2:
in
std_logic;--狀態(tài)控制信號(hào)countnum
:
in
integer
range
0
to
89–0-89計(jì)數(shù)輸入;
numa,numb
:
out
integer
range
0
to
25;--東西、南北兩個(gè)方向的倒計(jì)時(shí)數(shù)值輸出
ra,ga,ya,la:
out
std_logic〕;--ra,ga,ya,la發(fā)光二極管輸出
rb,gb,yb,lb:
out
std_logic);--rb,gb,yb,lb發(fā)光二極管輸出
end
component;
end
controller;
architecture
one
of
controller
is
signal
m
:
integer
range
0
to
7;
begin
process
(
clk1,con1,con2,countnum
)
variable
aa:std_logic_vector(7
downto
0);
begin
if
(clk1'event
and
clk1
=
'1'
)then
if
con1
='0'
then
if
countnum
>=
65then
numb<=90-countnum;
numa
<=90-countnum;
if
countnum
>=
70
then
aa
:=
"00011000";
else
aa
:=
"00101000";
numa<=
70-countnum;
end
if;
elsif
countnum
>=
45
then
numb
<=
65-countnum;
numa
<=65-countnum;
if
countnum
>=
50
then
aa
:=
"10000100";
else
aa
:=
"10000010";
numb<=
50-countnum;
end
if;
elseif
countnum
>=
20
then
numa
<=
45-countnum;
numb
<=45-countnum;
if
countnum
>=
25
then
aa
:=
"01001000";
else
aa
:=
"00101000";
numa
<=
25-countnum;
end
if;
elsif
countnum
>=
0
then
numa
<=
20-countnum;
numb
<=
20-countnum;
if
countnum
>=
5
then
aa
:=
"10000100";
else
aa
:=
"10000010";
numb
<=
5-countnum;
end
if;
end
if;
else
if
con1=
'1'
the
numa
<=
0;
numb
<=
0;
if
con2
=
'1'
then
if
m
=
7
then
m
<=
0;
else
m
<=
m
+
1;
end
if;
end
if;
if
m
=
0
then
aa
:=
"01001000";
elsif
m=
1
then
aa
:=
"00101000";
elsif
m=2
then
aa
:="10000100";
elsif
m=3
then
aa
:=
"10000010";
elsif
m=4
then
aa
:=
"00011000";
elsif
m=5
then
aa
:=
"00101000";
elsif
m=6
then
aa
:=
"10000001";
elsif
m=7
then
aa
:=
"10000010";
end
if;end
if;end
if;end
if;ra
<=
aa(7);ga<=
aa(6);ya<=
aa(5);
ga1<=aa(4);
rb<=aa(3);gb<=aa(2);yb<=aa(1);
gb1<=aa(0);
endprocess;endone;
b4.分位模塊libraryieee;
use
ieee.std_logic_1164.all;
entity
fenwei
is
port
(
numin:in
integer
range
0
to
25;--倒計(jì)時(shí)數(shù)值輸入
numa,numb:out
integer
range
0
to
9
);--將數(shù)值分為2個(gè)1位的十進(jìn)制輸出end
fenwei;--倒計(jì)時(shí)輸出
architecture
one
of
fenwei
is
begin
process(
numin
)
variable
numa1,numb1:
integer
range
0
to
9;
begin
if
numin
>=
20
then
numa1
:=2;
numb1
:=
numin
-
20;
elsif
numin
>=
10
then
numa1
:=
1;
numb1
:=
numin
-
10;
else
numa1
:=
0
;
numb1
:=
numin
;
end
if
;
numa
<=
numa1;
numb
<=
numb1;
end
process
;
end
one
;
bb[3..0]--BCD碼輸入clk2—脈沖輸入
ya,yb,yc,yd,ye,yf,yg—七段數(shù)碼管顯示輸出5.譯碼模塊library
ieee;
use
ieee.std_logic_1164.all;
entity
display
is
port(
clk2:in
std_logic;
bb:
in
std_logic_vector(3
downto
0);--BCD碼輸入ya:out
std_logic;--七段數(shù)碼管顯示輸出
yb:out
std_logic;--七段數(shù)碼管顯示輸出yc:out
std_logic;--七段數(shù)碼管顯示輸出yd:out
std_logic;--七段數(shù)碼管顯示輸出
ye:out
std_logic;--七段數(shù)碼管顯示輸出
yf:out
std_logic;--七段數(shù)碼管顯示輸出yg:out
std_logic);--七段數(shù)碼管顯示輸出end
display;
architecture
one
of
display
issignal
temp:
std_logic_vector(6
downto
0);
--BCD碼輸入begin
process(bb)
begin
case
bb
is
when
"0000"
=>
temp
<=
"1000000";
when
"0001"
=>
temp
<=
"1111001";
when
"0010"
=>
temp
<=
"0100100";
when
"0011"
=>
temp
<=
"0110000";
when
"0100"
=>
temp
<=
"0011001";
when
"0101"
=>
temp
<=
"0010010";
when
"0110"
=>
temp
<=
"0000010";
when
"0111"
=>
temp
<=
"1011000";
when
"1000"
=>
temp
<=
"0000000";
when
"1001"
=>
temp
<=
"0010000";when
others
=>
temp
<=
"1111111";
end
case;
end
process;ya<=temp(0);
yb<=temp(1);
yc<=temp(2);
yd<=temp(3);
ye<=temp(4);
yf<=temp(5);
yg<=temp(6);
end
one;六.程序仿真與分析1仿真結(jié)果利用QUARTUSⅡ軟件對(duì)本程序進(jìn)展編譯,生成了可以進(jìn)展仿真定時(shí)分析以及下載到可編程器件的相關(guān)文件。仿真結(jié)果如下列圖:2仿真結(jié)果分析通過設(shè)定clk值以及start和EMI的初值,就可以得到仿真波形圖。EMI高電平信號(hào)輸入時(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土建項(xiàng)目施工人員勞動(dòng)合同范本9篇
- 2025年倉儲(chǔ)果蔬存儲(chǔ)合同
- 2025年智能社區(qū)內(nèi)新型消費(fèi)體驗(yàn)商鋪?zhàn)赓U合同2篇
- 2025年分銷代理合作模板書
- 2025年醫(yī)療支持服務(wù)合作協(xié)議
- 2025年主題公寓租賃協(xié)議
- 2025年危險(xiǎn)品運(yùn)輸報(bào)關(guān)報(bào)檢協(xié)議
- 2025年作品使用授權(quán)合同
- 2025版外墻內(nèi)保溫系統(tǒng)施工與節(jié)能監(jiān)測(cè)合同3篇
- 2025版信用卡醫(yī)療借款服務(wù)協(xié)議3篇
- 安全常識(shí)課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 小王子-英文原版
- 新版中國食物成分表
- 2024年山東省青島市中考生物試題(含答案)
- 河道綜合治理工程技術(shù)投標(biāo)文件
- 專題24 短文填空 選詞填空 2024年中考英語真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 電能質(zhì)量與安全課件
評(píng)論
0/150
提交評(píng)論