変数 'V'は連続的および手続き的な割り当てによって作成されます 変数 'F'は連続的および手続き的な割り当てによって記述されます。なぜ私のためにこのエラーがModelSimで発生するのですか?
私のコードは次のとおりです。
module ALU(input signed [7:0] A,B ,input [2:0] sel ,input Si,input Ci ,output logic signed [15:0] F ,output logic N,Z,V,Eq);
always @(A,B,sel) begin
F=15'b 0;
N=1'b 0;
Z=1'b 0;
V=1'b 0;
case(sel)
3'b 000:begin F=A+B+Ci; end
3'b 001:F=A+(~B+1);
3'b 010:F=A<<1;
3'b 011:F=A>>>1;
3'b 100:begin F=A>>1; F[7]=Si; end
3'b 101:begin F=A<<1; F[0]=Si; end
3'b 110:F=A*1.5;
3'b 111:F=A*B;
endcase
end
assign V=(A[7]==B[7]&&F[7]!=A[7])?1'b1:1'b0;
assign F[15:8]=(V)?((A[7]==1)?8'b11111111:8'b00000000):((F[7]==1)?8'b11111111:8'b00000000);
ENDMODULE
私は全く割り当てを使用すべきではないという意味ですか? – beginner
@beginnerそれぞれの 'always'ブロックと' assign'ステートメントは、あなたのケースの組み合わせ論理ではハードウェアのブロックになります。変数を複数の場所から駆動すると、複数のハードウェアブロックの出力を実質的に短絡してしまいます。 –