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

紅綠燈和等待信號(hào)時(shí)間顯示的設(shè)計(jì)和實(shí)現(xiàn)Verilog代碼vivado basys3開(kāi)發(fā)板

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

2-231230131209423.doc

共1個(gè)文件

名稱:紅綠燈和等待信號(hào)時(shí)間顯示的設(shè)計(jì)和實(shí)現(xiàn)Verilog代碼vivado? basys3開(kāi)發(fā)板

軟件:vivado

語(yǔ)言:Verilog

代碼功能:

紅綠燈和等待信號(hào)時(shí)間顯示的設(shè)計(jì)和實(shí)現(xiàn)

?端口:紅燈控制信號(hào)red(輸出),綠燈控制信號(hào)green(輸出),黃燈控制信號(hào)yellow(輸出),強(qiáng)制控制端 pass(輸入),其他端口可自定義。

?紅燈10s->綠燈10s->紅燈 反復(fù)交替。

?強(qiáng)制控制端pass 功能為當(dāng)前燈為紅燈時(shí)pass置1則紅燈保持3s后變綠燈(模擬過(guò)馬路燈)

?選擇一個(gè)7段碼顯示管顯示紅燈或綠燈剩下的等待時(shí)間。

任意選擇兩個(gè)led燈當(dāng)做綠燈,紅燈。選擇任意一個(gè)按鍵當(dāng)做pass。

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

本代碼已在?basys3開(kāi)發(fā)板驗(yàn)證,?basys3開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:

basys3開(kāi)發(fā)板.png

演示視頻:

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

1. 工程文件

2. 程序文件

3. 程序編譯

4. 管腳約束

部分代碼展示:

`timescale?1ns?/?1ps
//////////////////////////////////////////////////////////////////////////////////
//?Company:?
//?Engineer:?
//?
//?Create?Date:?2019/11/30?17:30:21
//?Design?Name:?
//?Module?Name:?red_green_light
//?Project?Name:?
//?Target?Devices:?
//?Tool?Versions:?
//?Description:?
//?
//?Dependencies:?
//?
//?Revision:
//?Revision?0.01?-?File?Created
//?Additional?Comments:
//?
//////////////////////////////////////////////////////////////////////////////////
module?red_green_light(
????input?clk_100M,//100M時(shí)鐘
????input?pass_key,//中間按鍵
????output?reg?red_led,
????output?reg?green_led,
????output?[3:0]?bit_select,//數(shù)碼管位選
????output?reg?[7:0]?lednum_select//數(shù)碼管段選
????);
//100M分頻到1s
reg?[31:0]?data_cnt=32'd0;
reg?clk_1Hz=0;
always@(posedge?clk_100M)
????if(data_cnt>=32'd100_000_000)//100MHz計(jì)數(shù)到100_000_000就是1s
????????data_cnt<=32'd0;
????else
????????data_cnt<=data_cnt+32'd1;
always@(posedge?clk_100M)
????if(data_cnt>=32'd50_000_000)
????????clk_1Hz<=0;//1Hz時(shí)鐘
????else
????????clk_1Hz<=1;
//time_cnt為19~10為紅燈,9~0為綠燈,數(shù)碼管顯示time_cnt的個(gè)位
reg?[4:0]?time_cnt=5'd19;
always@(posedge?clk_1Hz?or?posedge?pass_key)
????if(pass_key==1)//pass_key按下
????????time_cnt<=5'd13;//紅燈3秒
????else
????????if(time_cnt==5'd0)//計(jì)時(shí)到0后回到19
????????????time_cnt<=5'd19;
????????else
????????????time_cnt<=time_cnt-5'd1;//減1,倒計(jì)時(shí)
//紅燈
always@(*)
????if(time_cnt>5'd9?&&?time_cnt<5'd20)//time_cnt為19~10為紅燈
????????red_led<=1;
????else
????????red_led<=0;
//綠燈
always@(*)
????if(time_cnt<5'd10)//time_cnt為9~0為綠燈
????????green_led<=1;
????else
????????green_led<=0;
assign?bit_select=4'b1110;
//數(shù)碼管顯示
always@(*)
begin
case(time_cnt%10)//除以10取余得到個(gè)位
0?:?lednum_select=?(8'hc0);?//數(shù)碼管段選
1?:?lednum_select=?(8'hf9);?
2?:?lednum_select=?(8'ha4);?
3?:?lednum_select=?(8'hb0);?
4?:?lednum_select=?(8'h99);?
5?:?lednum_select=?(8'h92);
6?:?lednum_select=?(8'h82);?
7?:?lednum_select=?(8'hf8);?
8?:?lednum_select=?(8'h80);?
9?:?lednum_select=?(8'h90);?
endcase
end
endmodule

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

  • 2-231230131209423.doc
    下載

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!