一、设计要求
使用全加器或 G/P/CARRY/SUM 等逻辑并且全部采用静态CMOS电路实现16 位加法器,且进位采用线性进位选择实现。工艺采 0.35μm 工艺库中 3.3V 晶体管并采用 Hspice 进行仿真分析。
二、设计原理
在逐位进位加法器中,每一个全加器单元必须等待输入进位到达之后才能产生一个输出进位。而线性进位选择方法预先考虑进位输入两种可能的值,并提前计算出针对这两种可能性的结果。一旦输入进位的确切值已知,正确的结果就可以通过一个简单的多路开关级很容易地选出。但由于需要额外的进位路径和多路开关, 该方法的硬件开销要大于逐级进位,大约等于逐位进位结构的 30%。
![图1 线性进位选择加法器模块图——拓扑结构(关键路径以灰色显示)](https://i-blog.csdnimg.cn/direct/b23f603887f549e1a0863a2f3b44bdd8.png)
互补 CMOS 与传输管实现电路不同在于,它只允许原始输入加在栅极,而传输管的输入允许驱动栅端和源、漏端来实现逻辑功能。由此,采用传输管逻辑虽然可以节省晶体管数目,加大集成度,但与此同时在传输信号时,可能会有驱动不足的情况,可想而知,若是基于传输管来实现加法器功能,则在设计中应予以考虑驱动能力的问题。再将互补 CMOS 与传输门比较,后者是建立在 NMOS 和 PMOS 互补特性的基础上,使得传输门器件能够传强逻辑 0 和强逻辑 1,但如果多级传输门级联,也会有驱动不足的情况。现在全部基于静态互补 CMOS 电路来实现16位线性进位选择加法器,驱动能力问题相对较小。
三、模块设计
首先确定 PMOS和NMOS的宽长比,综合考虑对称性和面积问题,采用PMOS 和 NMOS 宽长比为 3:1 。取 L=0.35μm, Wn=1μm, Wp=3μm。
从底层设计考虑,整体电路尽可能地模块化,底层模块有反相器(INV)、与非门(NAND)、或非门(NOR)、异或门(EXOR)以及二选一数据选择器(MUX2)模块,并且设计完成之后需立即进行功能验证,部分截图如下所示:
![](https://i-blog.csdnimg.cn/direct/167b303d4b2f4ad4855d12e905fa9b1c.png)
![](https://i-blog.csdnimg.cn/direct/e8ed08c0b33347d7a4ddee52f9fd5b85.png)
![](https://i-blog.csdnimg.cn/direct/ba69d0d2d96344b4a35efa3ed08c8c1e.png)
![](https://i-blog.csdnimg.cn/direct/e66aabd0797040e7ab2202ba562dff23.png)
![](https://i-blog.csdnimg.cn/direct/bb085e97497f4f389fde345c23792ae3.png)
我们首先采用的结构是基于传统逻辑门的实现。在实现全加器的时候把进位和求和分开,原因是求和所用的进位输入是经过二路选择器之后的进位,所以把原来合在一起的全加器分成两个部分。故可以根据图 6 所列的二进制全加器逻辑关系式可以分别利用以上逻辑门的组合得到进位产生信号G、进位传播信号P、进位输出Cout以及和SUM,从而获得线性进位选择加法器的四位加法基础模块(具体结构如图 8 所示)。在后面设计整个加法器的单个模块时,根据其加法位数来用此基础模块拼接得到(具体结构如图9所示)。四位加法器的模块图如下:
![](https://i-blog.csdnimg.cn/direct/2898982300734546b19bba926f155b6e.png)
![](https://i-blog.csdnimg.cn/direct/9c5e5594618941858fedfc15913dcae1.png)
再根据图1所示电路拓扑结构以及图8所示的ADDER_4可以得到16位线性进位选择加法器的电路结构,将以上四位加法器模块级联即可,如下所示:
![](https://i-blog.csdnimg.cn/direct/b7253681d4454e5892b5059b564d55d2.png)
![](https://i-blog.csdnimg.cn/direct/dce9e18dceb0402ba24ffc6d3e733033.png)
四、功能验证
首先在传统逻辑门层面上使用VIVADO软件对如图10所示的16位线性进位选择加法器进行功能验证,验证波形图如图11所示,全方位验证需要检测2的32次方种结果(鉴于波形长度问题,只截取部分),显示均正确,接下来利用HSPICE软件进行晶体管级别的功能验证,采用直流验证方法。
![](https://i-blog.csdnimg.cn/direct/4fa47f129594448c92fa00a5fcd9992e.png)
![](https://i-blog.csdnimg.cn/direct/ff499624be7b486db09751696e23554c.png)
表1中选取了一些典型输入以及随机输入来进行功能验证,采用 Hspice 进行直流仿真分析,结果均正确。下图是其中一种仿真输出波形截图:
![](https://i-blog.csdnimg.cn/direct/75bd041a958d48119a298cc09914233a.png)
五、综合分析
1. 延时分析
通过调节调节仿真参数来测试在三种不同PVT边界条件下的延时,具体如表3所示,这里的关键路径延时是进位输入到求和输出最高位的延时。可以发现在最坏情况下的延时大约是最好情况下延时的两倍左右,而且可以反映温度对该CMOS电路的延时影响较大,特别是高温情况下延时将会增加。
![](https://i-blog.csdnimg.cn/direct/0d77453f18d941dd8b2c7918fc84b3fe.png)
2.尺寸优化
为了得到最优的尺寸比,我们固定NMOS的宽度,改变PMOS的宽度进行延时的测量。在HSPICE上采用0.35μm工艺库,电源电压为3.3V,测试固定NMOS宽长比为 2 μm ∕ 0.18 μm,PMOS沟道长度为0.35μm的时候,PMOS宽度在 0.5 − 6.00μm 范围内的延时,确定NMOS的宽长比为 2 μm / 0.35μm,PMOS的宽长比为 3 μm / 0.35 μm时延时最小,并且测量得到延时最优的尺寸比是2:3。
![](https://i-blog.csdnimg.cn/direct/b703ea51ffec4114b921ba652eeea512.png)
六、基于晶体管数目与镜像加法器的性能对比
1.线性进位选择加法器:
![](https://i-blog.csdnimg.cn/direct/84bcc51859ef4225a96c9c1c98375eaf.png)
![](https://i-blog.csdnimg.cn/direct/3b8c89a768dc4d58b2c5ee02274c1536.png)
2.镜像加法器:
![](https://i-blog.csdnimg.cn/direct/45d7ee1337ad4fd0bc6d0652d4c9b96b.png)
![](https://i-blog.csdnimg.cn/direct/0d04274b523f47e9a8f35389fa45a8ff.png)
![](https://i-blog.csdnimg.cn/direct/3cd2ddbc59bd4a6b960ff1dcff0c9940.png)
![](https://i-blog.csdnimg.cn/direct/585c779fa9d14e07b24cc781f133f8a5.png)
由上述表格分析可知,对于同样一个全加器的实现,镜像加法器在进位和求和部分也要分开来实现,它所使用的晶体管数目比基于逻辑门实现的要少,这意味着镜像加法器这一结构在实现全加器的时候面积优势很大,这正是由于镜像加法器取消反相门、门的PDN和PUN网络不再是对偶导致的。但在实现我们所需的进位选择加法器的时候,对晶体管数目的减少并不明显。可以看进位输出和求和的电路,两种方案需要的晶体管差得不多,基于逻辑门的求和电路用的晶体管甚至还要更少。另一方面,由于在基于逻辑门的实现中后级逻辑采用的是中间变量P和G,输入要驱动的晶体管数目其实更少。
所以通过在HSPICE上模拟测试不同PVT边界条件下两种实现方式的延时如表9所示,可以看到在不同PVT边界条件下,基于镜像加法器的延时反而比基于逻辑门的实现要长。
![](https://i-blog.csdnimg.cn/direct/37a844fa90e94e328f0dace0edf99278.png)
综上所述,镜像加法器相较于传统逻辑门方式实现进位选择加法器面积减少的不多但延时增大的比较多,对电路的优化程度并没有达到预期,而且镜像加法器不易于数字EDA软件逻辑综合实现。
七、设计总结
通过本课程设计,学习了Hspice软件的使用,进一步加深了对线性选择进位加法器和静态CMOS电路的理解。并且,在电路的设计及仿真过程中,能够运用学过的知识对出现的问题进行分析和改进,以及能够联想到已经学过的同样用CMOS电路实现的镜像加法器并与之比较。