qq_58272240 2022-11-11 18:24 采纳率: 100%
浏览 49
已结题

24进制同步计数器的testbench文件怎么写

本人是初学者,要求编写24进制同步计数器且计数值为23 时输出标志性高脉冲持续一个clk,我的文件和testbench文件都通过了编译,可是modelsim仿真的时候只有clk和reset信号有波形,输出无波形,实在找不出来哪里错了,希望大家指教!谢谢!

这是我的.v文件

module count24
(input clk,reset,
output reg [4:0] cout,
output reg sign1);
always @(posedge clk)
begin
if(reset) cout<=0;
else begin
cout<=cout+1;
if(cout==23) begin sign1<=1;cout<=0; end
else sign1<=0;
end
end
endmodule

这是我的testbench文件

`timescale 1ns/1ns
module count24_tb;
reg clk,reset;
wire [4:0] cout;
wire sign1;
count24 u1(clk,reset,cout,sign1);
parameter PERIOD=100;
initial
begin
reset=1;clk=0;
#40 reset=0;
forever
#(PERIOD/2) clk=~clk;
end
endmodule

  • 写回答

1条回答 默认 最新

  • Fantasy237 2022-11-11 22:32
    关注

    错误波形:主要问题是 clk上升沿没有复位信号。

    img

    修改tb:

    `timescale 1ns/1ns
    module count24_tb;
    reg clk,reset;
    wire [4:0] cout;
    wire sign1;
    count24 u1(clk,reset,cout,sign1);
    parameter PERIOD=100;
    initial
    begin
    reset=1;clk=0;
    #20 clk=1; //加这一句
    #40 reset=0;
    forever #(PERIOD/2) clk=~clk;
    end
    endmodule
    
    

    这个波形是不是有问题,还是题主自己理解。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月11日