저는 매 클럭 단위로 16 비트 출력에 부호가있는 8 비트 입력을 추가하고 재설정 신호를 수신 할 때 재설정해야하는 Verilog 프로그램에서 작업 해 왔습니다. 추가 부분은 잘 작동하고 음수 1 값을 추가하는 경우에도 작동하지만 그보다 적은 수의 경우 시뮬레이션에서 이상한 결과가 나타납니다. 내가 Verilog를 마지막으로 사용한 이후로 약 1 년이 지났으며, 내가 생각할 수있는 모든 것을 시도했지만, 문제가 무엇인지는 불확실하다.Verilog Signed Addition Subtraction 오류
module varcount (clk, reset, in, out);
input clk, reset;
input [7:0] in;
output reg [15:0] out;
reg [15:0] temp;
reg [15:0]count;
parameter X=1000000;
always @ (posedge clk)
begin
if (in[7] == 1)
begin
temp = 16'b00000000000000001 + !in;
count = count - temp;
if (reset)
begin
count = 0;
out = 0;
end
out = count;
end
else
begin
count = count + in;
if (reset)
begin
count = 0;
out = 0;
end
out = count;
end
end
endmodule
여기 내 시뮬레이션 입력입니다 :
을 그리고 여기 얻을 출력의 여기에 내가 코드로 멀리있는거야.
그것은 내 프로그램에서 직선 순방향 오류 것 같아,하지만 난 그것을 식별 할 수 없습니다.
에 오신 것을 환영에 StackOverflow에. 코드를 제대로 들여 쓰기가 어렵 기 때문에 코드를 읽기가 어렵습니다. 또한 실제 결과 대 올바른 결과가 될 것으로 예상되는 것을 표시하지 않습니다. –