搜档网
当前位置:搜档网 › Cadence 使用参考手册

Cadence 使用参考手册

Cadence 使用参考手册
Cadence 使用参考手册

Cadence 使用参考手册

邓海飞微电子学研究所设计室

2000年7月

目录

概述 (1)

1.1 Cadence概述 (1)

1.2 ASIC设计流程 (1)

第一章Cadence 使用基础 (5)

2.1 Cadence 软件的环境设置 (5)

2.2 Cadence软件的启动方法 (10)

2.3库文件的管理 (12)

2.4文件格式的转化 (14)

2.5 怎样使用在线帮助 (14)

2.6 本手册的组成 (15)

第二章Verilog-XL 的介绍 (16)

3. 1 环境设置 (16)

3.2 Verilog-XL的启动 (16)

3.3 Verilog-XL的界面 (18)

3.4 Verilog-XL的使用示例 (19)

3.5 Verilog-XL的有关帮助文件 (20)

第四章电路图设计及电路模拟 (22)

4.1 电路图设计工具Composer (22)

4.1.1 设置 (22)

4.1.2 启动 (23)

4.1.3 用户界面及使用方法 (23)

4.1.4 使用示例 (25)

4.1.5 相关在线帮助文档 (25)

4.2 电路模拟工具Analog Artist (25)

4.2.1 设置 (25)

4.2.2 启动 (26)

4.2.3 用户界面及使用方法 (26)

4.2.5 相关在线帮助文档 (26)

第五章自动布局布线 (28)

5.1 Cadence中的自动布局布线流程 (28)

5.2 用AutoAbgen进行自动布局布线库设计 (29)

第六章版图设计及其验证 (31)

6.1 版图设计大师Virtuoso Layout Editor (31)

6.1.1 设置 (31)

6.1.2 启动 (31)

6.1.3 用户界面及使用方法 (31)

6.1.4 使用示例 (32)

6.1.5 相关在线帮助文档 (32)

6.2 版图验证工具Dracula (32)

6.2.1 Dracula使用介绍 (32)

6.2.2 相关在线帮助文档 (33)

第七章skill语言程序设计................. 错误!未定义书签。

7.1 skill语言概述 .............................................. 错误!未定义书签。

7.2 skill语言的基本语法 ................................... 错误!未定义书签。

7.3 Skill语言的编程环境................................... 错误!未定义书签。

7.4面向工具的skill语言编程........................... 错误!未定义书签。附录1 技术文件及显示文件示例....... 错误!未定义书签。附录2 Verilog-XL实例文件................ 错误!未定义书签。

1.Test_memory.v ........................................ 错误!未定义书签。

2.SRAM256X8.v ........................................ 错误!未定义书签。

3.ram_sy1s_8052 ........................................ 错误!未定义书签。

4.TSMC库文件 ......................................... 错误!未定义书签。附录3 Dracula 命令文件 . (362)

概述

作为流行的EDA工具之一,Cadence一直以来都受到了广大EDA工程师的青睐。然而Cadence的使用之繁琐,又给广大初学者带来了不少麻烦。作为一位过来人,本人对此深有体会。本着为初学者抛砖引玉的目的,本人特意编写了这本小册子,将自己数年来使用Cadence的经验加以总结,但愿会对各位同行有所帮助。本册子的本意在于为初学者指路,故不会对个别工具进行很详细的介绍,只是对初学者可能经常使用的一些工具加以粗略的介绍。其中可能还请各位同行加以指正。

1.1 Cadence概述

Cadence是一个大型的EDA软件,它几乎可以完成电子设计的方方面面,包括ASIC设计、FPGA设计和PCB板设计。与众所周知的EDA软件Synopsys 相比,Cadence的综合工具略为逊色。然而,Cadence在仿真、电路图设计、自动布局布线、版图设计及验证等方面却有着绝对的优势。Cadence与Synopsys 的结合可以说是EDA设计领域的黄金搭档。此外,Cadence公司还开发了自己的编程语言skill,并为其编写了编译器。由于skill语言提供编程接口甚至与C 语言的接口,所以可以以Cadence为平台进行扩展,用户还可以开发自己的基于Cadence的工具。实际上,整个Cadence软件可以理解为一个搭建在skill语言平台上的可执行文件集。所有的Cadence工具都是用Skill语言编写的,但同时,由于Cadence的工具太多,使得Cadence显得有点凌乱。这给初学者带来了更多的麻烦。

Cadence包含的工具较多,几乎包括了EDA设计的方方面面。本小册子旨在向初学者介绍Cadence的入门知识,所以不可能面面具到,只能根据ASIC 设计流程,介绍一些ASIC设计者常用的工具,例如仿真工具Verilog-xl,布局布线工具Preview和Silicon Ensemble,电路图设计工具Composer,电路模拟工具Analog Artist,版图设计工具Virtuoso Layout Editor,版图验证工具Dracula,最后介绍一下Skill语言的编程。

