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

VIVADO显示模块verilog代码Nexys4开发板

06/05 10:58
1297
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23122009212JM.doc

共1个文件

名称:VIVADO显示模块verilog代码Nexys4开发板

软件:VIVADO

语言:Verilog

代码功能:

显示模块,拨动右边的 8 个开关,右边的四个数码管可以显示。

8 位二进制对应的十进制数,这里的二进制要求是补码(最高为是 1 的话会输出负数)。

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

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. Xdc约束文件

部分代码展示:

//显示模块
//拨动右边的 8 个开关,右边的四个数码管可以显示
//8 位二进制对应的十进制数,这里的二进制要求是补码(最高为是 1 的话会输出负数)。
module display
(
input clk,
input [7:0] SW,//右边的 8 个开关
output reg [7:0] bit_select,//数码管位选
output reg [7:0] seg_select//数码管段选
);
//二进制转十进制
wire [3:0]signed_flag;//负号指示
assign signed_flag=(SW[7])? 4'hA : 4'hF;//负号
wire [7:0] data;
assign data=(SW[7]==0)? SW : ~(SW - 1);//正数是本身,负数减1再取反
wire [3:0] data_hun;//百位
wire [3:0] data_ten;//十位
wire [3:0] data_one;//个位
assign data_hun=data/100;//百位
assign data_ten=data/10%10;//十位
assign data_one=data%10;//个位
reg [31:0] count_num=32'd0;
////////////////////////////////////////////位选////////////////////////////////////////////////
always @(posedge clk )  //扫描频率
begin
if(count_num == 32'd99_999)  
begin
count_num <= 32'd0; 
end 
else begin
count_num <=count_num +1'd1; //扫描频率计时数字
end
end
reg [2:0] shumaguan_num=3'd0;
always @(posedge clk )  
begin
if(count_num == 32'd99_999)
begin
if(shumaguan_num == 3'd3)
begin
shumaguan_num <= 3'd0;//计数0~3,共4个数码管显示
end
else begin
shumaguan_num <= shumaguan_num + 1'd1;    //扫描那个管子的指示位
end
end
end

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

  • 2-23122009212JM.doc
    下载

相关推荐