我目前正在使用Logisim(即仅使用逻辑门)构建一个16位ALU,但卡在了除法过程上。我目前只是使用简单的标准“除法算法循环”(如下所示):
然而,这对于具有大答案的过程来说需要很长时间(重复一个300周期65,000次并不好玩)。我想知道是否有类似的算法更快(仅使用加法和/或减法和/或乘法和任何布尔逻辑),可以使用逻辑门实现。任何帮助或思路都将不胜感激!Fraser
- 读取输入值;
- 比较输入值。等待比较过程完成;
- 如果A < B,请转到步骤10。如果A≥B,请继续下一步;
- 从A中减去B;
- 等待减法过程完成;
- 将计数加1;
- 等待计数过程完成;
- 将减法过程中的值写入输入;
- 回到步骤1;
- 答案是商为count,余数为A