2
선택기와 산술 시프트를 함께 사용하고 싶습니다. 그러나이 코드를 구현하지 못하면 결과는 논리적으로 바뀝니다.Verilog에서 arithmetic shift & selector를 사용하는 방법은 무엇입니까?
module multiplier(x1, x2, x1x2);
input [15:0] x1, x2;
output [15:0] x1x2;
assign x1x2 =
x2[13]? ($signed(x1)>>>4'd1) : 16'b0000000000000000;
endmodule
이 코드와 마찬가지로 선택자없이 산술 연산이 성공적으로 완료됩니다.
module multiplier(x1, x2, x1x2);
input [15:0] x1, x2;
output [15:0] x1x2;
assign x1x2 = $signed(x1)>>>4'd1;
endmodule
선택기와 산술 시프트를 함께 사용하는 방법은 무엇입니까?
리터럴 16'b0이 부호가 없다는 사실과 관련이있을 수 있습니다. 서명 된 리터럴로 만들면 작동합니까? (16'sb0) – Unn
정답이있는 경우 회색 눈금을 클릭하여 수락 할 수 있다면 도움이 될 것입니다. 감사합니다. – Morgan