2

Verilog を学習しようとしていますが、[NumberOfBits-1:0] コマンドが使用されている例を学習していますが、なぜそこにあり、何をしているのかがよくわかりません。これが私のコードです:

module verilogmodule(Minuend,Subtrahend,SumDiff,CarryOut,Mode);
//4-bit adder and subtractor. Mode=0 to add and Mode = 1 to subtract
parameter NumberOfBits = 4;
input [NumberOfBits-1:0] Minuend, Subtrahend; input Mode;
output [NumberOfBits-1:0] SumDiff; output CarryOut;

wire [NumberOfBits-1:0] InverterOut;
wire [NumberOfBits-1:0] MuxOut;
wire [NumberOfBits-1:0] AdderLowCarryout;

//module not4bits(A3,A2,A1,A0,Y3,Y2,Y1,Y0);
not4bits U1 (Subtrahend[3], Subtrahend[2], Subtrahend[1], Subtrahend[0],InverterOut[3], InverterOut[2], InverterOut[1],InverterOut[0]);
 //module mux4bits(A,B,Y,choice);
 mux4bits U2(Subtrahend,InverterOut,MuxOut,Mode);
 //module adder2bits(A,B,Cin, Sum, Cout);
adder2bits AdderLow(Minuend[1:0],MuxOut[1:0],Mode,SumDiff[1:0],AdderLowCarryout[1:0]);
adder2bits AdderHigh(Minuend[3:2],MuxOut[3:2],AdderLowCarryout[1:0],SumDiff[3:2],CarryOut);


endmodule
4

2 に答える 2

5

それはコマンドではなく、ワイヤの幅です。

たとえば、次のとおりです。

wire [NumberOfBits-1:0] MuxOut;

NumberOfBits は value のパラメータな4ので、置換後のワイヤ幅は[4-1:0]または になり[3:0]ます。これは、幅 4 のワイヤで、個々のビットが 3、2、1、および 0 であることを意味します。

于 2013-04-11T06:35:35.517 に答える
1

parametermacrosはC に似ています。基本的に、数値で定義されたテキストを置き換えますparameter。上記のコードでは、実際のシミュレーションの前に NumberOfBits を 4 に置き換えます。

于 2013-04-11T07:30:33.603 に答える