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

8路彩灯控制器basys2开发板ISE流水灯verilog代码

05/12 09:38
700
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:8路彩灯控制器basys2开发板ISE流水灯verilog代码(代码在文末下载)

软件:ISE

语言:Verilog

代码功能:

设计一个8路彩灯控制器,能在Basys2开发板上实际验证。

用8个LED代替八路彩灯,任一时刻,这8个LED有的亮有的不亮,这称为一种花型,再过一段时间,这8个LED又是另外一种亮暗分布,这就是另外一种花型。

控制器需要让6种花型循环出现。前面说的6种花型合在一起称为一套花型,要求最少有2套花型,使用一个开关来选择使用哪一个花型。

另外,同一套花型中,从一种花型变换到另外一种花型的速度最少有2种,也用开关来进行切换。

另外,数码管上要显示以下信息,现在是第几套花型,是第几种花型,序号可以从0开始,还要显示当前花型对应的16进制数。

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

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

basys2.png

工程文件:

d1342339-f51f-4c19-b4e9-cb76d87c98e8.png

程序文件:

6d228238-3ae6-4535-8548-da4e4ea444d4.png

程序编译:

5d36c9ff-27a0-41df-9528-8f8ea0a9e287.png

管脚分配:

f3e33e3f-de93-4d40-aa94-b91cbcf19d8a.png

RTL图:

f9d57d09-a71a-4f07-9134-67928083dd83.png

部分代码展示:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// 花型控制模块课
module control(
    input clk,//时钟
    input reset,//复位
    input SW1,//花型切换
    output [7:0] LED,//LED灯
    output [3:0] LED_type,//第几套花型
    output [3:0] LED_num//第几种花型
    );
//6种花型
reg [3:0] num1_cnt=4'd0;
reg [3:0] num2_cnt=4'd0;
//花型1计数
always@(posedge clk or posedge reset)
if(reset)//复位
num1_cnt<=4'd0;
else if(SW1==1)//花型1
if(num1_cnt>=4'd5)//0~5
num1_cnt<=4'd0;
else
num1_cnt<=num1_cnt+4'd1;//加1
else
num1_cnt<=4'd0;
//花型1计数
always@(posedge clk or posedge reset)
if(reset)//复位
num2_cnt<=4'd0;
else if(SW1==0)//花型2
if(num2_cnt>=4'd5)//0~5
num2_cnt<=4'd0;
else
num2_cnt<=num2_cnt+4'd1;//加1
else
num2_cnt<=4'd0;
//根据计数控制具体LED灯变化
reg [7:0] LED1=8'd0;
always@(posedge clk or posedge reset)
if(reset)//复位
LED1<=8'd0;
else
case(num1_cnt)//8个LED变化
4'd0:LED1<=8'b11100000;
4'd1:LED1<=8'b01110000;
4'd2:LED1<=8'b00111000;
4'd3:LED1<=8'b00011100;
4'd4:LED1<=8'b00001110;
4'd5:LED1<=8'b00000111;
default:;
endcase
//根据计数控制具体LED灯变化
reg [7:0] LED2=8'd0;
always@(posedge clk or posedge reset)
if(reset)//复位
LED2<=8'd0;
else
case(num2_cnt)//8个LED变化
4'd0:LED2<=8'b00000111;
4'd1:LED2<=8'b00001110;
4'd2:LED2<=8'b00011100;
4'd3:LED2<=8'b00111000;
4'd4:LED2<=8'b01110000;
4'd5:LED2<=8'b11100000;
default:;
endcase
assign LED=(SW1)?LED1:LED2;//SW1控制花型切换LED1还是LED2
assign LED_type=(SW1)?4'd1:4'd2;//第几套花型
assign LED_num=(SW1)?num1_cnt:num2_cnt;//第几种花型
endmodule

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

相关推荐