0
私は単純な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.
私はそれをどのように修正することができますか?
私の設計は8つの同一のモジュールにパーティションであるべきです。各ビットは各ビットを補完して1を加算します。最終的な設計例:入力が11011100の場合、出力は00100100になります。応答BTWをありがとう! –
@ Eng.Fouad、8つの同一のモジュールを使用するというあなたの制約は、宿題の問題のように任意のようです。一般に、Verilogは@toolicが書いたような一次元ベクトルで最もよく使用されます。 2Dベクトルを使用すると、モジュールの境界を越えて容易に渡せないメモリが生成されます。また、複数の1ビットモジュールをインスタンス化するために 'generate'ステートメントを使用することは、厄介でエラーが起こりやすく、他の方法がない場合を除いて避けるべきです。これらはVerilog言語の主な制限です。しかし、ローマでは、ローマ人のようにしてください。 –
要求通りに、8つのモジュールを使うために 'generate'ブロックで自分の答えを更新しました。その入力に必要な出力が得られます。 – toolic