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

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

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

2-240106100400H9.doc

共1個(gè)文件

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

軟件:Vivado

語言:Verilog

代碼功能:

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

1設(shè)計(jì)目標(biāo)

實(shí)現(xiàn)使用8個(gè)LEC燈當(dāng)作繼電器并進(jìn)行控制。

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

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

QQ圖片20240106100534.png

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

2.管腳定義實(shí)驗(yàn)時(shí)給出

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

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

basys3開發(fā)板.png

演示視頻:

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

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時(shí)鐘分頻到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í)鐘計(jì)數(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í)鐘計(jì)數(shù)100_000_000得1s
????????????clk_1Hz<=1;//得到1Hz時(shí)鐘
????????else
????????????clk_1Hz<=0;
always@(posedge?clk_1Hz)
????clk_05Hz<=~clk_05Hz;//2分頻得到0.5Hz
wire?clk_work;//工作時(shí)鐘
assign?clk_work=switch?clk_1Hz:clk_05Hz;//工作時(shí)鐘在switch==1時(shí)為1Hz(1s),為0時(shí)為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

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

  • 2-240106100400H9.doc
    下載

相關(guān)推薦