2013-11-01 59 views
-1

我必須使用Verilog(作業)分割兩個8位數字。 我必須使用該模塊是這一個:我必須做一個verilog程序,除以2數字

module divider(
output reg[7:0] q,   
output reg[7:0] r, 
input [7:0] a,b); 
endmodule 

其中A = B * Q + R

我不允許使用重複減法或/和%運算符。

有人告訴我,我可以使用SRT,牛頓迭代或施密特算法來解決這個問題,但我不明白他們是如何工作的?

任何幫助請?

+4

我認爲重點是要了解這些算法之一是如何工作的,因爲他們排除了更直接的算術方法。 – Morgan

回答

0

第1步:從Wikipedia和Google開始。牛頓的方法有很多。

第2步:用你最喜歡的軟件語言(Python,Scala,C等等)編寫一個原型。

步驟3:只有當您完成前面的兩個步驟後,才能在Verilog中編寫解決方案。

牛頓方法背後的基本思想是進行猜測,然後在每個時鐘週期/迭代中改進猜測。你的猜測最終會收斂到正確的答案。一旦新的猜測與之前的猜測幾乎相同,就完成了。

相關問題