2013-03-18 3 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 единиц времени значение «10101» и значение «hword». – Dilawar

ответ

3

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

+1

о, да, глупый! Я полностью забыл об этом! Спасибо за указание на это. :) – Naruto

Смежные вопросы