background
这学期在的计算机组成原理的一个project,让用logisim构建一个补码阵列乘法器,看了同学推荐的mooc上老师的讲解才慢慢搞懂,对新手挺友好的,课程名称为计算机硬件系统设计,在这里附上链接计算机硬件系统设计
具体的project
利用logisim构建一个6 * 6的补码阵列乘法器,具有十一位输出。
实现过程及原理
思路:首先对于补码的运算来说,关键就是要将符号位与数值位区分开来,如果这个数是一个正数,那么就直接用数值位进行相应的运算,然后前面在加上符号位即可,但如果这是一个负数的话,就需要特殊处理这个数值位,然后根据相应的逻辑再转化即可。
原理:
其中:
1. n位求补器:根据输入的6位补码的符号位决定我们要通过求补码之后的5位还是没有求过补码的原来的数值位。这个就可以用logisim中的5位求补器来实现。
2. 与门阵列与阵列乘法器:无符号5 * 5阵列乘法器,输出是10位需要用相应的与门阵列构建,具体原理如下:
实现结果:
3. 2n位求补器:将两个6位的补码做乘积,除开符号位,输出是10位,得到的结果是10位的乘积绝对值,所以当两个符号不同的补码相乘时,就需要用到一个10位的求补器,这两种结果就可以以符号位采用多路选择器来进行选择。
project的实现结果
6 * 6 的补码阵列乘法器:
备注
上面的原电路及资源均可在文章开始时附的课程链接中找到。