`timescale 1ns / 1ps
// Create Date: 2024/12/30 10:27:54
// Design Name:
// Module Name: breath_led
//正点原子视频学习汇总
module breath_led
(
input sys_clk,
input sys_rst_n,
output led
);
reg [15:0] period_cnt; //周期频率为50Mhz,设置计数周期为1khz
reg [15:0] duty_cycle;//占空比
reg flag; //呼吸灯亮灭变化标志
assign led = (period_cnt >= duty_cycle) ? 1'b1 : 1'b0;
always @ (posedge sys_clk or negedge sys_rst_n)
begin//1
if(!sys_rst_n)
period_cnt <= 16'd0;
else if(period_cnt == 16'd50_000)
period_cnt <= 16'd0;
else
period_cnt <= period_cnt + 1'd1 ;
end//1
always @ (posedge sys_clk or negedge sys_rst_n)
begin//1
if(!sys_rst_n)
begin//2
duty_cycle <= 16'd0;
flag <= 1'd0;
end//2
else
begin//3
if(period_cnt == 16'd50_000)
begin//4
if(flag == 1'd0)
begin//5
if(duty_cycle == 16'd50_000)
flag <= 1'd1;
ZYNQ初识5(zynq_7010)基于vivado实现呼吸灯功能
于 2024-12-30 15:12:14 首次发布