搜档网
当前位置:搜档网 › CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计_八位加法器实验报告
CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计课程设计报告

学院:******

专业:******

班级:******

姓名:Wang Ke qin

指导老师:******

学号:******

日期:2012-5-30

目录

一、设计要求..............................................错误!未定义书签。

二、设计思路..............................................错误!未定义书签。

三、电路设计与验证........................................错误!未定义书签。

(一) 1位全加器的电路设计与验证........................错误!未定义书签。

1) 原理图设计......................................错误!未定义书签。

2) 生成符号图......................................错误!未定义书签。

3) 建立测试激励源..................................错误!未定义书签。

4) 测试电路........................................错误!未定义书签。

5) 波形仿真........................................错误!未定义书签。

(二) 4位全加器的电路设计与验证........................错误!未定义书签。

1) 原理图设计......................................错误!未定义书签。

2) 生成符号图......................................错误!未定义书签。

3) 建立测试激励源..................................错误!未定义书签。

4) 测试电路........................................错误!未定义书签。

5) 波形仿真........................................错误!未定义书签。

(三) 8位全加器的电路设计与验证........................错误!未定义书签。

1) 原理图设计......................................错误!未定义书签。

2) 生成符号图......................................错误!未定义书签。

3) 测试激励源......................................错误!未定义书签。

4) 测试电路........................................错误!未定义书签。

5) 波形仿真........................................错误!未定义书签。

6) 电路参数........................................错误!未定义书签。

四、版图设计与验证........................................错误!未定义书签。

(一) 1位全加器的版图设计与验证........................错误!未定义书签。

1) 1位全加器的版图设计............................错误!未定义书签。

2) 1位全加器的DRC规则验证........................错误!未定义书签。

3) 1位全加器的LVS验证............................错误!未定义书签。

4) 错误及解决办法..................................错误!未定义书签。

(二) 4位全加器的版图设计与验证........................错误!未定义书签。

1) 4位全加器的版图设计............................错误!未定义书签。

2) 4位全加器的DRC规则验证........................错误!未定义书签。

3) 4位全加器的LVS验证............................错误!未定义书签。

4) 错误及解决办法..................................错误!未定义书签。

(三) 8位全加器的版图设计与验证........................错误!未定义书签。

1) 8位全加器的版图设计............................错误!未定义书签。

2) 8位全加器的DRC规则验证........................错误!未定义书签。

3) 8位全加器的LVS验证............................错误!未定义书签。

4) 错误及解决办法..................................错误!未定义书签。

五、设计总结..............................................错误!未定义书签。

一、设计要求

本次设计要求实现一个8位的加法器,通过从前端到后端的设计过程,了解数字集成电路设计流程,熟悉Linux系统及其相关软件icfb的使用,加深对数字集成电路前端设计的认识。

二、设计思路

基本单元选用复杂cmos电路实现的一位全加器,采用pmos与nmos网络完全对偶的mirror型,将四个1位全加器级联成一个4位加法器,再将两个4位全加器级联成一个8位全加器。

Figure2-11位加法器级联图

如图所示,四个1位加法器级联成一个4位加法器的级联图。这种电路的好处是将每前一级的Cin与后一级的Cout直接级联,连接比较方便,电路比较好设计。版图设计也相对较简单,画出一位全加器的版图,多位全加器的版图就迎刃而解。由于采用直接级联,前一级的输出延时要累加到后一级的输入进位中,最后会导致级联越多,延时越多。为了提高性能,可以采用曼彻斯特进位链或是进位旁路。由于是初次接触icfb,对版图还不是太了解,本次试验采用最简单的直接级联形式。

三、电路设计与验证

(一)1位全加器的电路设计与验证

1)原理图设计

Figure3-1 1位全加器的原理图(镜像型)

如图所示,为采用镜像型1位全加器的原理图。其中A、B为两个输入信号也即两个一位加数,Cin为前一位的进位输入信号,Co为当前的进位输出信号,So为和输出信号。

2)生成符号图

Figure3-2 1位全加器的符号图

如图所示,为检查并保存1位全加器原理图后生成的符号图,左侧为输入信号A、B、Cin,右侧为输出信号,Co和So。

3)建立测试激励源

为了验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-31位全加器的测试激励

如图所示,为用verilog编写的1位全加器的测试激励。初始状态三个输入信号都设为1,之后给A、B、Cin赋值三个不同频率的脉冲信号,能遍历三个输入中,全0、全1、两个1、一个1的所有情况。

4)测试电路

Figure3-4 1位全加器的测试电路(模拟)

Figure3-51位全加器的测试电路(数模混合)

