Cadence作为全球最大的EDA公司,提供系统级至版图级的全线解决方案,系统庞杂、工具众多、不易入手,除综合外,在系统设计、前端设计输入和仿真、自动布局布线、版图设计和验证等领域居行业领先地位。 Cadence具有系统级设计,功能性验证,模拟,高频,混合设计,物理层的验证与分析,IC打包设计,PCB,Layout版图设计,具有广泛的应用支持,是电子设计工程师必须掌握的工具之一。
Cadence开发了自己的编程语言skill以及相应的编译器,整个Cadence可以理解为一个搭建在skill语言平台上的可执行文件集。初学者对此可以不用理会,当用户深入后,可用skill语言对Cadence进行扩展。
获取软件的途径:
①Cadence IC设计平台目前只能运行在Linux ( UNIX)系统下,本书内容以Cadence Virtuoso IC617 软件为例(其余版本操作大同小异,不必纠结软件版本问题)。
②也可选择包含Cadence Virtuoso软件的虚拟机,直接在Windows系统下运行VMware Workstation,打开Cadence Virtuoso,即可进入Cadence Virtuoso设计系统。
Cadence Virtuoso可以完成模拟集成电路的设计流程,一个简单的模拟集成电路设计流程以及对应的Cadence工具,如图 1.29 所示。 IC设计基本流程包括电路原理图编辑、电路仿真、版图设计、版图设计规则验证、版图原理图一致性检查、寄生参数提取以及后仿真等。
Cadence工具使用同样的库模型,库结构按目录结构组织数据,利于不同工具之间的数据交互和一致操作,见表 1.2。
表 1.2 Cadence系统组织结构
设计库、单元名、视图和实际存放的数据之间的关系,如图 1.30 所示。
Cadence的设计数据组织结构由库(Library)、单元(Cell)和视图(View)组成。库是特定工艺相关的单元集合,单元是构成系统或芯片模块的设计对象,视图是单元的一种预定义类型的表示,如图 1.31 所示。
图 1.29 Cadence模拟IC设计基本流程
图 1.30 Cadence系统组织结构
图 1.31 Cadence IC设计界面
登录服务器后,默认是在当前登录的用户目录下“user’Home”,由于实验室的机器是多人使用,为了不引起混乱,需要建立自己的工作目录。打开桌面上的“user’Home”,在该目录处单击鼠标右键选择“Create Folder”,学生可以用自己的学号(例如,20221234)或姓名拼音等作为目录名称,这样就可以成功创建个人工作目录,如图 1.32 所示。
图 1.32 创建个人工作目录
(1). cshrc文件或者. bashrc文件
指定Cadence软件的安装路径及licence文件所在的路径;同时,该文件也是UNIX系统中用户环境重要的配置文件(cshell环境)。
(2). cdsenv文件
. cdsenv文件包含了Cadence软件的初始环境设置。
(3). cdsinit文件
. cdsinit文件是一个skill脚本文件,其中,该内容需要符合skill语言语法,在. cdsinit文件内可以写入软件启动时的附加指令。 Cadence启动时调用的配置及加载程序(用户可根据情况自行配置)。
(4)cds. lib文件
保存有设计库文件所在的路径,用以识别该用户所加载和调用的设计库。
(5)技术文件
技术文件包含了设计所需的很多信息,对设计,尤其是版图设计很重要。它包含了层的定义,符号化器件定义,几何、物理、电学设计规则,以及一些针对特定Cadence工具的规则定义,如自动布局布线的规则,版图转换成GDSII时所使用的层号定义。
(6)display. drf显示文件
display. drf显示文件,如图 1.33 所示。(默认调用display. drf文件)
图 1.33 display. drf显示文件
在设计电路的过程中,需要各种技术文件,这些技术文件一般由Foundry提供。在本书中,需要将以下文件拷贝到自己的工作目录下。
①TF文件:TF(Technology File)文件一般由Foundry提供,包括版图设计中的图层信息、符号化器件的定义以及一些针对Cadence工具的规则定义,还有版图转换成GDSII时用到的层号定义。
②display.drf文件:控制Cadence的版图显示。
③cds.lib文件:该文件是设计库管理文件,包含一些基础设计库定义和用户自定义工程库。可以在工作目录新建文本文件并输入:SOFTINCLUDE <Cadence install_dir> / share / cdsset up / cds. lib,文件名保存为: cds.lib。
④.cdsinit文件:包含Cadence的一些初始化设置信息,以及软件的快捷键设置,部分功能和. cdsenv文件重叠。可从以下路径:<Cadenceinstall_dir> / tools/ dfII/ samples/ local / cdsinit复制到自己的工作目录中,并保存为. cdsinit文件。接下来,有一步很关键的操作:打开新文件,定位到文件中:LOAD USER CUSTOMIZATION之后的内容(行首没有分号的if. .. else. . . 语句)在每一行行首添加一个“;”,代表注释掉这部分内容,具体原因可以阅读if. .. else. ..上面的说明,实际上是为了防止软件对这个文件发生递归调用,导致系统死掉,这一点一定要留意,很多人因为这个原因导致软件启动不正常,查找原因会浪费不少时间。
⑤.cdsenv文件:包含Cadence各种工具的初始化设置,部分功能和. cdsinit文件重叠。可以从以下路径:<Cadence install_dir> / tools/ dfII/ samples/ . cdsenv,复制到自己的工作目录中,并保存为. cdsenv文件。
注意事项如下:
①其中,<Cadence install_dir>指的是:Cadence软件的绝对安装路径。可以按照上面的说明准备好以上文件,暂时不必深究各个文件的具体内容,用时自然会加以说明。
②在Linux系统中,以“.”开头的文件是隐藏文件。正常情况下,在工作目录下看不到. cdsinit和. cdsenv文件,需要显示隐藏文件才可以看到,在设置相关文件时需要留意。
Cadence软件在启动时,首先会在启动目录中搜索以上文件(. cdsenv文件根据设置而定),如果启动目录没有这些文件又会在用户主目录中搜索以上文件,然后会在软件安装目录下搜索以上文件,为了更好地使用软件,最好在Cadence第一次启动前准备好以上文件。
版图验证包括DRC,LVS,PEX等流程,它是版图设计中的重要流程,需要软件支持,同时也需要代工厂提供的规则文件配合。实现版图验证功能的软件有很多,一个是常用的Cadence公司的Assura套件,集成在Cadence版图设计软件中,调用简单方便;另一个是Mentor旗下的Calibre套件。一般PDK内提供的规则文件也会同时支持两家工具,因为Calibre工具大部分被公司认可,所以后面的内容会以Calibre为例进行讲解。
为了方便起见,可在Cadence界面集成Calibre接口,实现这个功能的脚本在Calibre安装目录内提供。为了在Cadence启动时就加载Calibre工具,需要修改启动目录下的. cdsinit文件,在介绍Cadence环境时提到过,打开. cdsinit文件,在文件末尾添加一句:
load(“<Calibreinstall_dir> / lib / calibre. OA. skl”)
对版本比较低的Cadence环境,应使用以下语句:
load(“<Calibreinstall_dir> / lib / calibre. 4.3. skl”)
其中,<Calibreinstall_dir>表示Calibre安装目录。重新启动Cadence软件,打开版图编辑器,如图 1.34 所示,可以看到软件工具栏会多出Calibre接口,通过这个接口可以直接启动Calibre。用户也可在Linux终端输入:calibre-gui,启动Calibre图形界面。
图 1.34 Calibre版图验证工具
配置好软件后,再去PDK内找到需要的规则文件,无论是DRC,LVS还是PEX都需要代工厂提供一套规则文件,本书需要使用的规则文件在PDK安装文件夹内:<PDKinstall_dir> /Calibre路径下,如图 1.35 所示,其中包含需要的所有规则文件。
图 1.35 PDK资源路径
经过 1.1.3 节介绍的两种方式成功启动Linux系统后,在Linux环境下启动Cadence Vir tuoso。无论哪种方式,启动Linux成功后接下来的操作都是相同的。
为了更好地管理设计文件,需要创建自己的工作目录。例如,在根目录下创建自己的目录,以学号命名,如 20160001。在个人目录中单击鼠标右键,选择“open in terminal”打开Linux终端,输入命令,启动Virtuoso,如图 1.36 所示。
图 1.36 启动Virtuoso
打开Cadence的主控窗口CIW界面(Command Interpreter Window,命令交互窗口),如图1.37 所示。 Cadence的大部分工具都可以从这里打开。至此,Virtuoso启动成功。
图 1.37 中最上方是标题栏,第二行是菜单栏,中间部分是输出区域,许多命令的结果都在这里显示(包括出错信息)。第四行是命令输入行。用户可以在命令输入栏中使用skill语言操作软件,理论上,任何Cadence命令都可以通过skill语言实现,只是不便于操作,由于命令较多,故采用图形界面进行介绍,便于初学者学习。另外,还有一个“What’new”窗口,主要介绍Cadence新版本特性,可将其直接关闭。
图 1.37 Cadence主控窗口
我们需要关注的是CIW界面中的Tools菜单栏,这里详细介绍几种Tools菜单栏中的工具,如图 1.38 所示的框中部分。
Library Manager:是设计过程中频繁使用的库管理界面,可以在界面中方便地看到库名称,操作库内容,如图 1.39 所示。
Library Path Editor:是cds. lib文件的内容,有的用户不习惯操作文件,可以直接在该界面内设置库的路径。
Technology File Manager:用来实现把用户的不同设计对应到不同的工艺设计库。
Library一栏是库名称,也可以认为是一个工程名称,以上库都是Cadence自带的基础设计库。 Cell一栏可以理解为对某个工程内的多个子项目,例如,某个库中可能包含了反相器、与非门、或非门等设计。 View一栏是对应某个子项目的具体设计,例如,反相器的设计又包含原理图、版图等。
图 1.38 CIW界面中的Tools菜单栏
图 1.39 Library Manager窗口
工艺设计包(Process Design Kit,PDK)是芯片设计流程中与EDA工具一起使用的特定于代工厂的数据文件和脚本文件的集合。 PDK的主要组件是模型、符号、工艺文件、参数化单元(PCell)和规则文件。使用PDK,设计人员可以快速启动芯片设计,并从原理图输入到版图输出,无缝地完成设计流程,如图 1.40 所示。
应用程序编程接口(Application Programming Interface,API)被定义为应用程序,可用以与计算机操作系统交换信息和命令的标准集。标准的应用程序界面为用户或软件开发商提供一个通用编程环境,以编写可交互运行于不同厂商计算机的应用程序,如图 1.41 所示。
图 1.40 PDK,EDA软件与IC设计者的关系
图 1.41 API,EDA软件与程序员的关系
由图 1.40 可以看出,PDK,EDA软件与IC设计者的关系和程序API、程序EDA软件与程序员的关系是类似的,它们都是不可分离、合作共进的。 PDK是Foundry工艺商、电路设计公司与电路设计EDA软件公司有效沟通的重要桥梁,如图 1.42 所示。
图 1.42 PDK系统架构
现代IC一般都是Foundry与设计分开工作,使其更具专业性、效率更高、成本更低。但实际上它们是IC产业链上的两个不可分离的关节,相互依赖、缺一不可、共同进退。表 1.3 列举了目前常用的PDK资源。
表 1.3 常用的PDK资源
在当前目录下cds. lib文件中调用PDK中的cds. lib或者直接将相关技术库挂载进来,即可完成PDK基本配置。安装完工艺库后,启动Cadence软件,这时在Library Manager界面内多了一个与PDK名称一样的库。没错,PDK其实就是一个设计库,只是包含了更多功能而已。完成PDK安装后,PDK文件夹的内容如图 1.43 所示。
同时,Cadence的Library Manager界面内的内容增加了PDK的内容,如图 1.44 所示。
图 1.43 PDK文件夹
图 1.44 Library Manager中显示PDK
至此,Cadence添加PDK成功,启动后可以进行基于PDK的电路和版图设计。