1

Verilog でプログラムのテストベンチを作成しました。奇妙な問題は、シミュレーターが、私が入力として提供したものとはまったく異なる入力を表示していることです。したがって、出力も影響を受けます。なぜこうなった?ザイリンクスでコードをテストしています。テストベンチはこちら

私の入力は 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

これがシミュレーターが示しているものです。

ここに画像の説明を入力

4

1 に答える 1

3

7'b7 ビット バイナリとして解釈する場合は、hword リテラル値の前に a を追加する必要があります。デフォルトでは 10 進値として解釈され、 2 進数1,010,101に変換すると11110110100110110101. この 2 進数の最初の 7 ビットは、シミュレーターで表示されているものです。

于 2013-03-18T16:47:29.670 に答える