如图,、所示,为1位全加器的测试电路,为加模拟信号激励,为加数字信号激励。从中比较可以看出,当输入信号较多时,才用数目混合测试要比采用模拟激励测试要方便,电路会简单些。所以在接下来的4位全加器和8位全加器测试电路中,均采用数模混合方式。

5)波形仿真

Figure3-6 1位全加器的仿真波形a

Figure3-71位全加器的仿真波形b

如图,、所示,为1位全加器的仿真波形图。从图中可以看出,仿真波形结果与真值表相符合,从图中可以看出1位全加器的延时为.

(二)4位全加器的电路设计与验证

1)原理图设计

Figure3-84位加法器的原理图

如图所示,为4位加法器的原理图设计。4位加法器采用4个1位加

法器直接串联,前一级的输出直接连到下一级的输入。左侧为四位输入信号A[3:0]、B[3:0]和进位输入Cin,右侧为四位输出信号D[3:0]和进位输出Co.

2)生成符号图

Figure3-94位加法器的符号图

如图所示,为检查并保存4位全加器原理图后生成的符号图,左侧为输入信号A[3:0]、B[3:0]、Cin,右侧为输出信号,Co和D[3:0]。

3)建立测试激励源

为验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-104位全加器的测试激励

如图所示,为用verilog编写的4位全加器的测试激励。初始状态进位输入设为0,a[3:0]设为1001,b[3:0]设为0111;之后分别给每一位加数不同周期的脉冲信号,使得激励信号能够遍历所有的情况。

4)测试电路

Figure3-114位全加器的测试电路(数模混合)

如图所示,为4为全加器测试电路,采用数目混合形式。从图中可以看出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲,简洁、方便。

5)波形仿真

Figure3-124位全加器的仿真波形

如图所示,为4为全加器的仿真波形图,从图中可以看出,仿真波形结果与4位全加器真值表相符合。其中,关键路径上的延时为,延时较大,这与每

一级输出都加入一个反相器有很大关系。

(三)8位全加器的电路设计与验证

1)原理图设计

Figure3-134位加法器的原理图

如图所示,为8位加法器的原理图设计。8位加法器采用2个4位加法器串联,前一级的输出直接连到下一级的输入。其中A[7:0]、B[7:0]分别为八位输入信号,Cin为进位输入信号,D[7:0]为输出信号,Co为进位输出信号。

2)生成符号图

Figure3-148位加法器的符号图

如图所示,为检查并保存8位全加器原理图后生成的符号图,左侧为两个八位的输入信号A[7:0]、B[7:0]和进位输入信号Cin,右侧为A[7:0]与B[7:0]的和输出信号D[7:0]和进位输出信号Co。

3)测试激励源

为了验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-158位全加器的测试激励

如图所示,为用verilog编写的8位全加器的测试激励。初始状态进位输入设为0,a[7:0]设为,b[7:0]设为;之后分别给每一位加数不同周期的脉冲信号,进位输入Cin设置为周期脉冲信号,使得激励信号能够遍历所有的情况。

4)测试电路

Figure3-168位全加器的测试电路(数模混合)

如图所示,为8位全加器测试电路,采用数模混合形式。从图中可以看

出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲。当输入信号数目比较大时,采用数模混合方式更加有效。

5)波形仿真

Figure3-178位加法器的仿真波形a

Figure3-188位加法器的仿真波形b

Figure3-198位加法器的仿真波形c

如图、、所示,为8位全加器的仿真波形,电路关键路径为从Cin到Co 的路径,延时为。

Figure3-20关键路径上的最大延时波形

如图所示,为Cin到Co路径上的最大延时波形图。当A[7:0]=8’hff,B[7:0]=8’h00,Cin=1时候,测出Cin和Co的状态转换时间差即为关键路径上的最大延时。从图中可以看出,关键路径上的最大延时为=。

Figure3-21关键路径的上升时间波形

如图所示,为关键路径上的上升时间波形图,从图中可以看出,上升时间为。

Figure3-22关键路径的下降时间波形

如图所示,为关键路径上的下降时间波形图,从图中可以看出,下降时间为。下降时间比上升时间小的原因可能是pmos比nmos管速度慢。

6)电路参数

************************************************************************

* auCdl Netlist:

*

* Library Name: wangkeqin2

* Top Cell Name: 8_full_adder

* View Name: schematic

* Netlisted on: May 25 04:46:15 2012

************************************************************************

*.EQUATION

*.SCALE METER

*.MEGA

*.GLOBAL gnd!

+ vdd!

*.PIN gnd!

*+ vdd!

************************************************************************

* Library Name: wangkeqin2

* Cell Name: 1_full_adder

* View Name: schematic

