ZYNQ microphase 7020 开发板学习(1.流水灯)
代码是基于微相zynq 7020开发板学习资料的代码做了自己的修改,感觉constraints文件来约束管脚有点不太习惯,使用综合后的Schematic来对照开发板引脚图,图形化约束管脚太方便了。
记录下自己的学习历程吧。感谢微相。芜湖~~~~~
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2024/07/07 21:00:05
// Design Name:
// Module Name: led_flash
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
module led_flash(
input sys_clk,
input rst_n,
output reg [3:0] led
);
reg [27:0] cnt; //1m的时间
parameter cnt_times = 50_000_000 -1;
wire end_cnt;
//-------------异步清零的流水灯操作----------------
always @(posedge sys_clk or negedge rst_n)begin
if(rst_n ==1'b0)begin
cnt <= 'd0;
end
else if(1)begin
if(end_cnt)
cnt <= 'd0;
else begin
cnt <=cnt +1'b1;
end
end
end
assign end_cnt = (cnt == cnt_times);
//-----------当end_cnt为高时,led灯的移位----------
always @(posedge sys_clk or negedge rst_n)begin
if(rst_n==1'b0)begin
led <= 4'b1110;
end
else if(end_cnt)begin
led <={led[2:0],led[3]};
end
else begin
led<=led;
end
end
endmodule