关于Cadence virtuoso的一些实用技巧

关于Cadence virtuoso的一些实用技巧
关于Cadence virtuoso的一些实用技巧

1. 关于版图一些实用的快捷键

F3:显示Option form

F4:Full/Partial 选择切换

N:改变snap model,n---diagonal, Shift+n---orthogonal, Ctrl+n---L90Xfirst

Ctrl+y:当多个图形叠在一起时(点击左键默认是两个图形间切换),可以轮流选择重叠的图形

BackSpace:当命令尚未完成时,可以撤销上一次(多次点击可撤销多次)鼠标的点击。如:画path时可撤销前面鼠标错误的点击,选择很多图形stretch,点了reference point发现有多选,可撤销点击,去掉多选图形后再stretch。

Right mouse:

a. 没有命令时重复上次命令;

b. move和Create instance时逆时针旋转,Shift+Right mouse轮流关于x/y轴对称;

c. 画path时,L90Xfirst和L90Yfirst之间切换,Ctrl+Right mouse Path自动换层(Path stitching)切换,Shift+Right mouse换层时通孔旋转;

d. Reshape和split时,切换不同的高亮区域,以便下一步的操作。

2.使用reference window

一个cellview可以打开两个窗口,一个作为主窗口编辑,另外一个可以放小一点作为参考窗口(即reference window),有点像world view,不同的是主窗口的编辑不仅在参考窗口中可以看到,而且两个窗口中编辑是等效的(当然你的显示器越大,用参考窗口越好,^_^)。

可以用Window – Utilities – Copy Window打开一个参考窗口,也可以直接把一个cellview打开两次,如图

可以同时在两个窗口中编辑

3.关于Path stitching

①画path时可以从一层切换到另一层,并且自动打上对应的接触孔,这个功能叫path stitching.

②在Change To Layer 栏里选择你要换的layer,也可以通过Control+right mouse 键来选择需要换的层。

如果Change To Layer栏里没有层可选,那是因为在technology file 中没有关于这层的contact(或者cdsVia的定义)定义,只有定义了之后才能使用path stitching功能。

下面是一个contacts定义的例子:

;********************************

; DEVICES

;********************************

devices(

tcCreateCDSDeviceClass()

symContactDevice(

; (name viaLayer viaPurpose layer1 purpose1 layer2 purpose2

; w l (row column xPitch yPitch xBias yBias) encByLayer1 encByLayer2 legalRegion)

(ACT_M1 CON drawing ACT drawing M1 drawing

0.30 0.30 (1 1 0.60 0.60 center center) 0.14 0.15 _NA_)

(GP_M1 CON drawing GP drawing M1 drawing

0.30 0.30 (1 1 0.60 0.60 center center) 0.14 0.15 _NA_)

(M1_M2 V1 drawing M1 drawing M2 drawing

0.36 0.36 (1 1 0.71 0.71 center center) 0.12 0.12 _NA_)

(M2_M3 V2 drawing M2 drawing M3 drawing

0.36 0.36 (1 1 0.71 0.71 center center) 0.12 0.12 _NA_)

); end of symContactDevice

;;***** or you can define cdsViaDevice ************

;cdsViaDevice(

;;( deviceName cutLayer cutPurpose layer1 purpose1 layer2 purpose2

;; row column origin stackedVias cutLayerW cutLayerL xCutSpacing yCutSpacing

;; layer1XEnc layer1YEnc layer2XEnc layer2YEnc layer1Dir layer2Dir )

; ( CDSVIA1 V1 drawing M1 drawing M2 drawing

; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )

;

; ( CDSVIA2 V2 drawing M2 drawing M3 drawing

; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )

;

; ( CDSVIA3 V3 drawing M3 drawing M4 drawing

; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )

;

; ) ; end of cdsViaDevice

) ;devices

③根据path width的不同,工具会自动打上一个孔,或者是一组孔

④如果想改变孔的对齐方式,可以通过改变Contact Justification来调整

⑥如果定义了多个Contacts,Path Stitching时,

a. 设置环境变量useDefaultVia为nil,

