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

電器控制電路的設(shè)計和實現(xiàn)Verilog代碼Vivado basys3開發(fā)板

5小時前
185
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-240106100400H9.doc

共1個文件

名稱:電器控制電路的設(shè)計和實現(xiàn)Verilog代碼Vivado? basys3開發(fā)板

軟件:Vivado

語言:Verilog

代碼功能:

繼電器控制電路的設(shè)計和實現(xiàn)

1設(shè)計目標

實現(xiàn)使用8個LEC燈當作繼電器并進行控制。

2.設(shè)計內(nèi)容

如下圖,8個LED中近兩個LED作為一組同時亮,以切換速率1s到切換到下一組循環(huán),利用一個按鍵切換頻率從1s換到2s

QQ圖片20240106100534.png

1.流水燈的方向向左或向右都可以

2.管腳定義實驗時給出

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

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

basys3開發(fā)板.png

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. 管腳定義

5. Testbench

6. 仿真圖

部分代碼展示:

`timescale?1ns?/?1ps
//////////////////////////////////////////////////////////////////////////////////
//?Company:?
//?Engineer:?
//?
//?Create?Date:?2019/11/23?16:26:11
//?Design?Name:?
//?Module?Name:?basys3_led
//?Project?Name:?
//?Target?Devices:?
//?Tool?Versions:?
//?Description:?
//?
//?Dependencies:?
//?
//?Revision:
//?Revision?0.01?-?File?Created
//?Additional?Comments:
//?
//////////////////////////////////////////////////////////////////////////////////
module?basys3_led(
????input?clk_100M,
????input?reset_p,//BTNU
????input?switch,//SW0
????output?[7:0]?led
????);
//100M時鐘分頻到1Hz和0.5Hz
reg?[31:0]?count=32'd0;
reg?clk_1Hz=0;//1Hz
reg?clk_05Hz=0;//0.5Hz
always@(posedge?clk_100M?or?posedge?reset_p)
????if(reset_p)
????????count<=32'd0;
????else
????????if(count>=32'd100_000_000)//100M時鐘計數(shù)100_000_000得1s
????????????count<=32'd0;
????????else
????????????count<=count+32'd1;
always@(posedge?clk_100M?or?posedge?reset_p)
????if(reset_p)
????????clk_1Hz<=0;
????else
????????if(count>=32'd50_000_000)//100M時鐘計數(shù)100_000_000得1s
????????????clk_1Hz<=1;//得到1Hz時鐘
????????else
????????????clk_1Hz<=0;
always@(posedge?clk_1Hz)
????clk_05Hz<=~clk_05Hz;//2分頻得到0.5Hz
wire?clk_work;//工作時鐘
assign?clk_work=switch?clk_1Hz:clk_05Hz;//工作時鐘在switch==1時為1Hz(1s),為0時為0.5Hz(2s)
reg?[7:0]?LED_buf=8'b11000000;
always@(posedge?clk_work?or?posedge?reset_p)
????if(reset_p)
????????LED_buf<=8'b11000000;
????else
????????LED_buf<={LED_buf[0],LED_buf[7:1]};//循環(huán)右移
assign?led=LED_buf;//輸出led
endmodule

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

  • 2-240106100400H9.doc
    下載

相關(guān)推薦