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