急!verilog求最大公约数

来源:百度知道 编辑:UC知道 时间:2024/07/08 09:06:50
用verilog编写模块求两个12位二进制数的最大公约数。求代码,或者大体的思路~

module gcdUnit(inA, inB, out);

input [11:0] inA, inB;
output [11:0] out;

reg [11:0] A, B, out, swap;
reg done;

always @(*)
begin
done = 1'b0;
A = inA;
B = inB;
while ( !done )
begin
if( A < B )
begin
swap= A;
A = B;
B = swap;
end
else if ( B != 0 )
A = A - B;
else
done = 1'b1;
end
out = A;
end

endmodule