2012-11-10 28 views
2

我正在verilog中使用非恢復除法算法分配電路。 我無法將餘數表示爲小數二進制數。 例如,如果我做0111/0011(7/3),我得到商爲0010,餘數爲0001,這是正確的,但我想表示它爲0010.0101。 有人可以幫忙嗎?Computer_Architecture + Verilog

+0

7/3 = 2.33333 ...我明白在商2中意味着0010(二進制爲2),您如何在您的問題中如何表示.3333部分爲(0001)? – Osaid

回答

2

假設,如你的例子,你正在分4位數字,但希望在結果中額外的4位小數精度。

一種方法是在分割之前將分子乘以2^4。

instead of 
0111/0011 = 0010 (+remainder) 
do 
01110000/0011 = 00100101 (+remainder) 
+0

感謝您的幫助。 – user16

0

喜只是做數學!

你已經得到了Q(商)和R(餘數),現在用餘數乘以二進制1010中的10(十進制),例如 7/3給出2作爲Q和1作爲餘數然後再將這1與10相乘,然後再應用你的邏輯給出10/3給出3作爲Q所以你的回答將是 3(Q(first_division))。3(second division-Q)

試試吧。在verilog中很容易實現。