Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计数器的输出未在Verilog模拟中显示为已初始化_Verilog_Simulation - Fatal编程技术网

计数器的输出未在Verilog模拟中显示为已初始化

计数器的输出未在Verilog模拟中显示为已初始化,verilog,simulation,Verilog,Simulation,我在运行模拟以确保计数器正常工作时遇到了一些问题。我的柜台代码是: module counter( input clk, rst, output reg [16:0] counterout ); always @(posedge(clk), posedge(rst)) begin if (rst) counterout <= 0; else if (clk) counterout <= counterout + 1; end endmodu

我在运行模拟以确保计数器正常工作时遇到了一些问题。我的柜台代码是:

module counter(
    input clk, rst,
    output reg [16:0] counterout
    );
always @(posedge(clk), posedge(rst))
begin
     if (rst) counterout <= 0;
     else if (clk) counterout <= counterout + 1;
end
endmodule
模块计数器(
输入时钟,rst,
输出寄存器[16:0]计数器
);
始终@(posedge(clk)、posedge(rst))
开始

如果(rst)计数器输出您的计数器仍然未知,因为您没有重置它。计数器需要将
rst
信号设为1才能复位,但您的测试台总是将
rst
设为0。下面是一种更改测试台以重置计数器的方法

initial
begin
    rst = 1; // Assert reset
    clock = 0;
    #100 ;
    rst = 0; // Release reset

    for(k = 0; k < 1000; k = k+1)
    begin
        #5 clock = clock + 1;
    end
    #5 $finish;
end
首字母
开始
rst=1;//断言重置
时钟=0;
#100 ;
rst=0;//释放复位
对于(k=0;k<1000;k=k+1)
开始
#5时钟=时钟+1;
结束
#完成5美元;
结束
其他如果(时钟)计数器
initial
begin
    rst = 1; // Assert reset
    clock = 0;
    #100 ;
    rst = 0; // Release reset

    for(k = 0; k < 1000; k = k+1)
    begin
        #5 clock = clock + 1;
    end
    #5 $finish;
end