1.2 ASIC设计流程

设计流程是规范设计活动的准则,好的设计流程对于产品的成功至关重要。本节将通过与具体的EDA工具(Synopsys和Cadence)相结合,概括出一

个实际可行的ASIC设计的设计流程。图1-1是实际设计过程中较常用的一个流程。

(接下一页)

图1-1 ASIC设计流程图

这是深亚微米设计中较常用的设计流程。在该设计流程中,高层次综合和

底层的布局布线之间没有明显的界线,高层设计时必须考虑底层的物理实现(高

层的划分与布局规划)。同时,由于内核(Core)的行为级模型有其物理实现的精确的延时信息,使得设计者可在设计的早期兼顾芯片的物理实现,从而可以较精确的估计互连的延时,以达到关键路径的延时要求。同时,布局布线后提取的SDF文件将被反标到综合后的门级网表中以验证其功能和时序是否正确。

从该流程中可看出,在实际设计中较常用到的Cadence的工具有Verilog HDL仿真工具Verilog-XL,电路设计工具Composer,电路模拟工具Analog Artist,版图设计工具Virtuoso Layout Editor,版图验证工具Dracula和Diva以及自动布局布线工具Preview和Silicon Ensemble。本册子将对这些工具作一个初步介绍。如果读者想进一步了解某个软件的使用,可参考本册子提供的相关在线文档以进一步熟练。

第一章Cadence 使用基础

2.1 Cadence 软件的环境设置

要使用Cadence,必须在自己的计算机上作一些相应的设置,这些设置包括

很多方面,而且不同的工具可能都需要进行各自的设置。读者如果遇到这方面

的问题,可以参考一下openbook中的Configuration Guides及各工具的user

guide或者reference,其访问的方法是main menu-> System Administration->

Configuration Guides。但作为初学者,只需进行以下几项设置:

1..cshrc文件的设置

首先要在自己的.cshrc文件中设置Cadence软件所在的路径,所使用的

licence文件等。下面的代码为.cshrc中设置的一个简单示例,其中

Cadence所在的目录为/EDA04/cds97a/。

##############################

##Cadence #

##############################

setenv CDS_ROOT /EDA04/cds97a

setenv CDS_INST_DIR /EDA04/cds97a

set path = ($path $CDS_INST_DIR/tools/dfII/bin

$CDS_INST_DIR/tools/bin)

setenv LM_LICENSE_FILE /EDA04/cds97a/share/license/license.dat

对于某些Cadence中的工具也必须在.cshrc中进行一些设置。

2..cdsenv文件设置

.cdsenv文件中包含了Cadence软件的一些初始设置,该文件是用Skill

语言写成的。Cadence可直接执行。

3..cdsinit设置

与.cdsenv一样,.cdsinit中也包含了Cadence软件的一些初始化设置,

该文件是用Skill语言写成的。在Cadence启动时,会首先自动调用这

两个文件并执行其中的语句。若仅为初学,可以不编写这两个文件,Cadence会自动调用隐含的设置。若想更改设置,可参考一些模板文件进行编写。在install_dir/tools/dfII/cdsuser目录下有一些隐含的模板文件。下面是一个简单的.cdsinit文件:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

; Tutorial .cdsinit file

; By: Cris Reeser/Diane Goldberg

; Created: October 10, 1995

;

; This initialization file contains the settings necessary to ; successfully run the Cell Design tutorial. Some of these may ; be redundant, if your site uses a site initialization file.

; For further information on initialization files, read the ; comments in the /samples/local/cdsinit file.

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

; Human Interface Environment Settings

hiiSetFont("text" "-adobe-courier-bold-r-*-*-12-*")

hiSetFormPosition(603:500)

hinestLimit = 5

hiSetUndoLimit(10)

hiExpertMode(nil)

window(1)->useScrollbars = t

window(1)->backingStore = t

