2

我在verilog中做一个分频器电路并使用非恢复除法算法。我无法将余数表示为小数二进制数。例如,如果我执行 0111/0011 (7/3),我得到的商为 0010,余数为 0001,这是正确的,但我想将其表示为 0010.0101。有人可以帮忙吗?

4

2 回答 2

2

假设,如在您的示例中,您正在划分 4 位数字,但希望在结果中增加 4 位的小数精度。

一种方法是在进行除法之前将分子简单地乘以 2^4。

IE

instead of 
0111/0011 = 0010 (+remainder)
do
01110000/0011 = 00100101 (+remainder)
于 2012-11-10T19:35:45.007 回答
0

嗨,只是做数学!

你已经得到了 Q(quotient) 和 R(remainder) ,现在用余数乘以二进制 1010 中的 10(decimal) 例如 7/3 给出 2 作为 Q 和 1 作为余数,而不是仅仅将这个 1 与10 然后再次应用你的逻辑,给出 10/3 给出 3 作为 Q 所以你的答案将是 3(Q(first_division)).3(second Division-Q)

试一试它正在工作。并且很容易在 verilog 中实现。

于 2015-04-16T08:04:46.957 回答