envSetVal("layout" "useDefaultVia" 'boolean nil),

b. 然后换层时,如果定义了多种contact,会弹出一个选择框,可以选择你需要的孔

⑦通孔只出现一个边框时,可以点击Rotate或者Shift and click right来旋转通孔。

4.Placing Pin Arrays(bus pins)

你也许认为label就可以代替pin了,还用的着打pin吗?其实不然,virtuoso工具一些连接关系都是通过pin来体现的,通过pin体现连接关系,在连线时(尤其时连线比较远,比较复杂时)可以通过打开Options->display->Display Controls->Nets,来显示复杂Net 的连接。当然更实用的是在Layout-XL工具中可以对版图和电路进行实时对比(需要tech file的支持)。

当需要打bus pins的时候,可以一次打一组pins,bus pins的命名必须是Busname ,这时可以通过修改Xpitch和Ypitch来改变Bus pin的间隔,注意打

的pin是顺序上升或者下降的。

5.在已存在的两个path交错的地方自动打孔

两层之间的互连,可以手动打孔,也可以用Create Contact 自动打孔,但是必须在两条path交错的地方,而且两层之间有孔的定义(见Path stitching中contact的定义),不能跨层打孔(如M1-M3之间),不能在斜线上自动打孔,两条path不受cell的层次的限制,只要是可见的。如图,选中Auto Contact, 通孔中心会自动移到两条path的中心线交点处,但要注意交点是否在格点上

6. 关于Tap的使用

Tap是用来快速捕捉任意一个图形的相关属性,捕捉到的信息会自动赋给将要生成的Object上包括Layer信息,Net的名字,其它属性(如path的width,endtype等等)

a. 用Tap来快速选择entry Layer

选择Edit – Tap [t],默认的是选择的Layer是边界最接近鼠标指针(或者边界与指针重合)的图形的Layer,如果两层完全重合,则有一层可能一直也选不中。

因此可以设置环境变量layerTapCycle为t or nil, 可以改变捕捉的方法

在CIW敲入命令(只对这个icfb窗口适用):

envSetVal("layout" "layerTapCycle" 'boolean t )

或者在根目录下的.cdsenv文件中加入一行,每次启动icfb就会调用这个环境变量layout layerTapCycle boolean t

设成nil时(默认值)选择的Layer是边界最接近鼠标指针(或者边界与指针重合)的图形的Layer

设成t 时,在重复的图形上连续点击,可以依次轮流的选择不同的Layer,直到选到你想要的为止。

b. 用Tap捕捉图形信息,并传给将要生成的图形上

将Tap Types设为All(net名不一样的话去掉Net,不过我们很少设置net name),点击图形后会捕捉到它的Layer信息,Net的名字,其它属性等,如下图的示例,不同的layer,width,endtype,Tap后再画path,path里的设置都和你tap的图形一样了

7.Reshape Objects

Reshape顾名思义就是改变图形的形状,但要注意几点:

1.Reshape Type设为rectangle时,rectangle的一角必须与原来的图形交错

2.Reshape Type设为line时,第一点和最后一点必须在原来图形的边线上,另外Reshape path只能选择line,第一点必须在原来path的中线上

3.Reshape的图形在完成之前会高亮显示,点击右键会切换不同的高亮区域,确认是否是最终的图形形状

8.关于部分选择及相关的操作

在stretch时可以选择一部分操作,但通常其他情况下只能选择全部,因为默认是full select mode,stretch是自动切换到partial select mode时,其实按F4键就可以切换这两种模式,这种模式下可以stretch,delete等

9. 关于图形的对齐

我们经常会有一些图形需要对齐,例如一组横向摆放的pad,要求对齐且间隔相等,手动对齐比较麻烦,在Edit->Other->Align有对齐的命令,可以用来对齐两个或多个图形。对齐图形有preselect和postselect 两种方式。

a. Postselect方式

把Selection Mod 设置为Set reference and select objects to be aligned.

点击Set New Reference,先选择一个图形的边界作为参考边,然后选择其他图形与这个参考边对齐。

b. Preselect方式

设置Selection Mod为Set reference to align preselected objects.

先选择未对齐的图形,然后点击Set New Reference and 在layout窗口选择一个对齐点,所有选择的图形就会对齐。

当然对齐还有其他的一些设置,但要注意这里的对齐操作是对一个整体而言(如一个instance,polygon等),如果几个图形需要组合在一起,参与与其他单元的对齐,先将这几个图形make cell或者用attatch(而且被attatch的图形不能被选中),否则这几个图形将被拆开。

10. Yanking & Pasting图形(即复制-粘贴)

我们经常用copy命令来复制图形,但复制的都是一个整体(如一个instance,一条path等),Yank 命令可以复制(相当于切割)一部分图形到一个临时的buffer,而Paste 命令把buffer中的图形复制到layout窗口中。

Yank & Paste与Copy的区别在于Yank的图形是chop object而来,Copy的图形是Full select object而来,Yank/Paste可以看作是“少量信息切割” 的copy。需要注意的是Yank 图形层次是可以控制的,部分选择的图形将被chop,Paste的图形是打平的(注意paste 的图形的layer,如果有不需要的layer,设为invisible可以不复制这些层);全部选择的图形依然保存层次化的结构。如图是Yank/Paste下个层次的图形的例子:

11.生成Multipart Paths

Multipart path是指一条path包含有多部分(≥2)与其相关的图形,Create Multipart Path命令是用来生成一条path并包含有其他相关的图形(relative object design ---ROD)信息,你可以用它来画一条简单的path,也可以一条有几部分组成的复杂multipart path,例如:guard ring, transistor, bus, 或者shielded path。

Multipart path同样可以进行stretch,chop,reshape等操作,并且对应的ROD图形会根据master path的变化自动重新画。

a.画Multipart Paths的流程,如下图

b. 定义Master Path

对于master path的Choppable选项:

使master path和所有的subparts都choppable, 打开Choppable选项;

使master path不能choppable (但是subparts既可以choppable也可以不choppable), 关闭Choppable.

c. 添加Subpart,可以添加path,rectangle等

Table 10-2 Position of Offset Subpath in Relation to Master Path Separation Center Justification Left Justification Right Justification

Zero Subpath centerline

on master path

centerline

Left edge of master

path coincident with

right edge of

subpath

Right edge of

master path

coincident with left

edge of subpath

e. 实例: 用Multipart path画Guard Ring

其中master path选择有源区Active层,而metal1和注入层(如PPlus)作为enclosure subpath,而接触孔CT设为subrectangles,metal1和CT孔设为choppable,具体方法这里不在详述,结果如下图,后面附有用Multipart path生成Bus和Tap的skill程序。

12. Search and replace的应用

查找和替换是个很有用的功能,可以快速查找一个图形对象,以及其属性,并且可以批量替换。如图,你可以添加多个搜索条件,

在用== 和!= 时,可以用通配符:

* 可以替代任意数的任意字符

.可以替代当前位置的任一字符

[ ] 可以替代一个范围的字符

13.提高软件速度的一些环境变量的优化

14.这里的skill程序是用来快速定义Multipart path的template,方便一些参数的修改,下面是用Multipart path生成Bus的skill程序

procedure(DefineBusMPPTemplate(BusNumber BusWidth BusSpace)

let((CV BusLayer Tech SubListN SubPathList)

CV = geGetEditRep()

Tech = techGetTechFile(CV)

if(Tech==nil then

error("Can't read the techfile!")

)

BusLayer = leGetEntryLayer()

while(BusNumber>1

--BusNumber

SubListN = list(

?layer BusLayer

?width BusWidth

?choppable t

?sep BusNumber*(BusWidth+BusSpace)

?justification "center"

?beginOffset 0.000

?endOffset 0.000

)

SubPathList = cons( SubListN SubPathList )

);while

;The template name is : BusMPP

leDefineMPPTemplate(

?techId Tech

?name "BusMPP"

?layer BusLayer

?width BusWidth

?choppable t

?endType "flush"

?beginExt 0.000

?endExt 0.000

?justification "center"

?offset 0.000

?offsetSubPath SubPathList

);

);let

);procedure

/**********Top procedure to create form*******************************/

procedure( CreateBus()

let((BusWidth BusSpace BusNumber BusNumberField BusWidthField BusSpaceField MyLabelField )

;;; create int field for BusNumber value.

BusNumberField = hiCreateIntField(

?name 'BusNumberField

?prompt "Bus Number:"

?range '(1 1000)

;?value 3

?defValue 5

;?callback "println( hiGetCurrentForm()->BusNumberField-> value )"

)

;;; create float field for BusWidth & BusSpace value.

BusWidthField = hiCreateFloatField(

?name 'BusWidthField

?prompt "Bus Width(um):"

?range '(0.001 1000.0)

;?value 0.6

?defValue 0.6

;?callback "println( hiGetCurrentForm()->BusWidthField-> value )"

)

BusSpaceField = hiCreateFloatField(

?name 'BusSpaceField

?prompt "Bus Space(um):"

?range '(0.001 1000.0)

;?value 0.6

?defValue 0.6

;?callback "println( hiGetCurrentForm()->BusSpaceField-> value )"

)

;;; create the label field

MyLabelField = hiCreateLabel(

?name 'MyLabelField

?labelText "Make sure select the proper Layer first!!!" ;"Create by wanyb"

?justification 'right

?enabled t

;?font "roman"

;?invisible t

)

;;; create the form

hiCreateAppForm(

?name 'CreateBusForm

?formTitle "Create Bus with Multipart Path"

?callback "DefineBusMPPTemplate(hiGetCurrentForm()->BusNumberField->value

hiGetCurrentForm()->BusWidthField->value

hiGetCurrentForm()->BusSpaceField->value)"

?fields

list(

list(BusNumberField 20:5 180:30 120 )

list(BusWidthField 20:25 180:30 120 )

list(BusSpaceField 20:45 180:20 120 )

list(MyLabelField 40:80 180:25 )

)

?unmapAfterCB t

;?formType 'options

;?buttonLayout 'OKCancelDefLast

;?help 'g_help

) ; hiCreateAppForm

;hiDisplayForm( CreateBusForm )

);let

);procedure

;the current value diplayed in the form is the last value you input.

procedure(DisplayCreateBusForm()

if((boundp('CreateBusForm) == nil)

CreateBus()

)

hiDisplayForm( CreateBusForm )

)

hiSetBindKey("Layout" "Ctrlm" "{DisplayCreateBusForm() leHiCreateMPP()}")

15.用Multipart path生成Tap的skill程序

procedure(DefineTapMPPTemplate()

let((EncSubPathL SubRectList EncSubPath_M1 EncSubPath_Imp EncSubPath_NW CT_N SubRectListN)

;define encSubPath list

EncSubPath_M1 = list(

?layer M1LPP

?enclosure AAEncCT-M1EncCT

?choppable ChoppableM1

?beginOffset M1BeginOffset

?endOffset M1EndOffset

)

EncSubPath_Imp = list(

?layer ImpLPP

?enclosure -1*ImpEncAA

?choppable ChoppableImp

?beginOffset ImpBeginOffset

?endOffset ImpEndOffset

)

EncSubPathL = cons( EncSubPath_M1 EncSubPathL )

EncSubPathL = cons( EncSubPath_Imp EncSubPathL )

when(TapType == "NTap"

EncSubPath_NW = list(

?layer NWLPP

?enclosure -1*NWEncAA

?choppable ChoppableNW

?beginOffset NWBeginOffset

?endOffset NWEndOffset

)

EncSubPathL = cons( EncSubPath_NW EncSubPathL )

);when

;define subRect list

CT_N = CT_Num

while(CT_N > 0

SubRectListN = list(

?layer CTLPP

?width CTWidth

?length CTWidth

?choppable ChoppableCT

?sep -1*(AAEncCT+CT_N*CTWidth+(CT_N-1)*CTSpace)

?justification "left"

?space CTSpace

?beginOffset CTBeginOffset

?endOffset CTEndOffset

?beginSegOffset 0.000

?endSegOffset 0.000

?gap CTGapType

)

SubRectList = cons( SubRectListN SubRectList )

CT_N--

);end while

;The template name is : NTap/PTap

leDefineMPPTemplate(

?techId Tech

?name TapName

?layer AALPP

?width CT_Num*CTWidth+(CT_Num-1)*CTSpace+2*AAEncCT

?choppable ChoppableAA

?endType "flush"

?beginExt 0.000

?endExt 0.000

?justification "center"

?offset 0.000

?encSubPath EncSubPathL

?subRect SubRectList

) ; end leDefineMPPTemplate

);end let

);end procedure

;;;form & field callback procedure

procedure( CreateTapFormCB()

let((TapName CTLPP AALPP M1LPP ImpLPP NWLPP CTWidth CTSpace AAEncCT ImpEncAA NWEncAA CTGapType

Choppable ChoppableAA ChoppableImp ChoppableNW ChoppableM1 ChoppableCT

M1BeginOffset

M1EndOffset ImpBeginOffset ImpEndOffset NWBeginOffset NWEndOffset CTBeginOffset CTEndOffset

)

TapName = CreateTapForm->TapNameField->value

CTLPP = parseString( car(last(CreateTapForm->CTLPPField->value)) " ()" )

AALPP = parseString( car(last(CreateTapForm->AALPPField->value)) " ()" )

M1LPP = parseString( car(last(CreateTapForm->M1LPPField->value)) " ()" )

ImpLPP = parseString( car(last(CreateTapForm->ImpLPPField->value)) " ()" )

;NWLPP = parseString( car(last(CreateTapForm->NWLPPField->value)) " ()" )

CT_Num = CreateTapForm->CT_NumField->value

CTWidth = CreateTapForm->CTWidthField->value

CTSpace = CreateTapForm->CTSpaceField->value

AAEncCT = CreateTapForm->AAEncCTField->value

M1EncCT = CreateTapForm->M1EncCTField->value

ImpEncAA = CreateTapForm->ImpEncAAField->value

;NWEncAA = CreateTapForm->NWEncAAField->value

CTGapType = CreateTapForm->CTGapTypeField->value

case( CreateTapForm->ChoppableField->value

("M1&CT choppable"

ChoppableAA=ChoppableImp=ChoppableNW=nil

ChoppableM1=ChoppableCT=t )

("All choppable"

ChoppableAA=ChoppableImp=ChoppableNW=ChoppableM1=ChoppableCT=t )

("None choppable"

ChoppableAA=ChoppableImp=ChoppableNW=ChoppableM1=ChoppableCT=nil ) );case

;;;a>=b ? a : b, used for chop Tap DRC check when M1EncCT > AAEncCT

CTBeginOffset = CTEndOffset =

-1*((M1EncCT>=AAEncCT&&M1EncCT)||(M1EncCT

if( CreateTapForm->RingPField->value == nil then

M1BeginOffset = M1EndOffset = M1EncCT-AAEncCT

ImpBeginOffset = ImpEndOffset = ImpEncAA

when(TapType=="NTap"

NWLPP = parseString( car(last(CreateTapForm->NWLPPField->value)) " ()" )

NWEncAA = CreateTapForm->NWEncAAField->value

NWBeginOffset = NWEndOffset = NWEncAA

);when

else

M1BeginOffset = M1EncCT-AAEncCT M1EndOffset = AAEncCT-M1EncCT

ImpBeginOffset = ImpEncAA ImpEndOffset = -1*ImpEncAA

;when(-CTBeginOffset

;used for CT space DRC check when AAEncCT + (-CTEndOffset) < CTSpace

when(-CTEndOffset

when(TapType=="NTap"

NWLPP = parseString( car(last(CreateTapForm->NWLPPField->value)) " ()" )

NWEncAA = CreateTapForm->NWEncAAField->value

NWBeginOffset = NWEncAA NWEndOffset = -1*NWEncAA

);when

);if

DefineTapMPPTemplate()

);let

);procedure

procedure(TapTypeFieldCB()

TapType = CreateTapForm->TapTypeField->value

CT_Num = CreateTapForm->CT_NumField->value

if(CreateTapForm->RingPField->value == t then

CreateTapForm->TapNameField->value = get_pname( concat(TapType "_" CT_Num "CT" "_Ring") )

else

CreateTapForm->TapNameField->value = get_pname( concat(TapType "_" CT_Num "CT") ) );if

if(TapType == "PTap" then

hiDeleteFields(CreateTapForm list('NWLPPField 'NWEncAAField) )

else

hiAddFields(CreateTapForm

list(list( NWLPPField 460:85 160:30 75 )

list( NWEncAAField 460:180 210:25 150 )

)

)

);if

);end procedure --- TapTypeFieldCB

procedure(RingPFieldCB()

TapType = CreateTapForm->TapTypeField->value

CT_Num = CreateTapForm->CT_NumField->value

if( CreateTapForm->RingPField->value == nil then

CreateTapForm->TapNameField->value = get_pname( concat(TapType "_" CT_Num "CT" ) ) else

CreateTapForm->TapNameField->value = get_pname( concat(TapType "_" CT_Num "CT" "_Ring") )

);if

);end RingPFieldCB

/********** procedure to create Guard ring form*******************************/

procedure( CreateTap()

let((CT_Num InitLayerList AllLayerList SelectLayerList

TapTypeField TapNameField CTLPPField AALPPField M1LPPField ImpLPPField

CT_NumField CTWidthField CTSpaceField AAEncCTField M1EncCTField ImpEncAAField ChoppableField CTGapTypeField RingPField MyLabelField ;NWEncAAField NWLPPField )

;init the SelectLayerList list or all layer in the tech file will be displayed.

InitLayerList = list(

list("M1" "drawing")

list("ACT" "drawing") list("AA" "drawing")

list("CT" "drawing") list("CON" "drawing")

list("PP" "drawing") list("SP" "drawing")

list("NP" "drawing") list("SN" "drawing")

list("NW" "drawing")

)

AllLayerList = leGetValidLayerList(Tech)

SelectLayerList = setof(ALayer InitLayerList

member(ALayer AllLayerList)

)

when( length(SelectLayerList) != 6 SelectLayerList = AllLayerList )

;;; create Radio field for TapType value.

TapTypeField = hiCreateRadioField(

?name 'TapTypeField

?prompt "Select the Tap Type:"

?choices l ist( "NTap" "PTap" )

?value "NTap"

?defValue "NTap"

?callback '( "TapTypeFieldCB()" )

)

;;; create String field for TapName value.

TapNameField = hiCreateStringField(

?name 'TapNameField

?prompt "Tap template name:"

?value "NTap"

?defValue "PTap"

;?callback "TapName = CreateTapForm->TapNameField->value "

?editable t

)

;;; create Layer cyclic field for CTLPP, AALPP, M1LPP, ImpLPP, NWLPP value.

CTLPPField = hiCreateLayerCyclicField(

Tech

"CT layer:"

;t_callback

"CTLPP=parseString( car(last(CreateTapForm->CTLPPField->value)) \" ()\" ) "

cadence入门教程_修改版

Introduction to Cadence Customer IC Design Environment 熊三星徐太龙编写 安徽大学电子信息工程学院微电子学系

目录 1. Linux 常用命令 (3) 2. 软件的启动 (5) 3. 建立工程 (7) 4. 画原理图 (9) 5. 原理图仿真 (17) 6. 生成symbol (25) 7. 版图 (30) 8. DRC检查 (50) 9. LVS检查 (54) 10. PEX参数提取 (58) 11. 后仿真 (61)

1.Linux 常用命令 目前,电子设计自动化(Electronic Design Automation, EDA)工具多数都基于Linux操作系统,因此在学习使用EDA之前,有必要掌握一些Linux操作系统的基本命令。 1.mkdir mkdir命令让用户在有写权限的文件夹(目录)下建立一个或多个文件夹(目录)。其基本格式如下: mkdir dirname1 dirname2 ... (dirname 为文件夹或者目录的名字) 2.cd cd命令让用户进入一个有权限的文件夹(目录)。其基本格式如下: cd Filename (Filename为文件夹或者目录的名字) cd .. (.. 表示上一层文件夹或者目录) 3.ls ls命令用以显示一个文件夹(目录)中包含的文件夹(目录)或者文件。其基本格式如下: ls Filename (Filename为文件夹或者目录的名字) 如果ls命令后没有跟文件夹(目录)名字,显示当前文件夹(目录)的内容。 ls 命令可以带一些参数,给予用户更多相关的信息: -a : 在UNIX/Linux中若一个文件夹(目录)或文件名字的第一个字元为"." ,该文件为隐藏文件,使用ls 将不会显示出这个文件夹(目录)或文件的名字。如cshell 的初始化文件.cshrc,如果我们要察看这类文件,则必须加上参数-a。格式如下:ls –a Filename -l : 这个参数代表使用ls 的长(long)格式,可以显示更多的信息,如文件存取权,文件拥有者(owner),文件大小,文件更新日期,或者文件链接到的文件、文件夹。 4.cp cp命令用于文件夹(目录)或文件的复制。其基本格式如下: cp source target 将名为source的文件复制一份为名为target的文件。如果target 文件不存在,则产生文件名为target 的文件,如果target 文件存在,缺省时自动覆盖该文件。 cp file1 file2…dir 将文件file1 file2 ... 都以相同的文件名复制一份放到目录dir 里面。

Allegro中文教程

Allegro培训教材 目录 第一章 焊盘制作-------------------------------------------------------2 1.1 用Pad Designer 制作焊盘---------------------------------------2 1.2 制作圆形热风焊盘----------------------------------------------7 第二章 建立封装------------------------------------------------------10 2.1 新建封装文件-------------------------------------------------10 2.2 设置库路径---------------------------------------------------11 2.3 画元件封装---------------------------------------------------12 第三章 元器件布局----------------------------------------------------22 3.1 建立电路板(PCB)----------------------------------------------22 3.2 导入网络表---------------------------------------------------23 3.3 摆放元器件---------------------------------------------------26 第四章 PCB布线------------------------------------------------------31 4.1 PCB 层叠结构-------------------------------------------------31 4.2 布线规则设置-------------------------------------------------34 4.2.1 对象(object)--------------------------------------------35 4.2.2 建立差分对----------------------------------------------37 4.2.3 差分对规则设置------------------------------------------38 4.2.4 CPU与DDR内存芯片走线约束规则--------------------------40 4.2.5 设置物理线宽和过孔--------------------------------------46 4.2.6 设置间距约束规则----------------------------------------52 4.2.7 设置相同网络间距规则------------------------------------56 4.3 Allegro PCB布线----------------------------------------------56 4.3.1 手工拉线------------------------------------------------56 4.3.2 应用区域规则--------------------------------------------60 4.3.3 扇出布线------------------------------------------------61 4.3.4 差分布线------------------------------------------------63 4.3.5 等长绕线------------------------------------------------65 4.3.6 分割平面------------------------------------------------66 第五章 光绘文件输出--------------------------------------------------69 5.1 Artwork 参数设置---------------------------------------------69 5.2 生成钻孔文件-------------------------------------------------75 5.3 输出底片文件-------------------------------------------------79

Cadence_SPB16.3入门教程——元器件布局 .doc

Cadence_SPB16.3入门教程——元器件布局 2012-03-07 13:50:28| 分类:cadence | 标签: |字号大中小订阅 在摆放元件的时候可以与OrCAD Capture交互来完成。在OrCAD Capture中打开原理图,选择菜单 Options->Perferences,如图3.11所示。 图3.11 OrCAD Capture交互 弹出Preferences对话框,如图3.12所示。 图3.12 Preferences 对话框 点击Miscellaneous标签,将Enable Intertool Communication复选框选中。点击确定关闭对话框。 之后在allegro中打开Placement 对话框的状态下,首先在原理图中点击需要放置的元件使之处于选中状态下,然后切换到allegro中,把鼠标移到作图区域内,就会发现该元件跟随着鼠标一起移动了,在想要放置的位置单击鼠标左键即可将该元件放置在PCB中,cadence的这个交互功能非常的好用,不仅在布局的时候可以这样,在布线仿真的时候都能使用该功能来提高效率。 PCB布局是一个很重要很细心的工作,直接影响到电路信号的质量。布局也是一个反复调整的过 程。一般高速PCB布局可以考虑以下几点: ·CPU或者关键的IC应尽量放在PCB的中间,以便有足够的空间从CPU引线出来。

·CPU与内存之间的走线一般都要做等长匹配,所以内存芯片的放置要考虑走线长度也要考虑间隔是 否够绕线。 ·CPU的时钟芯片应尽量靠近CPU,并且要远离其它敏感的信号。 ·CPU的复位电路应尽量远离时钟信号以及其它的高速信号。 ·去耦电容应尽量靠近CPU电源的引脚,并且放置在CPU芯片的反面。 ·电源部分应放在板子的四周,并且要远离一些高速敏感的信号。 ·接插件应放置在板子的边上,发热大的元器件应放在置在通风条件好的位置,如机箱风扇的方向。 ·一些测试点以及用来选择的元件应放在顶层,方便调试。 ·同一功能模块的元件应尽量放在同一区域内。 在布局的过程中,如果某一元件的位置暂时固定了,可以将其锁住,防止不小心移动以提高效率。Allegro提供了这个功能。点击工具栏的图标按钮,然后点击一下元件,右键选择Done,然后该元件就 再也无法选中了,如果要对已经锁定的元件解锁,可以点击工具栏的图标按钮,然后点击右键Done。 也可以点击该按钮后在PCB画图区域点击右键,选择Unfix All选项来解锁所有的元件。 摆放元件的时候,如果需要将元件放置在对面那一层,可以选中元件后单击右键选择菜单Mirror这时 候该元件就被放置到相反的那一层。 在完成元件的布局后,还要重新画板框以及禁止布线层与禁止摆放层。可以参考上面的画板框方法来 完成这些工作,这里就不重复了。

cadence入门教程

本文介绍cadence软件的入门学习,原理图的创建、仿真,画版图和后仿真等一全套过程,本教程适合与初学着,讲到尽量的详细和简单,按照给出的步骤可以完全的从头到尾走一遍,本教程一最简单的反相器为例。 打开终端,进入文件夹目录,输入icfb&启动软件,主要中间有个空格。 启动后出现下图: 点击Tools的Library Manager,出现如下: 上面显示的是文件管理窗口,可以看到文件存放的结构,其中Library就是文件夹,Cell就是一个单元,View就是Cell的不同表现形式,比如一个mos管是一个Cell,但是mos管有原理图模型,有版图模型,有hspice参数模型,有spectre参数模型等,这就列举了Cell的4个View。他们之间是树状的关系,即,Library里面有多个Cell,一个Cell里面有多个View。应该保持一个好习惯就是每个工程都应该建立一个Library,Cell和View之间的管理将在后面介绍。

现在建立工程,新建一个Library,如下左图,出现的对话框如下有图: 在上右图中选择合适的目录,并敲入名字,这里取的是inv,这就是新建的文件夹的名字,以后的各种文件都在这个文件夹下。OK后出现下面对话框 这个对话框是选择是否链接techfile,如果只是原理图仿真而不用画版图,就选择Dont need a techfile,这里我们要画版图,而且有工艺库,选择Attach to an existing techfile,OK 后出现下面对话框:

在technology Library选择tsmc18rf,我们使用的是这个工艺库。Inv的文件夹就建好了,在Library Manager就有它了,如下图: 文件夹建好了后,我们要建立原理图,在inv的Library里面新建Cell如下:

60分钟学会OrCAD中文教程(SIG007版)

于博士信号完整性研究网 https://www.360docs.net/doc/be5988761.html, 60分钟学会OrCAD Capture CIS 作者:于争 博士 2009年4月28日

目录 1 建立工程及设置......................................................................................................................- 1 - 2 工程管理器..............................................................................................................................- 4 - 3 原理图页相关操作..................................................................................................................- 5 - 4 创建元件库..............................................................................................................................- 6 - 5 元件库编辑一些知识技巧......................................................................................................- 9 - 6 如何创建不规则图形元件....................................................................................................- 10 - 7 分裂元件................................................................................................................................- 15 - 8 把一个元件分多个部分画出来............................................................................................- 16 - 8.1 Homogeneous类型元件画法......................................................................................- 16 - 8.2 Heterogeneous类型元件画法..................................................................................- 17 - 8.3 分裂元件使用方法.....................................................................................................- 19 - 9 加入元件库放置元件............................................................................................................- 21 - 9.1普通元件放置方法......................................................................................................- 21 - 9.2 电源和地的放置方法.................................................................................................- 23 - 10 同一个页面内建立互连......................................................................................................- 24 - 11 不同页面间建立互联的方法..............................................................................................- 26 - 12 使用总线..............................................................................................................................- 27 - 12.1 如何创建总线...........................................................................................................- 27 - 12.2 放置非90度转角总线.............................................................................................- 28 - 12.3 总线命名...................................................................................................................- 28 - 12.4 总线与信号线连接...................................................................................................- 28 - 13 浏览工程及使用技巧..........................................................................................................- 29 - 13.1 浏览parts................................................................................................................- 30 - 13.2 浏览nets..................................................................................................................- 31 - 14 原理图中搜索......................................................................................................................- 32 - 14.1 搜索元件...................................................................................................................- 33 - 14.2 查找网络 flat nets...............................................................................................- 34 - 15 元件替换与更新..................................................................................................................- 35 - 15.1 批量替换 replace cache.......................................................................................- 35 - 15.2 批量更新 update cache.........................................................................................- 36 - 15.3 两个命令的区别.......................................................................................................- 36 - 16 一些基本操作......................................................................................................................- 36 - 16.1选择元件....................................................................................................................- 36 - 16.2 移动元件...................................................................................................................- 37 - 16.3 元件的旋转...............................................................................................................- 37 - 16.4 元件的镜像翻转.......................................................................................................- 37 - 16.5 修改元件属性放置文本...........................................................................................- 37 - 17 添加footprint属性..............................................................................................................- 38 - 17.1 单个元件添加Footprint属性...............................................................................- 38 - 17.2 批量添加Footprint属性.......................................................................................- 41 - 18 生成Netlist..........................................................................................................................- 44 - 19 生成元件清单......................................................................................................................- 47 - 20 打印原理图..........................................................................................................................- 51 -

教学EN_cadence+spectre+使用手册

CS/EE 5720/6720 – Analog IC Design Tutorial for Schematic Design and Analysis using Spectre Introduction to Cadence EDA: The Cadence toolset is a complete microchip EDA (Electronic Design Automation) system, which is intended to develop professional, full-scale, mixed-signal microchips. The modules included in the toolset are for schematic entry, design simulation, data analysis, physical layout, and final verification. The Cadence tools at our university are the same as those at most every professional mixed-signal microelectronics company in the United States. The strength of the Cadence tools is in its analog design/simulation/layout and mixed-signal verification and is often used in tandem with other tools for digital design/simulation/layout, where complete top-level verification is done in the Cadence tools. An important concept is that the Cadence tools only provide a framework for doing design. Without a foundry-provided design kit, no design can be done. The design rules used by Cadence set up in this class is based for AMI’s C5N process (0.5 micron 3 metal 2 poly process). So, how is Cadence set up? Broadly, there are three sets of files that need to be in place in order to use Cadence. 1)The Cadence tools These are the design tools provided by the Cadence company. These tools are located in the /home/cadence directory. They are capable of VLSI integration, project management, circuit simulation, design rule verification, and many other things (most of which we won't use). 2)The foundry-based design kit As mentioned before, the Cadence tools have to be supported by a foundry-based design kit. In this class, we use Cadence design kit developed by the North Carolina State University (NCSU CDK). NCSU CDK provides an environment that has been customized with several technology files and a fair amount of custom SKILL code. These files contain information useful for analog/full- custom digital CMOS IC design via the MOSIS IC fabrication service (https://www.360docs.net/doc/be5988761.html,). This information includes layer definitions (e.g. colors, patterns, etc.), parasitic capacitances, layout cells, SPICE simulation parameters, Diva rules for Design Rule Check (DRC), extraction, and Layout Versus Schematic (LVS) verification, with various GUI enhancements. For more information on the capability of the NCSU CDK, go to https://www.360docs.net/doc/be5988761.html,/CDKoverview.html

分钟学会OrCAD中文教程

60 分钟学会OrCAD Capture CIS 于博士信号完整性研究网 分钟学会OrCAD Capture CIS 作者:于争博士 2009 年 4 月 28 日 文章来源:于博士信号完整性研究网分钟学会OrCAD Capture CIS 目录 1 建立工程及设置......................................................................................................................- 1 - 2 工程管理器..............................................................................................................................- 4 - 3 原理图页相关操作..................................................................................................................- 5 - 4 创建元件库..............................................................................................................................- 6 - 5 元件库编辑一些知识技巧......................................................................................................- 9 - 6 如何创建不规则图形元件....................................................................................................- 10 - 7 分裂元件................................................................................................................................- 15 - 8 把一个元件分多个部分画出来............................................................................................- 16 - Homogeneous 类型元件画法......................................................................................- 16 - Heterogeneous 类型元件画法..................................................................................- 17 - 分裂元件使用方法.....................................................................................................- 19 - 9 加入元件库放置元件............................................................................................................- 21 - 普通元件放置方法......................................................................................................- 21 - 电源和地的放置方法.................................................................................................- 23 - 10 同一个页面内建立互连......................................................................................................- 24 - 11 不同页面间建立互联的方法..............................................................................................- 26 - 12 使用总线..............................................................................................................................- 27 - 如何创建总线...........................................................................................................- 27 - 放置非90 度转角总线.............................................................................................- 28 -

cadence入门教程

Cadence 系列软件从schematic到layout入门 一.客户端软件使用及icfb启动 要使用工作站上的软件,我们必须在PC中使用xwinpro等工具连接到工作站上。从开始菜单中,运行xwinpro的xSettings,按照下图设置: 点击上图的Settings在出现的窗口中按如下设置(connect host选择为192.168.1.137):

设置完后,从开始菜单中运行xwinpro的xsessions,应该就可以进入登陆界面,用户名为user1,密码为root。 二、Schematic Cadence系列软件包含了电路图工具Schematic,晶体管级电路仿真工具Spectre,以及版图工具Virtuoso等。一般来说,我们先用Schematic画好电路原理图然后进行仿真,最后用Virtuoso手动画版图或者直接进行版图综合,最后对版图进行L VS,DRC等验证。 在登陆进工作站后,点击鼠标右键,选择tools——>terminal,在弹出的terminal窗口中敲入命令icfb&就可以启动cadence了。 图1 icfb的主界面 我们以建立一个反相器电路为例子: 在icfb中,任何一个电路,不论是已经存在的可以引用的库,还是用户新建立的一个电路,都是一个library. 一个library一般有若干个Cell(单元电路),每个cell有若干个

schematic(电路原理)和若干个layout(版图)。所以,我们要做的第一步,就是先创建一个自己的“库”,File菜单->new->library 图2 新建一个库的界面 从这个新建一个library的界面,我们必须输入新建立的库的名称,并且选择好这个库应该存放的目录,然后注意看右边的三个选项,关于新建立的库是否需要链接到Technology File 的问题。首先,这个Technology File一般是指工艺库,由Foundry提供。如果最终做的电路是需要画出Layout(版图)的,就必须要有工艺库,如果不需要画Layout,那就可以不需要工艺库。由于我们需要演示这一步,所以就选择Attach to an existing techfile。(也可以在建立之后,再Attach to an existing techfile)。 输入name: testinv, (大家在做的时候自己起一个名字)。 现在,我们就已经建立好了一个新的“库”,为了给这个库增加schematic(电路图)和Layout(版图)我们就必须对这个库进行“管理”,从icfb的主菜单(图1)中的Tools菜单->Library Manager.

文件和资料标准化管理制度

文件和资料标准化管理制度 1 目的 通过对公司文件资料的有效控制,确保工作现场使用唯一有效的文件资料,并形成统一规范的编写格式及 处理程序。 2 适用范围 本制度适用于公司所有公务文书、文件和资料的管理。 3 术语和定义 3.1 公文:指公司在处理各种公务时使用的应用文书,包括:决定、决议、通知、通报、报告、请示、批 复、函(电报)、会议纪要。 3.2 制度(程序):指要求公司成员共同遵守的,按一定程序办事的规程性文件。 3.3 办法:指公司针对某项工作依照其所需标准制定的考核奖惩性的文件。 3.4 标准:指公司对某项工作应达到的要求进行规范和约定的文件。 3.5 规章制度:公司各种制度、规定、办法的泛称。 3.6 记录:指公司对某项活动的各工作环节、结果进行记录,可供事后追溯该项活动完成质量的证据性文 件,主要为表格形式。 4 职责权限 4.1 经理负责公司制度、办法、标准、计划、记录和以公司名义下发的公文的批准。 4.2 管理者代表负责制度、办法、标准、计划、记录的审核。 4.3 各单位负责本单位相关文件资料的编写、审核、打印、校对工作。 4.4 总经办负责以公司名义下发执行的各类文件资料的编号、发放、收回、作废销毁和归档,负责对各单 位文件资料管理情况进行监督检查。 4.5 各单位负责以本单位名义下发执行的各类文件资料的编号、发放、收回、作废销毁和归档。 5 工作程序 5.1 文件资料的编写格式 5.1.1 文件资料的用纸标准: 公司各类文件资料的正式编印一般用A4(210mm×297mm)型纸张。图纸表格等不宜减小时,该页应按以上纸型尺寸折叠装订。张贴的公文用纸大小,根据实际需要确定。 5.1.2 文件和资料章、条、款的编排规则: 5.1.2.1 根据文件内容的编排划分,“章”就是一个章节,包括条和款,“条”是章的一个部分,“款”是章或条的一个 层次。章、条均用阿拉伯数字编号。 5.1.2.2 “章”应左起空两格书写,如第1章用“1”标注,右侧空一格写该章的标题,标题一行书写不够时,可另起一行,这一行的第一个字与标题的第一个字平排书写。章与章之间应空一行编排。 5.1.2.3 “条”在“章”的编号右下加一个小圆点,再写该条在该章所处的顺序,如第4章第1条,用“4.1”表示,后空一格书写该条的标题。如果一章的各条根据需要再分为若干下一层次的小条,其编号表示方法同上,如第4章第2条,再分3小条,则分另表示为“4.2.1”、“4.2.2”、“4.2.3”,如果“4.2.1”再分为2个小条,则分别表

Cadence 快速入门教程

Cadence SPB15.7 快速入门视频教程目录 第1讲课程介绍,学习方法,了解CADENCE软件 第2讲创建工程,创建元件库 第3讲分裂元件的制作方法 区别(Ctrl+B、Ctrl+N切换Part) 点击View,点击Package可以显示所有的元件Part 1、homogeneous 和heterogeneous 2、创建homogeneous类型元件 3、创建heterogeneous类型元件 第4讲正确使用heterogeneous类型的元件 增加packeg属性。点击Option,选择Part Properties,选择new,增加属性。用于在原理图中确定同一块的元件。 1、可能出现的错误 2、出现错误的原因 3、正确的处理方法 第5讲加入元件库,放置元件 1、如何在原理图中加入元件库 2、如何删除元件库 3、如何在元件库中搜索元件 4、放置元件 5、放置电源和地 第6讲同一个页面内建立电气互连(设置索引编号,Tools里面,Annotate来设置) 1、放置wire,90度转角,任意转角(画线时按住Shift) 2、wire的连接方式 3、十字交叉wire加入连接点方法,删除连接点方法(快捷键J) 4、放置net alias方法(快捷键n) 5、没有任何电气连接管脚处理方法(工具栏Place no Conection) 6、建立电气连接的注意事项 第7讲总线的使用方法 1、放置总线(快捷键B) 2、放置任意转角的总线(按住Shift键) 3、总线命名规则(LED[0:31],不能数字结尾) 4、把信号连接到总线(工具栏Place Bus entry 或者E) 5、重复放置与总线连接的信号线(按住Ctrl向下拖) 6、总线使用中的注意事项 7、在不同页面之间建立电气连接(工具栏Place off-page connector) 第8讲browse命令的使用技巧(选中dsn文件,选择Edit中的browse) 1、浏览所有parts,使用技巧(浏览元件<编号,值,库中的名字,库的来源>,双击元件可在原理图上找到元件) 2、浏览所有nets,使用技巧(浏览网络) 3、浏览所有offpage connector,使用技巧(页面间的连接网络,一般一个网络至少会在两个页面中出现) 4、浏览所有DRC makers,使用技巧(DRC检测)

相关文档
最新文档