第5章基于层次化设计的8位并行乘法器的设计此设计共分为4个层次:由顶层到低层依次是:带进位运算的顶层模块,8位并行乘法器模块,4位乘法器模块,2位乘法器模块,输入模块。
下面,将由低层到顶层开始说明:5.1 输入模块的设计原理图设计如下:x,y为数据输入;p,c为中间和和中间进位输入;p1,c1为部分积输出图5-1 输入模块的原理图设计使用Cadence中的使用Virtuoso Layout Editor工具生成版图:图5-2 输入模块的版图设计使用DRC命令检查无设计错误后,使用extract命令提取带有寄生参数的提取使用LVS命令比较原理图和提取的寄生参数图,可得如下结果:图5-3 输入模块的LVS结果由结果可知,所设计的版图和原理图相匹配,并且,所设计的版图中共使用了48个晶体管,其中N、PMOS各占一半。
5.2 两位乘法器模块的设计使用Cadence中的schematic composer工具进行原理图工具设计原理图如下:图5-4 两位乘法器模块原理图使用Cadence中的使用Virtuoso Layout Editor工具生成版图:图5-5 两位乘法器模块版图设计使用DRC命令检查无设计错误后,使用extract命令提取带有寄生参数的提取使用LVS命令比较原理图和提取的寄生参数图,可得如下结果:图5-6 两位乘法器模块的LVS结果由LVS结果可知,所设计的版图和原理图相匹配。
此设计中,共使用了192个晶体管,N、PMOS各占一半。
5.3 四位乘法器模块的设计原理图设计如下:使用Cadence中的使用Virtuoso Layout Editor工具生成版图:图5-8 四位乘法器模块版图设计使用DRC命令检查无设计错误后,使用extract命令提取带有寄生参数的提取使用LVS命令比较原理图和提取的寄生参数图,由图5-9可以看出,所设计的版图和原理图相匹配。
可以看出,设计中共使用了768个晶体管。
图5-9 四位乘法器模块LVS结果5.4 进位运算模块的设计原理图设计:图5-10 进位运算模块的原理图设计图5-10中的MUX为2选1多路选择器,choose信号控制选择输出为高或者为X7和Y7,最终的进位运算结果也通过choose选通,choose为高时做无符号运算,为低时做有符号运算。
5.5 八位乘法器模块的设计使用Cadence中的schematic composer工具进行原理图工具设计原理图如下:其中的大框为四位乘法器模块,小框为加法器设计方案二图5-11 八位并行乘法器的原理图设计将原理图封装生成symbol图:其中p[14..0]位中间积输入,c[7..0]为中间进位输入图5-12 基于层次化设计的八位并行乘法器symbol图使用Verilog-XL对其进行功能仿真可得如下波形:图5-13 基于层次化设计的八位并行乘法器部分功能仿真图表5-1 基于层次化设计的八位并行乘法器部分仿真结果X[7..0](H) 0AY[7..0](H) 06 07 08 09 0A 0B 0C 0D Z[7..0](H) 003C 0046 0050 005A 0064 006E 0078 0082Z[7..0](D) 60 70 80 90 100 110 120 1305.6 带进位运算的八位并行乘法器的设计使用Cadence中的schematic composer工具进行原理图工具设计原理图如下:图5-14 带进位运算的八位并行乘法器原理图当choose信号(/net43)为高时,乘法器做有符号运算,当choose为低时,做无符号运算,即有符号运算:11111111111111110011111100000001⨯=, 无符号运算:1111111111111111111111000000001⨯=。
此2种运算由图5-16显示。
将原理图生成symbol,建立测试原理图如下:使用Cadence中的spectre仿真工具进行仿真,得到如下波形:图5-16 带进位运算的八位并行乘法器仿真波形图使用Virtuoso Layout Editor工具生成版图:图5-17 带进位运算的八位并行乘法器的版图设计使用DRC命令确认无规则错误后,对版图进行寄生参数提取,并使用LVS命令对比所提取的寄生参数图和原理图,得到结果如下:图5-18 带进位运算的8位并行乘法器的LVS结果由LVS结果可以看出,所设计的版图和原理图相匹配。
而且在设计中,一共使用了3462个晶体管。
占用的芯片面积为:2⨯=。
581.850580.800337938.48um um um第6章八位并行乘法器的设计的优化在5.6节中可以看到,所设计的层次化乘法器只采用了全加器(CSA、设计方案二)作为基本器件,而且由可重复调用的单元构成,有很多冗余的输入,占用了很多芯片面积,拖慢了运算速度,因此,对5.6中的设计进行优化,采用了半加器,CSA 和加法器设计方案二的组合,得到如下原理图:图6-1 优化后的8位并行乘法器模块当choose信号(/net43)为高时,乘法器做有符号运算,当choose为低时,做无符号运算,即有符号运算:11111111111111110011111100000001⨯=, 无符号运算:1111111111111111111111000000001⨯=。
此2种运算由图6-5显示。
将原理图生成symbol:图6-2 优化后的8位并行乘法器的symbol图使用Verilog-XL对其进行功能仿真,波形如下:图6-3 优化后的8位并行乘法器部分功能仿真图建立测试原理图如下:图6-4 优化后的8位并行乘法器测试原理图使用Cadence中的spectre仿真工具进行仿真,得到如下波形:图6-5 优化后的8位并行乘法器仿真波形图使用Virtuoso Layout Editor 工具生成版图:图6-6 优化后的八位并行乘法器版图使用DRC命令确认无规则错误后,对版图进行寄生参数提取,并使用LVS命令对比所提取的寄生参数图和原理图,得到结果如下:图6-7 优化后的八位并行乘法器的LVS结果可以看出,所设计的版图和原理图相匹配。
设计中共使用了2562个晶体管,占用的芯片面积为2⨯=。
525523274575um um um第7章设计比较在这一章节中,将对比所设计的4位串行和并行乘法器,以及对比优化前的8位并行乘法器的后端仿真(版图仿真),并对它们的面积和延时进行分析。
7.1 四位串行乘法器和四位并行乘法器的比较在前一章中给出了所设计的4位串行乘法器和4位并行乘法器的版图,在这一节中,将对这两个的延时和面积进行分析比较。
为了容易比较2个设计,使用Cadence中的schematic composer工具生成如下测试图:4bit为串行乘法器,下面一个四位并行乘法器图7-1 四位串行和并行乘法器的比较测试原理图通过创建新的config view,将所设计的版图连接到原理图中,为了易于比较波形输出,选择使用方波发生器产生了相同的输入(X=1111,Y=1111)。
使用Cadence中的spectre仿真工具进行仿真,得到如下波形:zb为并行乘法器输出,zm位串行乘法器的输出图7-2 四位串行乘法器和四位并行乘法器的比较波形在此,采集图中的数据来比较输出由0翻转到1时的延时情况:(延时=翻转时间(ps,上升到2.5V的时间)-0.025ps(输入上升到2.5V的时间))表7-1 两个四位乘法器的延时比较单位(ps)翻转时间(并行)延时(并行)翻转时间(串行)延时(串行)Zm7 1270 1245 Zc7 1820 1795 Zm6 2350 2325 Zc6 2480 2455 Zm5 2580 2555 Zc5 3470 3445 Zm4 X X Zc4 X X Zm3 X X Zc3 X X Zm2 X X Zc2 X X Zm1 X X Zc1 X X Zm0 220 195 Zc0 220 195图中X代表此输出此时为低,暂不比较由表7.1可以看出,在输入X=1111和Y=1111时,四位并行乘法器的高位输出都比串行的快,zm0和zc0都为一级与门延时,所以是相同的,可以说,四位并行乘法器的速度比四位串行乘法器快。
面积方面,由第三章可以知道,所设计的四位串行乘法器的面积为:2⨯=,四位并行乘法器的面积为:279278.477673.6u m u m u m2um um um⨯=。
晶体管使用数量上看(见第三章四位串行乘法器279278.477673.6和四位并行乘法器的LVS结果图),四位串行乘法器共使用了486晶体管,而并行乘法器共使用了456个晶体管。
综上所述,可以得出结论,四位并行乘法器的性能比四位串行乘法器的性能高。
7.2 优化前后的八位并行乘法器的比较在这一小节中,将对前一章节所设计的八位并行乘法器优化前和优化后的性能进行比较。
使用Cadence中的schematic composer工具进行原理图工具设计测试原理图如下:图7-3 优化前后的八位并行乘法器比较通过创建新的config view,将所设计的版图连接到原理图中,为了易于比较波形输出,选择使用方波发生器产生了相同的输入(X=11111111,Y=11111111)。
使用Cadence中的spectre仿真工具进行仿真,得到如下波形:图7-4 两个八位并行乘法器的输出比较在此,采集图7-4中的数据来比较输出由0翻转到1时的延时情况:(延时=翻转时间(ps ,上升到2.5V 的时间)-0.025ps (输入上升到2.5V 的时间))由波形图中的数据可以得到:做无符号位运算时(choose=1)表7-2 无符号运算时八位并行乘法器的延时比较单位(ps)翻转时间(优化)延时(优化)翻转时间(优化前)延时(优化前)Zm15 2440 2415 Z15 3640 3615 Zm14 2950 2925 Z14 3100 3075 Zm13 3030 3005 Z13 3400 3375 Zm12 3020 2995 Z12 3620 3595 Zm11 3090 3065 Z11 3640 3615 Zm10 4410 4380 Z10 4570 4545 Zm9 4730 4705 Z9 5760 5735 Zm8 X X Z8 X X Zm7 X X Z7 X X Zm6 X X Z6 X X Zm5 X X Z5 X X Zm4 X X Z4 X X Zm3 X X Z3 X X Zm2 X X Z2 X X Zm1 X X Z1 X X Zm0 224 199 Z0 1050 1025 做有符号位运算时(choose=1):输入延时为4010ps表7-3 有符号运算时八位并行乘法器的延时比较单位(ps)翻转时间(优化)延时(优化)翻转时间(优化前)延时(优化前)Zm15 X X Z15 X X Zm14 X X Z14 X X Zm13 4300 290 Z13 4300 290 Zm12 4320 310 Z12 4330 320 Zm11 4330 320 Z11 4330 320 Zm10 4330 320 Z10 4430 420 Zm9 4320 310 Z9 4520 510 Zm8 4450 440 Z8 4540 530 Zm7 X X Z7 X X Zm6 X X Z6 X X Zm5 X X Z5 X X Zm4 X X Z4 X X Zm3 X X Z3 X X Zm2 X X Z2 X X Zm1 X X Z1 X X Zm0 4020 10 Z0 4100 90由表7-2可以看出,修正后的乘法器运算速度比修正前快,二者输出稳定时,修正后的乘法器比修正前快了573547051030-=(在此仿真中,zm9和z9输ps ps ps出是最慢的,因此它们的延时时间决定了乘法器的运算速度)。