首页 > 其他分享 >小梅哥课程学习——(5)(设计一个以不同频率闪烁的4个LED灯,闪烁时间分别位0.1s,0.2s,0.3s,0.4s)源代码和仿真文件,(使用参数化设计实现模块化的重用)

小梅哥课程学习——(5)(设计一个以不同频率闪烁的4个LED灯,闪烁时间分别位0.1s,0.2s,0.3s,0.4s)源代码和仿真文件,(使用参数化设计实现模块化的重用)

时间:2023-02-10 22:55:24浏览次数:43  
标签:reset led clk 0.1 LED 源代码 闪烁

//单个LED灯以一秒闪烁的源代码
//利用单个的闪烁源代码,来实例化不同频率闪烁的灯
module led_run8(
    clk,
    reset_n,
    led
);
    input clk;
    input reset_n;
    output reg led;
    reg [24:0] counter;
    parameter MCNT=24999999;
    always@(posedge clk or negedge reset_n) 
    if(!reset_n)
        counter<=0;
    else if(counter==MCNT)
        counter<=0;
    else
        counter<=counter+1'b1;
    always@(posedge clk or negedge reset_n)
    if(!reset_n)
        led<=0;
    else if(counter==MCNT)
        led<=!led;
endmodule
//例化实现不同频率的代码
module led_run8_test(
    clk,
    reset_n,
    led
);
    input clk;
    input reset_n;
    output wire [3:0] led;//这边相当于输出一定要用wire或者什么也不用标注
   
    led_run8 led_run8_test0(
        .clk(clk),
        .reset_n(reset_n),
        .led(led[0])
    );
    defparam led_run8_test0.MCNT=2499999;//通过程序员计数器算得到
  
    led_run8 led_run8_test1(
        .clk(clk),
        .reset_n(reset_n),
        .led(led[1])
    );
    defparam led_run8_test1.MCNT=4999999;
    
    led_run8 led_run8_test2(
        .clk(clk),
        .reset_n(reset_n),
        .led(led[2])
    );
    defparam led_run8_test2.MCNT=7499999;
    
    led_run8 led_run8_test3(
        .clk(clk),
        .reset_n(reset_n),
        .led(led[3])
    );
    defparam led_run8_test3.MCNT=9999999;
endmodule

//也可以使用下列方式例化
//    led_run8
//    #(
//        .MCNT(2499999)
//    )
上面和下面是等价的
//    defparam led_run8_test0.MCNT=2499999;

 

标签:reset,led,clk,0.1,LED,源代码,闪烁
From: https://www.cnblogs.com/wangwin4/p/17110574.html

相关文章

  • Vulnhub:PowerGrid-1.0.1靶机
    kali:192.168.111.111靶机:192.168.111.182信息收集端口扫描nmap-A-v-sV-T5-p---script=http-enum192.168.111.182访问web,发现三个用户名目录爆破发现zmail......
  • 【Swagger2】(文档版)(简洁版)(内含源代码)
    源代码请添加笔者微信获取微信号:FBIHackerHarryHao微信二维码:  目录【Swagger2】主要内容学习目标一、Swagger简介1.前言2.OpenAPI是什么3.Swagger简介......
  • 决战Go语言从入门到入土v0.1
    下载地址:​​https://gitcode.net/as604049322/blog_pdf​​安装与运行环境Go语言环境安装Go语言支持Linux、Mac和Windows,本人接下来的学习全部基于windows电脑进行操作。......
  • 3.1将0.1累加100次也得不到10
    代码清单3-1是将0.1累加100次,然后将结果输出到显示器上的C语言程序。  0.1累加100次后的结果是10。但是代码清单3-1的程序运行后,显示器上显示的结果并不是10(图3-1)。......
  • 小梅哥课程学习——4—16译码器源代码和仿真文件
    //4—16译码器源代码moduledecoder_4_16(a,b,c,d,out);inputa;inputb;inputc;inputd;outputreg[15:0]out;......
  • 小梅哥课程学习——二选一多路选择器源代码和仿真文件
    //二选一多路选择器源代码//此代码注意括号内部运用的是逗号,括号内部最后一个不加逗号。//括号外面的语句都要加分号(;)modulemux2(a,b,sel,out);......
  • JAVA WEB项目大文件上传下载源代码
    ​ 1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)1、......
  • C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(一)
     一、.NETReactor介绍 .NETReactor是一个功能强大的代码保护和软件许可系统,适用于为.NETFramework编写的软件,并支持生成.NET程序集的所有语言。支持Blazor保护,支......
  • 10.11循环处理的实现方法
    接下来,让我们继续解析汇编语言的源代码,看一下for循环及if条件分支等C语言程序的流程控制是如何实现的。代码清单10-8是将局部变量i作为循环计数器连续进行10次循环的C语言......
  • 10.12条件分支的实现方法
        代码清单10-12中用到了三种跳转指令,分别是比较结果小时跳转的jle(jumponlessorequal)、大时跳转的jge(jumpongreaterorequal)、不管结果怎样都无条件......