(原创)基本标准单元的全定制设计--以与或非门(AOI221)为例

基本门电路与或非(AOI221)门设计

l 基于Cadence工具的full custom 设计流程概述

clip_image004[1]

Full custom 设计流程

Cadence定制设计工具包—DFII可以进行定制原理图输入,电路仿真和版图设计。

在本设计中主要用到

l Virtuoso Schematic Composer,用于原理图设计;

l Virtuoso Layout Editor,用于版图设计;

以及集成到Cadence中的:

l HSPICE工具,用于前仿真和后仿真;

l Calibre工具,用于设计验证;

clip_image006[1]

Cadence工具的定制流程

l AOICMOS组合逻辑

l AOI组合单元的种类及命名

AND-OR-INVERT (AOI) 门和OR-AND-INVERT (OAI)逻辑单元在CMOS基于单元库的设计中非常有效率,下图显示了AOI221和OAI321逻辑单元。指数“221”和“321”是指在AOI单元中,第一级与门中的输入信号的个数,“2”表示AOI第一级第一个与门有两个输入,“1”表示直接连到第二级单元。它们按从大到小排列,如Z = (A.B.C + D.E + F)'表示成AOI321,而不能用AOI123或其它的方式表示。类似的Z = (A.B + C + D)'可表示成AOI211等。

clip_image007[1]

复杂AOI组合单元的命名方法

l AOI系列门单元

下表给出了具有3个指数的AOI系列门单元(X代表着for AOI, OAI, AO, and OA cells).

Cell type 1

Cells

Number of unique cells

Xa1

X21, X31

2

Xa11

X211, X311

2

Xab

X22, X33, X32

3

Xab1

X221, X331, X321

3

Xabc

X222, X333, X332, X322

4

Total

14

The AOI family of cells with three index numbers or less.

l 推气泡法把AOI221设计成单级逻辑门单元

clip_image008[1]

推气泡法设计单级AOI221

l Virtuoso Schematic Editor工具设计原理图

l 启动Cadence 设计软件

先进行软件环境设置,主要包括:

.cshrc 文件的设置

.cdsenv 文件设置

.cdsinit 设置

cds.lib 文件的设置

可把具体的设置过程写成脚本,每次启动时运行此脚本即可。

然后启动Cadence,在cshell中运行:

icfb &

(icfb stands for Integrated Circuit Front to Back design,后缀&的作用:表示后台运行)

关掉“What’s New”窗口。

出现“icfb-log:/…”窗口(CIW:Command Interpreter Window)。

l 建立新库、新单元以及新视图(view):

在 CIW 中,File->New->Library,

在弹出的“New Library”窗口,Name 栏中:assignment

选中右下方:* Compile a new techfile

OK

查看 CIW窗口:Tools->Library Manager,在 Library中单击 std_cell。

在 Library Manager 窗口,File->New->Cellview,

在弹出的“Create New File”窗口 Cell Name 栏中,aoi221

Tool 栏中,选 Composer-Schematic

OK

clip_image010[1]

l 添加元件(实例 instance)

在弹出的“Virtuoso Schematic Editing:…”窗口中,左边为工具栏,选instance图标(或 i)

单击“Add instance”窗口Library栏最右侧 Browser,

弹出“Library Browser-…”窗口,Library选 analogLib,Cell 选nmos4, View选 symbol

鼠标回到“Add instance”窗口,Model name 栏:nch, width: 1.2u , Length: 400n,Hide

在“Virtuoso Schematic Editing:…”窗口, 鼠标左键单击一次,间隔一定距离再单击4次,

这样就增加了 5 个nmos4 元件,ESC。

仿照上述方法,增加 pmos4 元件。在“Add instance”窗口,Model name 栏:pch,

width: 400n , Length:400n;放置 5 个pmos4,ESC。(热键功能 fàfit,[à放大,] à缩小)

l 添加管脚(PIN)

选“Virtuoso Schematic Editing:…”窗口左边工具栏中的 Pin 图标(或 p)

在“Add Pin”窗口中,Pin Names:A,Direction 选 input, Usage 选 schematic,Hide

以同样的方式放置 4 个输入 PIN,B, C, D, E

p,在“Add Pin”窗口中, Pin Names: out, Direction选 output, Usage选 schematic,在“Virtuoso

Schematic Editing:…”窗口放置输出 PIN,

l 添加电源和地:

i , (或单击instance 工具图标)

弹出“Add instance”窗口,Browse,Library选 analogLib,Cell栏:vdd, View选 symbol

在“Virtuoso Schematic Editing:…”窗口放置 vdd,

回到“Add instance”窗口,Browse,Cell 栏:gnd, 在“Virtuoso Schematic Editing:…”窗口放置 gnd, ESC , Cancel掉“Add instance”窗口。

l 摆放元件并加网线:

参照下图放好元件(symbol):(移动用 m键,删除用 Delete键,取消命令用 ESC 键)

选“Virtuoso Schematic Editing:…”窗口左边工具栏中的 Wire(narrow),连好网线,ESC

clip_image012[1]

AOI221原理图

为防止连线过于凌乱,A,B,C,D,E 输入与各MOS管间用label连接。

l 层次化设计——symbol 生成

进入“Virtuoso Schematic Editing:std_cell aoi221 schematic”窗口。

Design -> Create Cellview->From Cellview

在 Cellview From Cellview窗口,From View Name 栏为:schematic,Tool / Data Type 栏为

Composer-Symbol。

OK

在“Symbol Generation Options”窗口,单击 Load/Save 按纽,OK

出现“Virtuoso Schematic Editing:std_cell aoi221 symbol”窗口,Design->Check and Save

clip_image014[1]

AOI221 Symbol

l HSPICE Pre-Simulation

l 创建激励信号电路模块

