FPGA系统性学习笔记连载_Day10 【流水灯实验】之【intel Q、Xilinx S-6、ZYNQ7020三个平台的实现及验证】
本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。
连载《叁芯智能fpga设计与研发-第10天》 【流水灯实验】之【intel Cyclone IV、Xilinx Spartan-6、Xilinx ZYNQ7020三个平台的实现及验证】
原创作者:紫枫术河 转载请联系群主授权,否则追究责任
本实验要求设计 用4个led实现流水灯的效果,要求每隔一秒切换一个led灯,间隔时间为1秒,同一时间只能有一个led点亮
一、模块设计
我分为2个模块counter.v led_water.v及仿真led_water_tb.v
二、代码设计counter.v
代码语言:javascript复制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
三、代码设计 led_water.v
代码语言:javascript复制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
四、仿真代码led_water_tb.v
代码语言:javascript复制`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 Cyclone IV】
我用的是叁芯智能的开发板(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、硬件验证效果
七、Xilinx Spartan-6 FPGA 平台验证
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
ZYNQ7020,因为只有3个led可以使用,这个实验就不下板了。
【QQ交流群】
群号:173560979,进群暗语:FPGA技术江湖粉丝。
多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。
【微信交流群】
现微信交流群已建立09群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。
完
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!