• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

电器控制电路的设计和实现Verilog代码Vivado basys3开发板

06/24 08:16
312
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240106100400H9.doc

共1个文件

名称:电器控制电路的设计和实现Verilog代码Vivado  basys3开发板

软件:Vivado

语言:Verilog

代码功能:

继电器控制电路的设计和实现

1设计目标

实现使用8个LEC灯当作继电器并进行控制。

2.设计内容

如下图,8个LED中近两个LED作为一组同时亮,以切换速率1s到切换到下一组循环,利用一个按键切换频率从1s换到2s

QQ图片20240106100534.png

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

2.管脚定义实验时给出

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在basys3开发板验证,basys3开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png

演示视频:

设计文档:

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时钟计数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时钟计数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]};//循环右移
assign led=LED_buf;//输出led
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=501

  • 2-240106100400H9.doc
    下载

相关推荐