本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。
原创作者:紫枫术河 转载请联系群主授权,否则追究责任
本实验要求设计 用4个led实现流水灯的效果,要求每隔一秒切换一个led灯,间隔时间为1秒,同一时间只能有一个led点亮
我分为2个模块counter.v led_water.v及仿真led_water_tb.v
module counter(
input clk,
input rst_n,
output reg flag
);
reg [25:0] count;
parameter T = 26'd49_000_000;
always@(posedge clk,negedge rst_n)begin
if(!rst_n)begin
flag <= 1'b0;
count <= 0;
end
else if(count == T)begin
flag <= 1'b1;
count <= 0;
end
else
begin
count <= count + 1'b1;
flag <= 1'b0;
end
end
endmodule
module led_water(
input clk,
input rst_n,
output reg [3:0] led
);
reg [3:0] led_cnt;
wire flag;
counter counter_inst(
.clk (clk),
.rst_n (rst_n),
.flag (flag)
);
always@(posedge flag,negedge rst_n)begin
if(!rst_n)
led_cnt <= 0;
else if(led_cnt == 4'd3)
led_cnt <= 4'd0;
else
led_cnt <= led_cnt + 1'b1;
end
always@(*)begin
case(led_cnt)
4'd0:led = 4'b0001;
4'd1:led = 4'b0010;
4'd2:led = 4'b0100;
4'd3:led = 4'b1000;
default:
led = 4'b0000;
endcase
end
endmodule
`timescale 1ns/1ps
module led_water_tb;
reg clk;
reg rst_n;
wire [3:0] led;
always #10 clk = ~clk;
defparam led_water_isnt.counter_inst.T = 26'd49;
led_water led_water_isnt(
.clk (clk),
.rst_n (rst_n),
.led (led)
);
initial begin
clk = 0;
rst_n = 0;
#15;
rst_n = 1;
#4000000000;
$stop;
end
endmodule
从仿真结果可以看出,我们设计的流水灯是正确的
我用的是叁芯智能的开发板(intel Cycle IV:EP4CE6E22C8)
1、LED灯原理图
LED0:PIN_73
LED1:PIN_74
LED2:PIN_75
LED3:PIN_76
2、复位按键原理图
rest = PIN24
3、时钟引脚 clk = PIN23
4、打开Pin Planner引脚分配工具,具体方法,参考我之前的文章
5、硬件验证效果
1、我用的是叁芯智能的开发板(Xilinx Spartan-6:XC6SLX9)
2、复位按键、时钟原理图
RESET:PIN_23
CLK:PIN22
3、LED灯原理图
LED0:PIN_74
LED1:PIN_75
LED2:PIN_78
LED3:PIN_79
4、下板验证
ZYNQ7020,因为只有3个led可以使用,这个实验就不下板了。
群号:173560979,进群暗语:FPGA技术江湖粉丝。
多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。
现微信交流群已建立09群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。
完
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有