envSetVal("layout" "xSnapSpacing" 'float 0.5)

envSetVal("layout" "ySnapSpacing" 'float 0.5)

envSetVal("layout" "segSnapMode" 'string "anyAngle")

envSetVal("layout" "stopLevel" 'int 20)

envLoadFile("./.cdsenv")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

; Bindkey Settings

load(prependInstallPath("samples/local/schBindKeys.il"))

load(prependInstallPath("samples/local/leBindKeys.il"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

; RESIZE CIW

; CIW

; Note, hiFlush() is used as a workaround to display problem with

; resizing windows in SKILL.

hiFlush()

hiResizeWindow(window(1) list(3:3 750:200))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

; Tutorial Customization

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;

setSkillPath(". techFiles")

; Welcome the user

fprintf(poport

"************************************************\n")

fprintf(poport "Welcome to the SRAM Compiler... %s\n"

getShellEnvVar("USER"))

printf( " \n" )

printf( "Done with initialization.\n" )

printf("************************************************\n

")

printf( " \n" )

printf( " \n" )

从中可看出,Skill语言的语法与C语言的较为类似。经过一定的学习后

就很容易掌握。

4.cds.lib文件的设置

如果用户需要加入自己的库,则可以修改自己的库管理文件cds.lib。对

于初次使用Cadence的用户,Cadence会在用户的当前目录下生成一个

cds.lib文件,用户通过CIW生成一个库时,Cadence会自动将其加入

cds.lib文件中。下面是一个简单的Cadence库管理文件cds.lib的示例:

DEFINE ourTechLib

/EDAHOME01/students/dhf/sram/dual/ourTechLib

DEFINE sram /EDAHOME01/students/dhf/sram/dual/sram

DEFINE basic ${CDS_INST_DIR}/tools/dfII/etc/cdslib/basic

DEFINE sample

${CDS_INST_DIR}/tools/dfII/samples/cdslib/sample

DEFINE analogLib

/EDA04/cds97a/tools/dfII/etc/cdslib/artist/analogLib DEFINE pCells /EDAHOME01/students/dhf/sram/dual/pCells

DEFINE hhh /EDAHOME01/students/dhf/sram/dual/hhh

其中,DEFINE为库定义的保留字,ourTechLib、sram等为所定义的库的名字,最后的字符串为保存库的实际的物理目录。

5.技术库的生成

技术文件库对于IC设计而言是非常重要的,其中包含了很多设计中所

必需的信息。对于版图设计者而言,技术库就显得更为重要了。要生成

技术文件库,必须先编写技术文件。技术文件主要包括层的定义,符号

化器件的定义,层、物理以及电学规则和一些针对特定的Cadence工具

的规则的定义,例如自动布局布线的一些规则,版图转换成GDSII时所

用到的层号的定义。技术文件的编写可参考openbook中有关技术文件

的介绍并参考相应的模板来进行。其访问顺序为Main Menu->IC

Tools->Design FramWork II->Technology File Help。附录1中有一个简

单的技术文件示例。技术文件编好以后,就可以按照以下几步生成技术

库:

(1)点击CIW中的File菜单选择其中的New项中的Library项(如图2-1所示),弹出图2-2所示的表格。

(2)在Name项中输入所需的名字如myTecLib。保持如图所示的设

置,点击ok。弹出如图2-3所示的对话框。

(3)在对话框中输入编好的技术文件名如my.tf。这时,技术文件必须在启动Cadence的当前目录。点击ok。

(4)经过一段时间后,在CIW的显示区会出现一个提示

Library myTecLib is created successfully.

对于非工艺库的生成与工艺库大体相同,只是在2-2中选择attach to exited technology file,并在接下来的过程中选择相应的工艺库。

图2-1

图2-2

图2-3

6.显示文件display.drf的设置

display.drf文件控制Cadence的显示。其基本语法可参考openbook中的相应的介绍。附录1中包含了一个display.drf的示例。

2.2 Cadence软件的启动方法

完成了一些必要的设置(对初学者只需设置.cshrc文件即可,其他设置都用隐含设置,等熟练了一些之后,再进一步优化自己的使用环境),就可以启动Cadence软件。启动Cadence软件的命令有很多,不同的启动命令可以启动不同的工具集,常用的启动命令有icfb,icca等,也可以单独启动单个工具,例如启动Viruoso Layout Editor可以用layoutPlus来启动,Silicon Ensemble可以用sedsm来启动。以icfb为例,先在UNIX提示符下输入icfb&,再按回车,经过一段时间,就会出现如图2-4所示的CIW(Command Interpreter Window)窗口。从CIW窗口就可以调用许多工具并完成许多任务。

CIW窗口是使用Cadence时遇到的第一个窗口,是Cadence主要的用户界面。它主要包括以下几个部分:

1.Title Bar显示使用的软件名及log文件目录。如图2-4中的最上一行icfb-log:/ EDAHOME01/students/dhf/CDS.log。

2.Menu Banner

3.Output Area 输出Cadence对用户命令的反应。

4.Input Line 可用来输入Skill命令。

5.Mouse Bindings Line 显示捆绑在鼠标左中右三键上的快捷键。

6.Scrolling bar to Scroll Through the Log File

Cadence将许多常用工具集成在一块以完成一些典型的任务,图2-5总结了一些常用的启动命令及其可使用的工具。用户可根据自己的需要选择最少的命令集。

图2-4 CIW窗口

图2-5 Cadence启动命令

2.3库文件的管理

启动了Cadence后,就可以利用File菜单建立自己的工作库,点击CIW 窗口上的File菜单,选定其中的New lib项,弹出如图2-2所示的对话框,输入库名并选择相应的工艺库,然后选择ok,这时在CIW的显示区会出现如下提示:

The lib is created successfully!

新建的库是一个空的库,里面什么也没有,用户可在库中生成自己所需的单元。例如可以生成一个反相器单元,并为其生成一个电路及一个版图视图,其流程如下:

1.选择File菜单中的New项,并选择Cellview项,则弹出如图2-6所示的对话框,选择所需的库并输入单元名inv,并选择视

图类型Schematic,再点击ok按钮。则弹出如图2-7所示的窗

口。

2.用Add菜单中的Component命令调用analogLib中的单元,输入PMOS和NMOS管以及电源和地。如图2-8所示。

3.点击Check and save 命令保存。

用同样的流程可生成inv的版图视图。利用Tools中的library manager可以对库进行管理。

图2-6

图2-7

图2-8

2.4文件格式的转化

Cadence有自己的内部数据格式,为了与其他EDA软件之间进行数据交换,Cadence提供内部数据与标准数据格式之间的转换。点击CIW的File菜单中的Import可将各种外部数据格式转换成Cadence内部数据格式,利用CIW的File 菜单中的Export可将各种Cadence内部数据格式转换成外部标准数据格式。2.5 怎样使用在线帮助

学习Cadence的最好教材是使用在线帮助,Cadence的在线帮助是用openbook命令来启动的。在UNIX提示符下输入openbook&并回车就可以启动在线帮助。要拷贝在线帮助中的文件可以先按下control键,并用左键进行选择,然后用copy进行拷贝。如果想要知道一些关于如何使用openbook的技巧,可在系统提示符下输入

openbook help &

即可。

2.6 本手册的组成

在本手册中将按照ASIC设计流程分别在第三章介绍高层的HDL工具,例如Verilog仿真工具Verilog-xl。第四章介绍电路图设计工具Composer及电路模拟工具Analog Artist。第五章介绍自动布局布线Preview和Silicon Ensemble。第六章介绍版图设计工具Virtuoso Layout Editor和验证工具Dracula和Diva。第七章将介绍Skill语言的编程。

第二章Verilog-XL 的介绍

人们在进行电子设计时较常用的输入方法有两种,一种为硬件描述语言,一种为电路图输入。随着ASIC设计技术的发展,以HDL作为输入的设计方法已成为ASIC设计的主流。目前较常用的硬件描述语言有VHDL和Verilog两种。相对而言,Verilog在工业上用的较为平常。故本小册子的讨论集中在Verilog 上。作为EDA设计的主流软件之一,Cadence提供了对Verilog及VHDL的强大支持。尤其是Verilog,Cadence很早就引入了Verilog,并为其开发了一整套工具。而其中最出色的当数Verilog的仿真工具Verilog-XL。Verilog-XL一直以其友好的用户界面及强大的功能而受到广大Verilog用户的青睐。本章将分五个方面一一对对其进行一个较为详尽的介绍。

3. 1 环境设置

对于一般的Cadence的用户而言,可能不需要进行任何设置就可启动Verilog-XL。用户可输入下列命令看自己是否可访问Verilog-XL:which verilog

如果可以访问Verilog-XL,会有类似如下的反应:

/EDA04/cds97a/ tools/bin/verilog

否则,必须在.cshrc中用set path命令加入以上路径。

3.2 Verilog-XL的启动

Verilog-XL的启动命令为verilog,它可以附带很多可选项,下面是其各选项及其意义:

Valid host command options for verilog:

-f read host command arguments from file

-v specify library file

-y specify library directory

-c compile only

-s enter interactive mode immediately

-i input from command file

-r restart from a saved data structure

-l set log file name

-k set key file name

-u convert identifiers to upper case

-t set full trace

-q quiet

-d decompile data structure

Special behavioral performance options (if licensed):

+turbo speed up behavioral simulation.

+turbo+2 +turbo with second level optimizations.

+turbo+3 +turbo+2 with third level optimizations.

+listcounts generate code for maintaining information for $listcounts

+no_turbo don't use a VXL-TURBO license.

+noxl disable XL acceleration of gates in all modules

Special environment invocation options (if licensed):

+gui invoke the verilog graphical environment

下面是几个简单的使用示例,在UNIX提示符下输入这些命令即可启动Verilog-XL:

Example host commands to run VERILOG:

verilog sio85.v

verilog f1 f2 f3

verilog -s sio85.v

verilog -r save.dat -l run2.log -k run2.key

verilog -r save.dat -si commands.vic

verilog -dqcr save.dat

一般较常用的启动方法是:

verilog –s +gui –v libname –f scriptFile sourcefilename & 其中,libname为所使用的库的名字,scriptFile为用可选项编写

相关主题