我必须做一个verilog程序,它可以把两个数字分开

我必须做一个verilog程序,它可以把两个数字分开,verilog,division,subtraction,Verilog,Division,Subtraction,我必须用Verilog(家庭作业)将两个8位数字除法。 我必须使用的模块是: module divider( output reg[7:0] q, output reg[7:0] r, input [7:0] a,b); endmodule 其中a=b*q+r 我不允许使用重复减法或/和%运算符 我被告知我可以使用SRT、牛顿-拉斐逊或戈德施密特算法来解决它,但我不明白它们是如何工作的 有什么帮助吗?第一步:从和谷歌开始。牛顿的方法有很多东西 第二步:用你最喜欢的软件语言(P

我必须用Verilog(家庭作业)将两个8位数字除法。 我必须使用的模块是:

module divider(
output reg[7:0] q,         
output reg[7:0] r,
input [7:0] a,b);
endmodule
其中a=b*q+r

我不允许使用重复减法或/和%运算符

我被告知我可以使用SRT、牛顿-拉斐逊或戈德施密特算法来解决它,但我不明白它们是如何工作的

有什么帮助吗?

第一步:从和谷歌开始。牛顿的方法有很多东西

第二步:用你最喜欢的软件语言(Python、Scala、C等等)编写一个原型

步骤3:只有完成前两个步骤后,才应该用Verilog编写解决方案


牛顿法背后的基本思想是进行猜测,然后在每个时钟周期/迭代中改进猜测。你的猜测最终得出了正确的答案。一旦新的猜测与前一个猜测几乎相同,您就完成了

我认为重点在于了解其中一种算法是如何工作的,因为它们排除了更直接的算法方法。