なぜ-3'sb111
が - ( - 1)?の代わりに9に合成されたのですか?あなたの式においてVerilogなぜsign_out [3:0] <= -3'sb111 * sign_in [3:0] 9 * sign_in [3:0]へのRHS合成?
module top(in, clk, rst, out);
input [34:0] in;
output [35-1:0] out;
input clk, rst;
reg signed [35-1:0] out;
always @(posedge clk or negedge rst)
begin
if (!rst)
out[3:0] <= 0;
else
out[3:0] <= -3'sb111*in[3:0]; // 4'b1001
end
always @(posedge clk or negedge rst)
begin
if (!rst)
out[7:4] <= 0;
else
out[7:4] <= -3'b111*in[3:0];
end
always @(posedge clk or negedge rst)
begin
if (!rst)
out[11:8] <= 0;
else
out[11:8] <= -3'b011*in[3:0];
end
always @(posedge clk or negedge rst)
begin
if (!rst)
out[15:12] <= 0;
else
out[15:12] <= -3'sb011*in[3:0];
end
always @(posedge clk or negedge rst)
begin
if (!rst)
out[19:16] <= 0;
else
out[19:16] <= -3'sd1*in[3:1];
end
always @(posedge clk or negedge rst)
begin
if (!rst)
out[34:20] <= 0;
else
out[34:20] <= 0;
end
endmodule
これらの数値をコードに含めるには、-3'sb111、-3'sb011、-3'sd1のどれかを教えてください。 – vipin
@vipin数字を説明してください-3'sb111 – hailinzeng
-3'sb111は-1 *(符号付き2進数「111」)= -1 * -1 = 1を意味します。 – vipin