************************************************************************

.SUBCKT 1_full_adder A B Cin Co So

*.PININFO Co:O So:O A:B B:B Cin:B

Mpmos_3p315 So net90 vdd! vdd! pmos_3p3 W=2u L= M=

Mpmos_3p314 net90 B net13 vdd! pmos_3p3 W=3u L= M=

Mpmos_3p313 net13 A net17 vdd! pmos_3p3 W=3u L= M=

Mpmos_3p312 net17 Cin vdd! vdd! pmos_3p3 W=3u L= M=

Mpmos_3p311 net90 net114 net34 vdd! pmos_3p3 W=4u L= M=

Mpmos_3p310 net34 Cin vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p39 net34 B vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p38 net34 A vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p37 net114 Cin net41 vdd! pmos_3p3 W=4u L= M=

Mpmos_3p30 net41 A vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p31 net41 B vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p36 net114 A net53 vdd! pmos_3p3 W=4u L= M=

Mpmos_3p35 net53 B vdd! vdd! pmos_3p3 W=4u L= M=

Mpmos_3p34 Co net114 vdd! vdd! pmos_3p3 W=2u L= M=

Mnmos_3p315 So net90 gnd! gnd! nmos_3p3 W=1u L= M=

Mnmos_3p314 net66 Cin gnd! gnd! nmos_3p3 W= L= M=

Mnmos_3p313 net70 B net66 gnd! nmos_3p3 W= L= M=

Mnmos_3p312 net90 A net70 gnd! nmos_3p3 W= L= M=

Mnmos_3p311 net86 Cin gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p310 net86 B gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p39 net86 A gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p38 net90 net114 net86 gnd! nmos_3p3 W=2u L= M=

Mnmos_3p37 Co net114 gnd! gnd! nmos_3p3 W=1u L= M=

Mnmos_3p36 net98 B gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p35 net114 A net98 gnd! nmos_3p3 W=2u L= M=

Mnmos_3p32 net110 B gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p31 net110 A gnd! gnd! nmos_3p3 W=2u L= M=

Mnmos_3p30 net114 Cin net110 gnd! nmos_3p3 W=2u L= M=

.ENDS

************************************************************************

* Library Name: wangkeqin2

* Cell Name: 4_full_adder

* View Name: schematic

************************************************************************

.SUBCKT 4_full_adder A0 A1 A2 A3 B0 B1 B2 B3 Cin Co D0 D1 D2 D3

*.PININFO A0:I A1:I A2:I A3:I B0:I B1:I B2:I B3:I Cin:I Co:O D0:O D1:O D2:O *.PININFO D3:O

XI3 A0 B0 Cin net6 D0 / 1_full_adder

XI2 A1 B1 net6 net11 D1 / 1_full_adder

XI1 A2 B2 net11 net16 D2 / 1_full_adder

XI0 A3 B3 net16 Co D3 / 1_full_adder

.ENDS

************************************************************************

* Library Name: wangkeqin2

* Cell Name: 8_full_adder

* View Name: schematic

************************************************************************

.SUBCKT 8_full_adder A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 Cin Co D0 + D1 D2 D3 D4 D5 D6 D7

*.PININFO A0:I A1:I A2:I A3:I A4:I A5:I A6:I A7:I B0:I B1:I B2:I B3:I B4:I *.PININFO B5:I B6:I B7:I Cin:I Co:O D0:O D1:O D2:O D3:O D4:O D5:O D6:O D7:O

XI1 A0 A1 A2 A3 B0 B1 B2 B3 Cin net51 D0 D1 D2 D3 / 4_full_adder

XI0 A4 A5 A6 A7 B4 B5 B6 B7 net51 Co D4 D5 D6 D7 / 4_full_adder

.ENDS

四、版图设计与验证

(一)1位全加器的版图设计与验证

1)1位全加器的版图设计

Figure4-1 1位全加器的版图

如图所示,为1位全加器的版图设计,版图设计也采用nmos和pmos完全对称的镜像网路设计,上部分为pmos下部分为nmos。pmos放一起,nmos放一起,尽量减少版图面积,和缩短布线长度。从图中可以看出版图面积约为*=,面积比较小。

2)1位全加器的DRC规则验证

Figure4-2 1位全加器版图的DRC验证

D RC验证是为了检验设计的版图是否满足设计规则检查。如图所示,为1位全加器版图的DRC验证结果。从图中可以看出,最后DRC的结果又5个错误,都是金属密度的错误。这些错误在集成电路前端设计阶段可以忽略,在后端设计中可以通过填充虚拟金属或是dummyfill来弥补。

3)1位全加器的LVS验证

