当前位置:   article > 正文

Quartus+Modelsim实现计数器_modelsim28进制计算器

modelsim28进制计算器

前言

在这里插入图片描述
当cnt为49_999_999位时,转换为二进制26位宽。
在这里插入图片描述
当cnt为29_999_999位时,转换为二进制25位宽,后续都采用第二种。

一、代码

1.rtl代码

代码如下(示例):

module counter
#(
parameter CNT_MAX =25'd24_999_999//不仅可以写在模块内部,还可以写在模块名称之后
)
(
input wire sys_clk,
input wire sys_rst_n,
output reg led_out
);

/* parameter CNT_MAX =25'd24_999_999;//不仅可以写在模块内部,还可以写在模块名称之后
localparam CNT_MAX =25'd24_999_999;//只能写在模块内部 */
reg [24:0] cnt;
//用always赋值,故用reg型

always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        cnt<=25'd0;
    else if (cnt == CNT_MAX)
        cnt<=25'd0;
    else//指的是复位无效且没有计算到最大值
        cnt<=cnt+25'd1;
        
always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        led_out<=1'b0;
    else if(cnt == CNT_MAX)
        led_out<=~led_out;
    else
        led_out<=led_out;//复位无效且没有计算到最大值,就让信号保持为原样
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

1.测试代码

代码如下(示例):

`timescale 1ns/1ns
module tb_counter();
reg sys_clk;
reg sys_rst_n;
wire led_out;

initial
    begin
        sys_clk=1'b1;
        sys_rst_n<=1'b0;
        #20
        sys_rst_n<=1'b1;
    end

always #10 sys_clk=~sys_clk;

/* initial
    begin
    $timeformat(-9,0,"ns",6);
    $monitor("@time %t:led_out=%b",$time,led_out);
    end
 */
counter
#(
.CNT_MAX (25'd24)
)
counter_inst
//添加了参数传递,实例化名称应该写在端口列表的前面
(
.sys_clk  (sys_clk),
.sys_rst_n(sys_rst_n),
.led_out  (led_out)
);

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

二、RTL Viewer

在这里插入图片描述
RTL Viewer与rtl代码保持一致。

三、仿真结果

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/762404
推荐阅读
相关标签
  

闽ICP备14008679号