Симулятор показывает неверный ввод

Я написал тестовую программу для программы на 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

Вот что показывает симулятор.

введите здесь описание изображения


person Naruto    schedule 18.03.2013    source источник
comment
Выход в порядке. Часы переключаются через каждые 2 единицы, а hword принимает значение 10101 через 10 единиц времени.   -  person Dilawar    schedule 18.03.2013


Ответы (1)


Вам нужно добавить к вашему литеральному значению hword 7'b, если вы хотите, чтобы оно интерпретировалось как семибитный двоичный файл. По умолчанию он интерпретируется как десятичное значение 1,010,101, которое при преобразовании в двоичное равно 11110110100110110101. Первые 7 бит этого двоичного числа — это то, что вы видите в симуляторе.

person Tim    schedule 18.03.2013