在 CIW 窗口(icfb-Log:/…):Tools->Library Manager,弹出 Library Manager 窗口,在

Library中应有 std_cell,点击它。

File->New->Cellview,

在弹出的“Create New File”窗口 Cell Name 栏中,aoi221_test

Tool 栏中,选 Composer-Schematic, OK

在“Virtuoso Schematic Editing:…”窗口中,按下图加入单元(Instance)、Pin并连线。

clip_image016[1]

AOI221仿真激励

l 编写仿真文件

设置仿真环境。点击 Tools->Analog Environment

设置仿真模型文件路径。在弹出的“Analog Design Environment” (ADE)窗口,点击

Setup->Simulator/Directory/Host… 选HSPICE

Setup->Model Libaries…将TSMC035->models->fp1_hspice->mm0355v.l 加入,Section:tt

关于tt的含义:typical model for 3.3V device

以下摘自mm0355.l

clip_image018[1]

Analysis->choose ;Analysis 选tran(瞬态分析),step1:1n,stop1:320n

Simulate->netlist and run

如果没有错误的话会显示:clip_image020[1]

l 修改生成的王表文件input.ck

clip_image022[1]

添加POST=2 选项。

POST选项的意义:ASCII format

clip_image024[1]

l 运行仿真

hspice inputckt

生成input.tr0

l 观察仿真波形

cscope &

clip_image026[1]

Aoi221前仿真波形

l 分析

从逻辑out=(A.B + C.D + E)’中分析得知,所设计的aoi221在逻辑上是正确的。

l Virtuoso Layout Editor工具设计版图

l 035最小尺寸要求

一下是以INVTER反向器为例,介绍035库的各种最小尺寸。

clip_image028[1]

clip_image030[1]

l 熟悉Layout Editor环境

clip_image032[1]

Layout Editor的快速指令

l 在CIW窗口中,选择 File->new

Library Name std_cell

Cell Name aoi221

View Name layout

OK。

l 插入M1_N 与 M1_P

l 布局,重点参考下图

clip_image034[1]

一种aoi221门的版图

读懂其中的并联和串联关系,串联式可以重叠contact,当没有引线连接时可以省去contact。

l 画diff层

(LSW 上方有一栏提示,画任何层之前必须将该层设为当前层。当前层必须可见。LSW 提示:AV:全可见,NV:全不可见;AS:全可选,NS:全不可选。对于某一层,鼠标中键:可见/不可见,鼠标右键:可选/不可选)

l 布线

画poly与path。Poly线宽400n m;path线宽700n m。poly=2λ,path当时设计时主要是想与M1_P和M1_N中的金属层相等。

l 添加引脚

用metal1 pin层,添加引脚,并填上label:A,B,C,D,E,out,vdd!,gnd!

最终得到版图如下:

clip_image036[1]

Aoi221版图

l Calibre DRC验证

l 建立子目录calibre_drc、拷贝CM35P5_4M.23a.2到此目录

l 将Calibre载入Virtuoso:在CIW窗口中输入load("/opt/calibre/lib/calibre.skl")或者在.cdsinit中包含此行,Virtuoso菜单上就会有calibre的选项了

l 建立*.gds文件:在CIW中将aoi221的layout转到aoi221.gds,并将aoi221.gds存放到之前建立的calibre_drc文件夹中

clip_image038[1]

l 执行calibre DRC:

l 配置Rules

clip_image040[1]

l 配置Inputs

clip_image042[1]

l Run DRC

l 运行结果

clip_image044[1]

l Calibre LVS验证

l 建立子目录calibre_lvs、拷贝cali035pMM5V_2P4M.lvs到此目录

l 建立*.netlist文件:在CIW中将aoi221的schematic转到netlist,并将netlist存放到之前建立的calibre_lvs文件夹中。修改netlist中的NM/PM为N/P。

clip_image046[1]

l 执行calibre LVS:

l 配置Rules

clip_image048[1]

l 配置Inputs

clip_image050[1]

clip_image052[1]

l Run LVS

l 运行结果(如果没有错误的话)

clip_image054[1]

l Calibre PEX提取

l 建立子目录calibre_pex、拷贝TSMC352P4MCalibre.pex2到此目录

l 执行calibre PEX:

l 配置Rules

clip_image056[1]

l 配置Inputs,同calibre_lvs

l Run PEX

l 运行结果: 生成网表文件

clip_image058[1]

l HSPICE post-simulation

l 修改网表文件

clip_image059[1]clip_image061[1]

把前仿真的网表中aoi221的subckt去掉,添加上PEX生成的网表aoi221.pex.netlist。再者修改aoi221的调用端口的顺序。修改结果如图所示。

l 运行仿真

hspice input.ckt.post

l 用cscope观察波形

clip_image063[1]

l 分析

上图中下面的波形是前仿真的波形,上边是后仿真的波形。其它的输入信号ABCDE,与前仿真中的波形相同。由图中可以看到后仿真产生了比较严重的失真。这主要是由于在画版图时MOS管的W/L比设计的不够好。修补如下

clip_image065[1]

仿真波形如下

clip_image067[1]

由上图可以看到,后仿真的波形已经有了很大的改善,但是效果还不够好,修要继续修改,可惜的是,我现在不具有这种功力与时间去完成这些工作了。

l 报告总结

熟悉了ASIC设计中,full-custom的设计流程。

掌握了Cadence设计工具基本组件的基本用法。

学习了VLSI课程。

很遗憾没有足够的精力严格按最小尺寸来画aoi221的版图;MOS管的宽长比也调得不尽如人意;报告写得比较仓促。

下学期,会试着做一下流程更为完整和复杂的数字IC设计。

posted @ 2011-09-25 20:41  任怀鲁  阅读(14797)  评论(5编辑  收藏  举报