所在位置:首页 > 单机 > 单机资讯 — 与门游戏中的除法器设计

与门游戏中的除法器设计

作者: 日期:2026-03-19 19:02:54

在与门这款游戏中,由于无法表示小数且缺乏时序电路,除法运算需以商…余形式实现。本文将带你深入并行除法器的设计思路,巧妙利用减法器、与门修正和异或门标记,精准计算出商与余数。

以上是7÷2=3.....1和7÷4=1....3

前言:

由于游戏机制限制,无法显示小数且缺乏显示器,因此无法处理n÷0错误及小数运算,仅能实现被除数除以除数等于商余余数的形式。此外,因缺少时序电路与锁存结构,无法采用串行除法器和串行乘法器,只能选择并行方式实现相关运算功能。

并行除法器基于同时运算实现快速 division。

通过减法器连续相减实现三位数除法运算。

由于111除以1相当于7除以1,因此在设计时需考虑最多连续减7次的情况,实际操作中可能无需减满七次。

设计三位除法器需连续减七次,因此需要七个减法模块,对应七组每组三个的全加器结构。

商界应对之策

通过减法器中大数减小数结果的符号位为1、小数减大数符号位为0的特性,可判断减法执行次数,从而确定商的值。图中橙色模块即为连续进行七次减法运算的单元。

比如110÷010=011....0的计算

可按以下步骤操作:

110-010=1 100

100-010=1 010

010-010=1 0

共减了三次。

因此商数为011。

符号位含三个1。

将三个1相加(001+001+001=011),结果即为商011。

实际设计中,减法器处理小数减大数时存在缺陷,可能导致下次运算结果的符号位错误地变为1。

通过与门对首次相减后符号位为0的所有后续符号位进行处理,将其统一置为0,以纠正减法器运算中的错误结果,该修正过程即图中浅绿色模块所示部分。

将经过与门调整的符号位在黄色模块内相加,即可得出准确的商值。

这里是7÷2=3...1

余的解决:

观察上文,经与门修正后的符号位为

1 1 1 0 0 0 0

注意,最右侧最后一个1正下方的数值即为余数。

希望在余数对应位置标1,其余位置标0。

通过与门可筛选出所需余数。

具体该如何操作?

考虑过用异或门吗?

为这些符号位分配编号。

1 1 1 0 0 0 0

1 2 3 4 5 6 7

将12个符号位经异或门处理后输出为0,用于标识余数1;而减法器中第一组全加器的结果显示,实际正确余数应为3。

对23的符号位进行异或运算得0,用于标识余数2。

......

给67符号位用....

需注意,上述步骤中唯有对34进行特定操作可得1,该步对应的余数为3。

这样是否实现了仅用1来标记余数3的目标?(标记余数3的操作由图中深绿色区域的异或门完成。)

通过与门筛选所需余数,再经或门整合线路输出结果,图中白色与灰色区域即为对应模块。

成功解决了除法器的问题。

如有疑问请在评论区留言,欢迎共同探讨交流。

真的不给精帖吗?

最新文章