FPGA开发入门:实现流水灯设计详解
创作时间:
作者:
@小白创作中心
FPGA开发入门:实现流水灯设计详解
引用
CSDN
1.
https://m.blog.csdn.net/weixin_63553972/article/details/140699845
在FPGA开发中,流水灯设计是一个经典的入门项目,类似于编程中的"Hello World"。本文将详细介绍如何使用FPGA实现流水灯功能,包括代码编写、测试验证和实际硬件测试的全过程。
一、概述
在学习任何硬件开发时,LED流水灯都是入门级的经典项目,无论是单片机MCU、DSP还是其他硬件平台,LED流水灯都是最基础的实践项目之一。在FPGA开发中,实现流水灯功能同样需要使用计数器作为基础。
二、设计代码的编写
以下是实现流水灯功能的核心代码:
//模块定义
module led(
input rst_n,
input clk,
output reg [3:0] led_out
);
//参数定义
parameter TIME_500ms= 25_000_000;
//内部信号定义
reg [24:0] cnt;//计数500ms所需要的二进制位数
wire add_cnt;//计数器开启条件
wire end_cnt;//计数器结束条件
reg [3:0] state_n;
//计数器实现功能,0.5秒技术
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
cnt<=0;
end
else if(add_cnt)begin
if(end_cnt)
cnt<=0;
else
cnt<=cnt+1;
end
else
cnt<=0;
end
assign add_cnt=1'b1;
assign end_cnt=add_cnt && cnt ==(TIME_500ms-1);
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
led_out<=4'b0011;
else if(end_cnt)begin
led_out<={led_out[2:0],led_out[3]};
end
else
led_out<=led_out;
end
endmodule
在这段代码中,关键在于使用拼接操作实现LED灯的循环移动:led_out<={led_out[2:0],led_out[3]}
。这行代码通过将最高位和最低位不断交换,实现LED灯的流水效果。
三、测试文件的编写
为了验证设计的正确性,需要编写测试文件:
//定义时间尺度
`timescale 1ns/1ps
module led_tb();
//重定义
defparam led_inst.TIME_500ms = 25;
//内部变量定义
reg clk;
reg rst_n;
wire [3:0] led_out;
//模块实例化
led led_inst(
/*input */ .rst_n (rst_n ),
/*input */ .clk (clk ),
/*output reg [3:0] */ .led_out (led_out )
);
//时钟
parameter CLK_CLY =20;
initial clk=0;
always #(CLK_CLY/2) clk=~clk;
//复位
initial begin
rst_n =1'b0;
#(CLK_CLY*2);
#3;
rst_n =1'b1;
end
//激励
endmodule
需要注意的是,在测试文件中对周期进行了重定义:defparam led_inst.TIME_500ms = 25
。这种重定义仅在测试环境中有效,不会影响实际设计文件中的参数值。
四、波形仿真
通过波形仿真,可以观察到LED灯从0001
到1000
的循环流水效果。
五、下板验证
实际硬件测试结果如下:
热门推荐
胃酸倒流能吃和不能吃的食物。吃出舒适,避免胃酸倒流的秘密食谱!
黄陂泥塑亮相春晚,千年非遗闹新春
中国民间信仰中的守护神:五大保家仙家的排行与意义
中期MACD改良:股市新宠儿?
AHA 和 BHA 的护肤潜力
金牛座女生8大性格特质:坚定、现实、自信、稳定、有耐心、忠诚、注重细节、实际
AI背景色生成全攻略:自动调整、匹配与设计技巧详解
泸沽湖草海:从生态修复到文旅融合的绿色蝶变
泸沽湖草海:走婚桥上的浪漫传说
泸沽湖草海走婚桥:打卡网红桥,感受摩梭文化
赵雅芝王菲同框引热议,2025春晚成小红书全民讨论场
经常吃辣和一点辣都不吃的人,谁的身体更好?看完就明白了
琼斯先生的致命诱惑:《死亡草》中的意外致死与人性剖析
国产电影需要更多“喜人”
2025年农历六月属蛇运势分析与指导
马尔代夫天堂
《蛟龙行动》:极限潜水特训大揭秘
瑞士教堂推出"AI耶稣"项目:科技与宗教的创新融合
黄冈高新区:从“百强”到“第88位”的进阶之路
应对皮肤干燥的有效方法与日常护理技巧解析
揭秘洗澡频率之谜,找寻你的专属沐浴之道
饭后多久可以泡温泉?专家建议来了
小分子肽:血液健康的守护者
广东观音山:一座民营国家级森林公园的生态文化传奇
东莞亲子游打卡:梦幻百花洲&华阳湖湿地公园
东莞厚街摄影打卡攻略:拍出朋友圈爆赞美照!
杭州宋城《宋城千古情》,一生必看的世界级演出
杭州宋城夜游攻略:《宋城千古情》最新预约指南!
科学护肤方法论:从洗脸开始
吃辣对胃有什么伤害