1

単純な8ビット2の補数を設計しようとしています。これが私のコードです:

twos_complement_of_8bits.v

//`include "complementor.v"

module twos_complement_of_8bits(output [7:0] out, input [7:0] in);
integer i;
initial
  begin
    for(i = 0; i <= 7; i = i + 1)
        complementor C(out[i], in[i]);
   end
   assign out = out + 1;
endmodule

この行でエラーが発生しました:

complementor C(out[i], in[i]);
Syntax error near 'C' found.

どうすれば修正できますか?

4

1 に答える 1

2

complementorモジュールを削除してからtwos_complement_of_8bits、次のように変更できると思います。

module twos_complement_of_8bits (output [7:0] out, input [7:0] in);
    assign out = ~in + 1;
endmodule

それでも目的の出力が得られない場合は、期待される出力値をいくつか示してください。

より複雑な状況では、モジュールのインスタンスの配列を配置するか、generateブロックを使用できます。

generateブロックの使用方法の例を次に示します。

module twos_complement_of_8bits (output [7:0] out, input [7:0] in);
    wire [7:0] out_ones;
    genvar i;
    generate
        for (i=0; i<=7; i=i+1) begin
            complementor C[i] (out_ones[i], in[i]);
        end
    endgenerate
    assign out = out_ones + 1;
endmodule
于 2012-02-09T14:52:32.290 に答える