내가해야할 일은 시계를 사용하지 않고 장 구간을 사용하는 분배기를 만드는 것입니다. 내 현재 코드는 올바르게 알고리즘을 구현하는 것처럼 보이지만 ... 문제가 있습니다. 내 출력이 초기화되지 않았습니다. 그들의 값은 항상 X입니다. 와이어를 초기화하는 방법을 잘 모르겠습니다. (필자는 그렇게하지 않았다고 생각 했습니까?) 출력에 reg를 사용하려했지만 for 루프를 사용하여 복잡한 작업을 수행했습니다. 내가 무엇을 할 수 있을지?Verilog에서 비동기 이진 디바이더 디자인하기
`timescale 1ns/1ns
module alu_div(dividend, divisor, quotient, remainder);
input wire[31:0] dividend, divisor;
output wire[31:0] quotient, remainder;
genvar i;
generate
for (i = 31; i >= 0; i = i - 1) begin
assign remainder = remainder << 1;
assign remainder[0] = dividend[i];
assign remainder = ((remainder >= divisor) ? (remainder - divisor):remainder);
assign quotient[i] = ((remainder >= divisor) ? 1:quotient[i]);
end
endgenerate
endmodule