首页 > 其他分享 >(3)计数器&时序逻辑

(3)计数器&时序逻辑

时间:2024-04-02 13:22:42浏览次数:30  
标签:逻辑 led clk flash 时序 计数器 rst tb reg

设计思路:

 设计代码:

RTL:

module led_flash(
    clk,rst_n,led
    );
    input clk,rst_n;
    output reg led=0;
    parameter max=24999999;  //(计数的最大值)
    reg [24:0] cnt=0;
    always@(posedge clk or negedge rst_n)
        if(!rst_n)
            cnt <= 0;
        else if (cnt == max)
            cnt <= 0;
        else
            cnt <= cnt+1;
    //灯的闪烁
    always@(posedge clk or negedge rst_n)
        if(!rst_n)
            led <= 0;
        else if (cnt == max)
            led <= ~led;
        else
            led <= led;     
endmodule

tb:

`timescale 1ns / 1ps

module led_flash_tb();
    
    reg clk,rst_n;
    wire led;
    
    led_flash u_led_flash(
        .clk(clk),
        .rst_n(rst_n),
        .led(led)
    );
    
    initial 
        clk = 1;
        always #10 clk = ~clk;  //每10ns翻转一次,因此clk周期为20ns
    initial begin
        rst_n = 0;
        #200;
        rst_n = 1;
        #3000000000;
        $stop;
    end
    
endmodule

仿真波形:

 

   在上面我设置的是3s结束,但是仿真时间太长了,也就没有继续,看到led翻转就暂停了。

  在波形的边缘处右键,选择Mark,可以打一个标记,点一下标记底下就会出现刻度尺。

  可以看到,led的半个周期为500ms,满足我们的设计要求。

电路结构图:

 上班验证:

  

   这里发现什么都看不到,点一下上面这个group按钮就好了

   上板后发现led以1s频率闪烁,如果按住按钮0的话led将不闪烁(复位),本实验设计得到成功验证。

  

 

标签:逻辑,led,clk,flash,时序,计数器,rst,tb,reg
From: https://www.cnblogs.com/liwilling/p/18110365

相关文章

  • 下列关于静态,动态时序模拟的优缺点说法错误的是()
    A、静态时序分析是提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求B、静态时序分析可以对芯片设计进行全面的时序验证和功能验证,验证每一条路径,发现时序的重大问题,比如建立时间和保持时间冲突,slowpath以及过大的时钟......
  • C++ //练习 11.4 扩展你的程序,忽略大小写和标点。例如,“example.“、“exmaple,“和”
    C++Primer(第5版)练习11.4练习11.4扩展你的程序,忽略大小写和标点。例如,“example.”、"exmaple,"和”Example"应该递增相同的计数器。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >Fil......
  • 推荐最近在使用的还不错的一款逻辑分析仪
    作为一名嵌入式软件/硬件工程师,要会使用各种仪表仪器,尤其示波器、逻辑分析仪,这两个仪器可以监测各种数据线、信号线波形,可以帮我们快速定位产品问题,缩短开发周期。今天一口君安利一款非常不错的逻辑分析仪:kingstLA5016这款仪器非常容易上手,尤其在一些常见的协议解析这块,表现......
  • 时序预测 | Python实现VMD-CNN-LSTM时间序列预测
    时序预测|Python实现VMD-CNN-LSTM时间序列预测目录时序预测|Python实现VMD-CNN-LSTM时间序列预测预测效果基本介绍模型描述代码设计预测效果基本介绍VMD-CNN-LSTM是一种混合深度学习模型,结合了变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆......
  • 调试逻辑及变量声明顺序
    模型功能使用ILA观察信号观察变量的转化触发信号的设立ILA调试状态机的编写VIO的手动控制模型框图ila_0u_ila_0(.clk(clk),.probe0(probe_0));实现步骤ILA调试核的使用直接调用该IP核,可以实现一个在线逻辑分析仪的功能ILA核的设置包括信号个数(对应位宽......
  • C++ 计数器小全
    1.简介  这篇文章介绍了C++的计数器们,包括:cnt(累加计数器),sum(求和计数器),mul(累乘计数器),last(上一项记录器),flag(状态计数器)  下文中,我就会详细说这6种计数器2.详解(正文)        2-1.cnt详解        cnt的中文名是累加......
  • iOS - Runloop的运行逻辑
    文章目录iOS-Runloop的运行逻辑1.苹果官方的Runloop执行图2.Mode里面的东西2.1Source02.2Source12.3Timers2.4Observers3.执行流程3.1注意点4.Runloop休眠iOS-Runloop的运行逻辑1.苹果官方的Runloop执行图2.Mode里面的东西2.1Source0触摸事件......
  • day01-字符串方法-逻辑运算符规律
    字符串方法 查询类方法 字符串.index(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则报错字符串.find(字符):查询指定字符在整个字符串中第一次出现的位置下标;如果下表不存在则返回-1字符串.rindex(字符):查询指定字符在整个字符串中最后一次出现的......
  • openGauss 逻辑复制
    逻辑复制可获得性本特性自openGauss1.0.0版本开始引入。特性简介openGauss提供逻辑解码功能,将物理日志反解析为逻辑日志。通过DRS等逻辑复制工具将逻辑日志转化为SQL语句,到对端数据库回放,达到异构数据库同步数据的功能。目前支持openGauss数据库与MySQL数据库、Oracle数据库......
  • 计数器的原理和应用
    一、计数器的原理和应用 要求:每计数三次,数码管值加一#include<reg51.h>unsignedchars[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsignedcharnum=0;voidinitcounter(){ TMOD=0x06;//00000110 TH0=256-3; TL0=256-3; ET0=1; EA=1; TR0=1;}......