无法绕过测试平台

时间:2015-11-16 07:47:54

标签: verilog

我在制作测试平台时遇到问题。我的学校已经进入了这个季度,但我觉得我错过了一些基础知识。

这里我试图制作一个2乘4的解码器,但我想在verilog中模拟它。

module decoder2to4(x, enable, y);

input [1:0] x; //this is my decoder input 
input enable;
output [3:0] y; 

reg [3:0] y; 

always @(x, enable ) //
begin

    if(enable==0)   //if enable isn't on, all outputs WON'T OUTPUT correct and give us 1111
        y = 4'b1111; 
    else //if enable is high...
        if (x == 2'b00) //...then we check our inputs and give corresponding outputs 
            y = 4'b0001; 
        if (x == 2'b01)
            y = 4'b0010; 
        if (x == 2'b10)
            y = 4'b0100; 
        if (x == 2'b11); 
            y = 4'b1000;
     end
endmodule

这是我的模拟文件〜我写的正确吗?

module testbench_2to4decoder;

reg [1:0] x; //use reg not wire to assign values

wire [3:0] y; //for the outputs 

2to4Decoder uut(x,y); 



initial begin

    x = 2'b00; 
    enable = 1'b0; //keep it off
    #10 //wait some time

    enable = 1'b1; //turn enable on
    #10; //wait some time

    x = 2'b01; //input 01
    #10;  //wait some time
    x = 2'b10; //input 10
    #10;        //then
    x = 2'b11; //input 11
    #10; 
    enable = 1'b0; //turn it off
    #10; 
    end 


endmodule

1 个答案:

答案 0 :(得分:2)

您没有正确地实例化设计。首先,enable没有连接。 enable甚至没有在testbench中声明。

此外,模块名称错误。而不是遵循:

2to4Decoder uut(x,y); 

你必须:

decoder2to4 uut(x,enable, y);

鼓励使用reset逻辑具有输出的默认值。但由于这是一个组合电路,因此这里不是强制性的。

可以使用forrepeat循环和增量变量x来提供输入。但这只是为了提高编码效率。

其他事情似乎没问题。请参阅Module instantiation链接。