下载 App

除法器的设计思路

2021/07/121900 浏览攻略
TapTap
TapTap
以上是7÷2=3.....1和7÷4=1....3
前言:
由于游戏设计的问题(不能表示小数,并且没有显示器),所以不能解决n÷0报错以及除到小数的问题。所以只能解决被除数÷除数=商....余的形式。同时,因为这个游戏没有时序电路和锁存,所以不能使用串行除法器和串行乘法器,只能使用并行除法器和并行乘法器。
并行除法器的设计原理:
利用减法器连续减,以三位除法器为例。
因为有111÷1的存在(7÷1),所以必须设计到连续减7次。(注意:实际可能不会减到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。
但是在实际设计中,由于减法器小数减大数的BUG,可能会让下一次减法运算后得到的符号位为1。
所以需要用与门给第一次减得符号位为0后的全部符号位进行整理,使后面的符号位都变为0,从而修正减法器产生的错误。(与门修正就是下图中浅绿色内的模块)
所以只要将用与门修正过的符号位加在一起(下图中黄色内模块),就能得到正确的商。
TapTap
这里是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的过程就是图中深绿色内的异或门完成的。)
最后用与门选择出我们想要的余数,再用或门整理线路输出余就行。(图中白色和灰色内的模块)
这样就成功解决了除法器。
有疑问可以在评论区留言,欢迎在评论区一起讨论。
确定不给我精帖吗?[嗒啦啦2_起了杀心]
猜你想搜
与门 除法器设计
01:35
手搓计算器截图
手搓计算器
#逻辑门 #与门 重新做的四则计算器 做了一些布线的优化,整体更美观 目前只能算加减法 乘除法要之后才能完成
25 赞
6 回复
与非门设计(含部分剧透)截图
与非门设计(含部分剧透)
可以用与非门做出所有关卡 自取喵~ ①非门②与门③或门④或非门⑤异或门⑥同或门⑦半加器⑧全加器 在这里,本喵全部使用与非门(第一章与非门关卡,第三章,第四章二位加法器,四位加法器省略。) 注:后面太难了,肝不动了。 附⑨二位加法器,⑩四位加法器答案,自己拼吧 ٩(º﹃º٩) 记得点赞ദ്ദി ˉ͈̀꒳ˉ͈́ )✧ 喵呜~ (还有没有大佬可以简化全加器?目前我是我看到的所有帖子中最少的[表情_泪目]
15 赞
4 回复
01:06
想学计算机/数电不容错过!别样沙盒建造,用基础元件手搓计算机截图
想学计算机/数电不容错过!别样沙盒建造,用基础元件手搓计算机
为高考毕业生推的一个游戏,其他有基础或者感兴趣的xdm也可以试试,无氪无广。 #宝藏游戏安利派对
101 赞
11 回复
00:06
如何通过第四章第一节‘半加器’?截图
如何通过第四章第一节‘半加器’?
如何通过第四章第一节‘半加器’? 题目大意是——左边两个数的和…… 大致分两步(因为是要算个二进制数……要想直接求得结果,直接把给出的数字连到结果上?好像不行,没办法直接求,那要怎么把给出的数字算成蓝色数字呢?结果好难求啊,我内心一下子就能算出来了,但要我表达这个结果,简直是强人所难……嗯,那有什么方法呢???好像有了,它不是要我把答案写出来吗,平时上学我们写数字比如681,不也是先写百位6,再写
11 赞
7 回复
四位计算器(加减乘除)截图
四位计算器(加减乘除)
P1自上往下为加法 减法 乘法 P2为除法,最右侧输出从上往下分别为商和余数,中间的输出单纯是为了理线 纯自己研究的,啥也没学过,认为不好的勿喷
7 赞
4 回复
4-4最简电路截图
4-4最简电路
看论坛里兄弟们发的都有点复杂和麻烦,就把我的发了上来 原理很简单,如图: 要注意的是,游戏中的加和输出与进位输出是倒着的
7 赞
5 回复
四位二进制减法器截图
四位二进制减法器
1、二进制减法运算本身比较特别,自己看别人做的常常理解不了,所以就自己捣鼓了两天才按照自己的思路弄出来。🤡题外话:自己大学学的数字电路都基本忘光了,不得已得去重新学点基础[表情_捂脸哭]。 2、我制作的是两个四位正数二进制相减的运算逻辑电路,可以大数减小数,也可以小数减大数。 3、我的减法器是基于二进制减法运算规则制作的,也就是涉及到二进制的反码和补码,因为二进制减法是通过减数取反+1再与被减数相
8 赞
1 回复
最简洁的4位加法器截图
最简洁的4位加法器
2 赞
2 回复
减法器和乘法器的设计思路。截图
减法器和乘法器的设计思路。
乘法器 减法器 一、乘法器讲解: 值得注意的是,与门本身就有乘法的功能 并且与门本身就能计算1位乘法。 因为与门的真值表 00 0→0*0=0 10 0→1*0=0 01 0→0*1=0 11 1→1*1=1 那么我们要怎么解决位数高一些的乘法? 我们先看二进制竖式是怎么计算高位乘法的。 比如一个7*7的二进制竖式:(从左往右1248...) 111 111 * -------- 111 第一组与
12 赞
6 回复
01:06
挑战用异或门而不用或门制造出一个或门截图
挑战用异或门而不用或门制造出一个或门
假如你的或门突然失灵了...
1 回复