Figure4-3 1位全加器的LVS验证结果

LVS检查是为了验证所画的版图和原理图是否匹配。如图所示,为1位全加器的LVS验证结果,从图中可以看出,1位全加器的版图和原理图匹配,满足LVS验证。

4)错误及解决办法

1)NWELL间距过小

解决办法:将所有的pmos管都用一块大的NMELL区包住。

2)LVS没通过但显示0个错误提示

可能是由于vdd和gnd标签没有打,或是标签没有用相应的金属层标签来标注。

解决办法:加上vdd!和gnd!用相应的金属标示层标记vdd!与gnd!后即通过lvs,

3)Lvs时cmos管模型不匹配

出现28个管子模式不匹配的问题,是由于从原理图中提取的netlist 网表中的mos管类型为PM或是NM,而版图中为pmos_3p3和nmos_3p3。

解决办法:修改网表。在lvs工作路径下用vi编辑器打开相应的网表文件。通过指令“: %s / NM / nmos_3p3 /”将网表中的所有的NM全部替换为nmos_3p3,再用命令“: %s / PM / pmos_3p3 /”将网表中所有的PM都替换成pmos_3p3。之后按Esc键退出编辑模式,再通过命令“:wq”保存并退出vi编辑模式。在LVS的输入设置选项中把“从原理图输出网表”选项去掉,再进行LVS即通过检查。

(二)4位全加器的版图设计与验证

1)4位全加器的版图设计

Figure4-4 4位全加器的版图

如图为4位全加器的版图设,直接调用一位全加器的版图单元,将4个一位全加器级联成一个4位全加器。从图中可以看出,4位全加器的面积约为*= um2。

2)4位全加器的DRC规则验证

Figure4-5 4位全加器的DRC验证结果

如图所示,为4位全加器的DRC验证结果,从图中可以看出4位全加器的设计满足DRC规则验证。

3)4位全加器的LVS验证

Figure4-6 4位全加器的LVS验证结果

如图所示,为4位全加器的LVS验证结果,从图中可以看出,4位全加器的设计原理图和版图对应,满足LVS验证。

4)错误及解决办法

1)DRC时显示0个error

原因是由于四个1位全加器的vdd及gnd没有全接在一起。

解决办法:把四个vdd和gnd用金属1连在一起就可以解决问题。

2)Lvs时A2,B2,A3,B3连接上的栅极连线都没有与原理图对应上

解决办法:四个1位全加器串联时,打标签时候把A2、A3、B2、B3写反了,改正过来即可解决问题。

(三)8位全加器的版图设计与验证

1)8位全加器的版图设计

Figure4-7 8位全加器的版图

如图所示,为8位全加器的版图设计。调用两个4位全加器版图级联,生成一个8位全加器。为了方便连接,将下面的一个4位全加器的版图翻转180度,使上面4位全加器的输出接到下面的输入。从图中可以看出,8位全加器的版图面积约为*= um2。

2)8位全加器的DRC规则验证

Figure4-8 8位全加器的DRC验证结果

如图所示,为8位全加器的DRC验证结果,从图中可以看出8位全加器的设计满足DRC规则验证。

3)8位全加器的LVS验证

Figure4-9 8位全加器的LVS验证结果

如图所示,为8位全加器的LVS验证结果,从图中可以看出,8位全加器的设计原理图和版图对应,满足LVS验证。

4)错误及解决办法

LVS时,missing net Net30

解决办法:由于8位全加器的版图是由两个四位全加器级联而成,为了连接方便把下面的4位全加器翻转了180度,gnd放在中间,最小间隔,两个gnd忘记用金属1连接了。连接起来再run LVS即可解决问题。

五、设计总结

实验里我们通过一个8位加法器的设计熟悉了cadence软件icfb的使用和集成电路前端设计的整体流程。第一次画8位全加器,由于没有经验,管子排列相当凌乱,面积比较大,布线杂乱无章,虽然第一次功能实现了,但非常不科学。之后又从新画了一遍,第二次采用镜像行的MOS管,借鉴第一次的经验,第二次画图就比较快,而且占用面积也较小,功能仿真也比较好。

完成这次设计,花费的时间挺多的,经常在实验室一画就是一天,遇到了很多问题,也请教了老师和好多同学。完成了8位全加器的设计还真的挺有收获的,由于第一次做这样门级的电路还是有很多不完善的地方:比如对电源和地的处理;没有每隔3-4级加一个缓冲级的buffer,导致延时较大;而且由于时间的问题没有做进位旁路和曼彻斯特进位链使得电路实际上就是八级1位加法器直接相连,最后的延迟时间达到了,以后有机会会重新完善电路的设计。

相关主题