我已经编写了一段代码,它将根据我提供的数字和我用来将数字移动到位的一些其他数据返回一个商和一个提醒。
我现在遇到的问题是,如果我一个接一个地测试更多的值,我就无法很好地跟踪我的商数。
我需要一种方法来初始化我的cat寄存器,这样我就不再从以前的计算中获得残差值。
这是我正在谈论的代码:
module divide(
input [7:0] a, b,
input [3:0] counter, msb,
output reg [7:0] q,
output reg [7:0] r
);
always @(*) begin
for(i = 0; i < counter + 1 ; i = i+1) begin
sum = s_a + s_b; //previously calculated values
if(sum[8-msb] == 1) begin
assign s_a = s_a;
assign s_b = s_b >>> 1;
cat[counter - i] = 1'b0;
end
else begin
assign s_a = sum;
assign s_b = s_b >>> 1;
cat[counter - i] = 1'b1;
end
assign r = s_a;
assign q = cat;
end
end
endmodule
注意:我已经声明了这段代码中的所有寄存器,但出于某种目的,我不能在这里声明它们。