最近小目同学遇到了一些软件的使用问题,翻了几天软件手册、淘遍网络资源终于迎来一点点曙光。回头反思自己的学习过程,大把时间竟然浪费在流程化的工具使用问题上,实在是可惜。
流程化的工具使用问题本身没有什么技术难度,但是如果不了解又无下手之处。小目想到自己初学模拟IC设计的时候,情景竟然似曾相识,希望之后初学模拟IC设计的同学可以不必为这些无脑的流程化问题再浪费时间,所以这里整理了以前的笔记,供初学者参考,助模拟IC的萌新们一臂之力。
这一次的分享打算分成若干次,从最基本的软件使用开始,一直到整个芯片后端设计,完成模拟IC设计的全部流程,主要适用于模拟IC设计的初学者,各位看官可以根据自己的实际需求选择内容查看。
Cadence作为全球三大EDA厂商之一,旗下有很多EDA及其相关产品,比如很多人熟悉的Allegro、OrCAD等。目前主流的模拟IC设计平台是Cadence公司的一套EDA,这里统称为Cadence IC设计平台。包括原理图输入界面、仿真软件、版图设计软件、后端验证软件等,下面带领大家了解一下Cadence IC软件的环境配置和使用方法。
获取软件:Cadence IC设计平台目前只能运行在Linux系统,大部分进入实验室开始熟悉设计的同学应该已经了解,对于不在实验室的学习者可以在各大网站找到一些软件的安装教程或者已经安装完成的虚拟机 ,具体如何获得软件不便详述,后续内容都认为大家已经具备软件使用条件,并且软件能正常启动,本教程内容以Cadence IC617软件版本为例(其余版本操作大同小异,不必纠结软件版本问题)。
创建工作目录:进入Linux系统之后,可以根据自己的喜好创建一个文件夹,作为以后模拟IC设计的工作目录,当然这个不是必须的,因为无论用户在哪个目录启动软件,只要用户对该目录有写入权限,那么软件都可以正常工作。
创建一个工作目录的目的是可以使设计文件整洁,随着对软件使用的深入,大家会发现每次创建工程,软件都会自动生成相关文件夹,所以在工作目录内操作可以保证即使工程项目 很多,工程文件也不至于很乱。
小目同学在桌面创建一个文件夹:workspace作为以后的工作目录,并在这个文件夹下创建了:analog_ic文件夹,顾名思义,所有与模拟IC设计相关的内容都在这个文件夹内,每次在终端启动Cadence IC软件的时候也都需要将工作目录切换到analog_ic文件夹。
配置Cadence工作文件:为了方便,Cadence IC软件在后面的文章里都简称为Cadence软件。现在从Linux桌面启动终端,并切换到analog_ic文件夹(Linux基础命令不熟悉可以从网上简单学习一下),在终端输入:
virtuoso &
然后回车,等待软件完成启动即可,Cadence IC51版本的启动命令是:
icfb &
第一次启动软件只是告诉大家要在自己建立的工作目录启动软件和启动软件的命令,并不着急讲解软件的使用,现在先关闭刚刚启动的软件,准备好后面的工作。
Cadence软件的使用涉及到一部分文件配置问题,首先跟大家介绍以下三个文件:
需要注意的是在Linux系统中,以"."开头的文件是隐藏文件,所以正常在工作目录下是看不到.cdsinit和.cdsenv文件的,需要显示隐藏文件才可以看到,在设置相关文件的时候需要留意一下。
Cadence软件在启动时首先会在启动目录搜索以上文件(.cdsenv文件根据设置而定),如果启动目录没有这些文件又会在用户主目录搜索以上文件,最后会在软件安装目录 下搜索以上文件,所以为了更好的使用软件最好在Cadence第一次启动前准备好以上文件。
其中,<Cadence install_dir>指的是:Cadence软件的绝对安装路径。各位同学可以按照上面的说明准备好以上文件,暂时不必深究各个文件的具体内容,用到时自然会加以说明。
这里有一个地方需要特别注意,按照上面的方法把cdsinit文件拷贝到自己的工作目录并正确命名之后,有一步很关键的操作:打开新文件,定位到文件中:LOAD USER CUSTOMIZATION 之后的内容(行首没有分号的if...else...语句)在每一行行首添加一个";", 代表注释掉这部分内容,具体原因可以阅读if...else...上面的说明,实际上是为了防止软件对这个文件发生递归调用,导致系统死掉,这一点一定要留意,很多人因为这个原因导致软件启动不正常,查找原因浪费不少时间。
除了以上三个文件以外,正常还需要一个显示文件,这个文件跟设计时所采用的PDK(工艺设计 库)有关,里面定义了该工艺下的版图显示信息,不过这个文件与前端设计关系不大,可以等到后端设计的时候再跟大家具体说明,大家只需有个印象。
以上是软件启动前的准备工作,其实没有以上文件,软件也可以启动和工作,以上文件可以配合大家习惯,更方便的使用软件,同时希望大家可以从刚开始接触模拟IC的时候就养成一个好习惯,那样会为以后的工作节省不少力气。
认识Cadence IC设计平台
完成初始文件的准备,我们可以开始学习软件的使用了。按照上一节的说明,在终端输入软件启动命令,等待软件启动完毕。
进入软件首先看到的是如图所示的CIW界面(命令交互窗口),这个窗口显示Cadence软件命令的执行过程和执行结果,用户可以在命令输入栏采用skill语言操作软件,理论上任何Cadence命令都可以通过skill语言实现,只是操作起来不方便,另外也是由于命令太多,采用图形界面容易学习。
CIW界面有一些菜单栏,我们需要关注的是:Tools一栏,这里有经常使用的工具,其它菜单栏的功能大家可以自己尝试一下,软件的学习大多在于实践,这里说明几个Tools菜单栏内的工具。
稍微熟悉一下之后大家可以打开:Library Manager, 如果cds.lib文件内容是按照前文正确输入,这时候可以看到如下图类似的界面。
Library一栏是库名称,可以认为是一个工程名称,以上库都是Cadence自带的基础设计库。Cell一栏可以理解为对于某个工程内的多个子项目,比如某个库里面可能包含了反相器、与非门、或非门 等很多设计。View这一栏是对应某个子项目的具体设计,比如反相器的设计又包含原理图、版图等。
简单了解一下软件之后就可以直接开始尝试软件使用,软件的学习没有理论,只有实践,很多功能都是在实践中摸索来的。
原理图设计软件介绍
前面简单了解了软件的功能,下面通过具体的项目,学习软件的基本使用方法,在Library Manager界面:File->New->Library, 新建一个库,自己确定库的路径和名称,确定之后会弹出一个对话框:
这个对话框是什么意思呢?让我们选择新建库的Technology File, 这里所说的Technology File就是我们前面提到过几次的设计工艺,开始一个新设计之前希望我们确定本次设计使用什么工艺。现在我们没有拿到工艺,所以这里可以先选择:Do not need process information, 之后在需要的时候再解决这个问题。
现在我们新建了库,接下来要开始一个设计,在Library Manager界面:File->New->Cell, 新建一个设计,在弹出的对话框内,Library选择自己新建的库名称,Cell填写自己设计的名称,这里我们填:inv, 设计一个反相器,View一栏可以不用填写,软件会自动匹配,Type一栏有多个选项,不同的Type对应不同的View, 这里我们首先设计原理图,所以选择schematic, 确定之后软件会弹出原理图设计界面,在这个界面我们可以进行原理图设计。
原理图设计界面的内容不一一介绍,还是希望各位同学可以自己多多尝试,为了设计的方便,Cadence软件为常用的功能都提供了对应的快捷键,设计人员通过快捷键选择功能,下面介绍一下常用功能的快捷键。
以上快捷键中大写字母表示大写输入,一般用shift和对应字母同时按下实现,如果使用过程遇到快捷键失效,首先考虑是否触发了键盘大写输入功能。
上面是对Cadence软件的简单介绍,有很多具体操作没有介绍,希望各位同学可以在实践中学习。
按照上面的介绍试着实现如上图中两个原理图。其中用到的器件都在analogLib库中可以找到,要注意器件尺寸、器件模型、添加标注信息等细节内容,这些内容虽然没有细讲,但是很容易通过以上介绍的功能和用户的尝试实现,下一次会对原理图的建立过程详细描述。
作者:小目(wx:student_xiaomu)
微信公众号:ICSkillSharing,是一个共同学习的平台,分享最新IT类资讯、原创内容、IC中脚本语言 的教程与使用心得、模拟IC新手在学习过程中遇到的问题等,与大家一起成长进步!