ZYNQ初识5(zynq_7010)基于vivado实现呼吸灯功能

`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;
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值