• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

交通燈控制器帶左轉(zhuǎn)燈Verilog代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-240110155Z21D.doc

共1個(gè)文件

名稱:交通燈控制器帶左轉(zhuǎn)燈Verilog代碼Quartus仿真

軟件:Quartus

語(yǔ)言:Verilog

代碼功能:

利用狀態(tài)機(jī),按照?qǐng)D1中十字路口交通運(yùn)行的實(shí)際情況,使用 Verilog HDL語(yǔ)言,設(shè)計(jì)一個(gè)交通燈系統(tǒng)控制器。

其中方向1是主干道,車流量大,因此綠燈時(shí)間較長(zhǎng);方向2是次干道,綠燈時(shí)間較短,兩個(gè)方向的交通燈變化顯示時(shí)間,如表1所示。

從表1可以看出每個(gè)方向四種燈按“綠燈→黃燈→左轉(zhuǎn)燈→黃燈→紅燈”順序依次點(diǎn)亮,不斷循環(huán),且每個(gè)方向紅燈亮的時(shí)間與另一方向綠、黃、左轉(zhuǎn)、黃燈亮的總時(shí)間相等。

QQ圖片20240110155429.png

假設(shè)用“1”表示燈亮,“0”表示燈滅,方向1和方向2的綠燈、黃燈、左轉(zhuǎn)燈和紅燈分別用字母G1、Y1、L1、R1和G2、Y2、L2、R2來表示,則該交通燈控制器的功能表,如表2所示。

QQ圖片20240110155511.png

2、設(shè)計(jì)要求

根據(jù)圖1,設(shè)計(jì)一個(gè)交通燈系統(tǒng)控制器,具體要求如下:

(1)利用狀態(tài)機(jī),使用 Verilog HDL語(yǔ)言描述實(shí)現(xiàn)該交通燈控制器,要求方向1和方向2的紅(R)、黃(Y)、綠(G)和左拐(L)四盞燈按照表1和表2的顯示時(shí)間與功能狀態(tài)循環(huán)亮滅,將燈亮的時(shí)間以倒計(jì)時(shí)的形式顯示出來,且能夠方便地進(jìn)行設(shè)置和修改,給出 Quartus I平臺(tái)的編譯結(jié)果。

(2)畫出該狀態(tài)機(jī)的結(jié)構(gòu)框圖、狀態(tài)轉(zhuǎn)換圖;

(3)編寫測(cè)試模塊,在 Modelsim上對(duì)所設(shè)計(jì)的交通燈控制器進(jìn)行仿真,驗(yàn)證所有結(jié)果,并給出其時(shí)序仿真波形圖;要求按照兩組不同參數(shù)設(shè)定,其中一組參數(shù)限定為仿真時(shí)間2000ns,在100ns前完成復(fù)位,CLK時(shí)鐘激勵(lì)周期10ns,占空比50%;另一組參數(shù)自由選擇。

(4)時(shí)序波形圖中要求將現(xiàn)態(tài)變量(current_state)和次態(tài)變量? ? (next state)的狀態(tài)變換值以十進(jìn)制形式顯示,每一個(gè)方向上每一種顏色燈亮的持續(xù)時(shí)間以十進(jìn)制形式顯示出來。

(5)使用系統(tǒng)函數(shù)$ monitor、$time,以二進(jìn)制形式打印待測(cè)模塊的輸出數(shù)據(jù),顯示當(dāng)前的時(shí)間單位,并給出一段清晰截圖。注意:要求圖形清晰,建議用 Visio或 Edraw(億圖)畫圖,直接復(fù)制粘貼至word。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

各模塊框圖

分頻模塊

狀態(tài)機(jī)控制模塊

顯示模塊

5. Testbench(仿真代碼)

仿真參數(shù)1

仿真參數(shù)2

6. 仿真圖(以仿真參數(shù)1為例)

整體仿真圖

Moniter輸出

State狀態(tài)

分頻模塊仿真圖

狀態(tài)機(jī)控制模塊仿真圖

顯示模塊仿真圖

部分代碼展示:

//交通燈
module?trafic(
input?clk,//時(shí)鐘
input?key,//復(fù)位
output?main_red,//主干道紅燈--R1
output?main_green,//主干道綠燈--G1
output?main_yellow,//主干道黃燈--Y1
output?main_left,//主干道左轉(zhuǎn)燈--L1
output?branch_red,//支干道紅燈--R2
output?branch_green,//支干道綠燈--G2
output?branch_yellow,//支干道黃燈--Y2
output?branch_left,//支干道左轉(zhuǎn)燈--L2
output?[7:0]?HEX0,//數(shù)碼管0--支干道倒計(jì)時(shí)個(gè)位
output?[7:0]?HEX1,//數(shù)碼管1--支干道倒計(jì)時(shí)十位
output?[7:0]?HEX2,//數(shù)碼管2---主干道倒計(jì)時(shí)個(gè)位
output?[7:0]?HEX3//數(shù)碼管3--主干道倒計(jì)時(shí)十位
);
wire?clk_1Hz;
wire?[7:0]?main_cnt;
wire?[7:0]?branch_cnt;
//分頻模塊
div?i_div(
.?clk(clk),//時(shí)鐘
.?clk_1Hz(clk_1Hz)//1Hz
);
//狀態(tài)機(jī)控制模塊
state_machine?i_state_machine(
.?clk_1Hz(clk_1Hz),//1Hz
.?key(key),
.?main_red(main_red),
.?main_green(main_green),
.?main_yellow(main_yellow),
.?main_left(main_left),
.?branch_red(branch_red),
.?branch_green(branch_green),
.?branch_yellow(branch_yellow),
.?branch_left(branch_left),
.?main_cnt(main_cnt),
.?branch_cnt(branch_cnt)
);

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=527

  • 2-240110155Z21D.doc
    下載

相關(guān)推薦