6位补码阵列乘法器运算电路设计

在vivado平台上用Verilog HDL语言编程
(需要有完整的代码)

img

分析普通情况下的6位补码阵列乘法器

前面已经讲了五位阵列乘法器的输入,现在讲输出该怎么连接

输出一共有两条线

上面那条线是XY都是正数或者都是负数的情况

X5和Y5经过异或门,如果都是正数或者都是负数,那么结果是0,这个结果输入进多路选择器,则选择上面那条路输出。

下面那条线是XY异号

所以将结果送进求补器

最后分线器自己调一下位宽,得到P‘(为什么是P’呢?因为这只是考虑到了普通情况,并不是最终答案,最后还要结合特殊情况,经过一定处理才能得出最完美的答案)
得到P‘的分线器位宽如下图所示

特殊情况

在测试时,会发现一些特殊情况,按照之前设计的电路并不正确,所以还要对此进行完善。好吧其实是因为做了这个会加分我才做的。

实验要求说要单独写那就单独再来个电路呗
先总体看一下特殊情况的电路!

很显然,分成两部分。左边是根据choose的数值,来判断最终输出P。右边是判断choose的大小。choose一共有7个值:
000:最正常的一种了,又没有0,又没有-32

001:X=0,Y不等于-32,P=0

010:X=-32,Y为负数

011:X=-32,Y=0;

100:X为负数,Y=-32

101:X=0,Y=-32,P=0

110:X=-32,Y=-32 P=010000000000