2013-03-18 104 views
1

我已经为verilog中的程序编写了测试台。奇怪的问题是模拟器显示的输入与我提供的输入相比完全不同。因此输出也受到影响。这是为什么发生?我正在Xilinx测试代码。下面是测试平台显示错误输入的模拟器

我输入1010101 模拟器显示0110101

module HamDecoderTop; 

// Inputs 
reg clk; 
reg rst; 
reg [6:0] hword; 

// Outputs 
wire [3:0] data; 


HammingDecoder uut (
    .clk(clk), 
    .rst(rst), 
    .hword(hword), 
    .data(data) 
); 

initial begin 
    // Initialize Inputs 
    clk = 0; 
    rst = 0; 

    #1 rst =1; 

    #10 hword = 1010101; 


end 

always 
#2 clk=~clk; 

endmodule 

这里是模拟器展示。

enter image description here

+0

输出很好。时钟在每2个单位后切换,并且在10个单位时间后hword取值为'10101'。 – Dilawar 2013-03-18 16:51:25

回答

3

你需要,如果你希望它被解释为七位二进制在前面加上一个7'b您hword文字值。默认情况下,它被解释为十进制值1,010,101,当转换为二进制时,该值为11110110100110110101。这个二进制数的前7位是你在模拟器中看到的。

+1

哦,是的,傻了!我完全忘了它!感谢您指出了这一点。 :) – Naruto 2013-03-18 16:50:15