从计数器到可控线性序列机

该博客探讨如何利用FPGA技术,设计一个能够根据用户指定模式控制LED灯亮灭的系统。系统以0.25秒为周期,8种变化状态形成一个完整循环,实现了动态且可定制的LED显示效果。
摘要由CSDN通过智能技术生成

 题目:让led等按照指定的亮灭模式亮灭,亮灭模式位置,由用户随机指定。以0.25秒为一个变化周期,八个变化状态为一个循环

代码:

`timescale 1ns / 1ps
module cnt_led_3(
        clk ,
        rst_n,
        ctrl,
        led
    );
    input clk;
    input rst_n;
    input [7:0] ctrl;
    output reg led;
    parameter MCNT=100_000_000;
    
    reg [26:0] cnt0;
    always @(posedge clk or negedge rst_n)begin
       if(!rst_n)
          cnt0<=0;
          else if(cnt0==MCNT-1)
               cnt0<=0;
               else 
               cnt0 <= cnt0 +1;
               end
               
    always @(posedge clk or negedge rst_n) begin
        if(!rst_n)
            led<=0;
            else case(cnt0)
            MCNT*1/8-1:led <=ctrl[0];
            MCNT*2/8-1:led <=ctrl[1];
            MCNT*3/8-1:led <=ctrl[2];
            MCNT*4/8-1:led <=ctrl[3];
            MCNT*5/8-1:led <=ctrl[4];
            M
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值