没有合适的资源?快使用搜索试试~ 我知道了~
verilog 编写数码管循环显示器
需积分: 46 22 下载量 21 浏览量
2020-05-31
23:31:32
上传
评论
收藏 145KB DOCX 举报
温馨提示
Verilog 编程数码管循环显示器设计 本设计使用 DE2 核心 FPGA 开发板,使用 Verilog 语言编写程序,实现数码管循环显示“HEUAC407”八位英文字符和数字。该设计分为两个模块:时钟-divider 模块和七段数码管驱动模块。 时钟-divider 模块(div 模块): 该模块的作用是将输入时钟信号 CLOCK_50 降频到 1Hz,作为整个系统的时钟信号。时钟-divider 模块由一个 26 位计数器实现,当计数器达到 50,000,000 时,输出时钟信号 o_clk SET 为高电平,否则为低电平。该模块还具有复位功能,当 KEY 信号为低电平时,计数器清零。 七段数码管驱动模块(seg7_h0-7 模块): 该模块的作用是将四位二进制数 cnt 转换为七段数码管的显示信号。该模块使用 Verilog 的 Case 语句来实现显示不同的数字和字符。例如,当 cnt 等于 0 时,显示字符“H”,当 cnt 等于 1 时,显示字符“E”,以此类推。 主模块(hello 模块): 该模块是整个系统的顶层模块,包含时钟-divider 模块和七段数码管驱动模块。该模块的作用是将时钟信号传递给七段数码管驱动模块,并将显示信号输出到七段数码管上。 实验步骤: 1. 寻找资料,根据实验目标修改程序。 2. 用实验室电脑软件新建工程,输入程序。 3. 根据提示错误调试程序。 4. 分配引脚。 5. 观察开发板数码管状态,如未达到预计结果,再进行修改程序。 通过该设计,可以实现数码管循环显示“HEUAC407”八位英文字符和数字,展示了 Verilog 语言在数字电路设计中的应用。
资源推荐
资源详情
资源评论
、实验内容与实验步骤
实验内容:通过编程在数码管上循环显示”HEUAC407”
实验步骤:1.寻找资料,根据实验目标修改程序。
2. 用实验室电脑软件新建工程,输入程序。
3. 根据提示错误调试程序。
4. 分配引脚 。
5. 观察开发板数码管状态,如未达到预计结果,再进
行修改
程序: module hello(HEX7,HEX6,HEX5,HEX4,
HEX3,HEX2,HEX1,HEX0,
CLOCK_50,KEY);
input CLOCK_50;
input [0:0]KEY;
output [7:0]HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,
HEX1,HEX0;
wire clk_1hz;
reg [3:0]cnt;
div u0(.o_clk(clk_1hz),
.rst_n(KEY),
.i_clk(CLOCK_50)
);
always @(posedge clk_1hz or negedge KEY)
begin
if(!KEY)
cnt<=4'b0;
else
begin
if(cnt==4'b0111)
cnt<=4'b0;
else
cnt<=cnt+1'b1;
end
end
seg7_h0 h0(.oseg(HEX7),
.idig(cnt)
);
seg7_h1 h1(.oseg(HEX6),
.idig(cnt)
);
seg7_h2 h2(.oseg(HEX5),
.idig(cnt)
);
seg7_h3 h3(.oseg(HEX4),
.idig(cnt)
);
seg7_h4 h4(.oseg(HEX3),
.idig(cnt)
);
seg7_h5 h5(.oseg(HEX2),
.idig(cnt)
);
seg7_h6 h6(.oseg(HEX1),
.idig(cnt)
);
seg7_h7 h7(.oseg(HEX0),
.idig(cnt)
);
endmodule
//divider
module div(
output reg o_clk,
input rst_n,
input i_clk
);
parameter N=50_000_000;
parameter M=24_999_999;
reg [25:0]cnt;
剩余7页未读,继续阅读
资源评论
whl299
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功