讲讲义义课程名称:《集成电路版图设计》孙丽莉编苏州工业园区职业技术学院SuzhouIndustrialParkInstituteofVocationalTechnology1目录第1单元Linux基础…………………………………………………………21.1Linux简介……………………………………………………………………31.2Shell命令……………………………………………………………………31.3Vi……………………………………………………………………………101.4案例-1…………………………………………………………………………12第2单元认识版图…………………………………………………………132.1芯片……………………………………………………………………………142.2认识MOS……………………………………………………………………152.3连接…………………………………………………………………………162.4反向设计……………………………………………………………………182.5电路功能分析………………………………………………………………212.6案例-2…………………………………………………………………………22第3单元版图绘制…………………………………………………………243.1再识MOS……………………………………………………………………253.2半导体制造……………………………………………………………………263.3设计规则……………………………………………………………………313.4案例-3…………………………………………………………………………343.5Virtuoso……………………………………………………………………353.6从Schematic到Layout……………………………………………………513.7案例-4…………………………………………………………………………52第4单元版图验证…………………………………………………………534.1DRC…………………………………………………………………………544.2LVS…………………………………………………………………………564.3其它验证……………………………………………………………………644.4案例-5…………………………………………………………………………71第5单元标准单元…………………………………………………………725.1APR…………………………………………………………………………735.2StandardCell………………………………………………………………745.3案例-6…………………………………………………………………………795.4更好的StandardCellLayout…………………………………………………795.5案例-7…………………………………………………………………………81第6单元定制版图…………………………………………………………836.1ASIC、Full-CustomDesign、IPBasedDesign………………………846.2IPLayout流程………………………………………………………………846.3AnalogLayout………………………………………………………………876.4案例-8…………………………………………………………………………92附录0.6umprcessdesignrule…………………………………………942第1单元Linux基础简洁是艺术性的第一个条件。——Dostoevsky任何成功的软件一定是易用的,操作系统也是如此。因此即使你从未接触过windows以外的任何操作系统,也完全不必担心可能学不会Linux。不过首先你要做好扔掉鼠标的准备,因为我们将告别花哨的界面,回到简洁高效的命令行方式。在这一单元中你将学到:什么是Linux?为什么要学习Linux?如何使用Linux?一种Linux下的文本编辑器。31.1Linux简介Linux(读音['linэks]),是一种自由、开放*的计算机操作系统,今天Linux普及的领域甚至超过了windows,从网络服务器到个人计算机到手机,甚至是电冰箱都可能找到Linux的身影。当然我们学习Linux并不是为了向Linux作为免费、开源软件所获得的成功致敬,而是因为几乎所有集成电路CAD的工具都是基于Linux系统的,这是由于相较Windows而言,Linux更加稳定,并且有着更开放的编程环境。最后我们顺带提一下Linux和Unix的关系。实际上Linux最初被设计为一种兼容Unix的免费操作系统,因此虽然本质上两者完全不同,但对于用户而言,两者看起来差不多。或者甚至可以这么说,就目前多数版本的Linux来看,他们更像是长着Windows脸的Unix。因此,在本章中所有讲到的命令,在Unix中基本上是同样适用的。1.2Shell命令一个完整的Linux系统可以分为两个部分——Kernel(内核)和Shell(外壳)。Kernel,内核就是Linux的核心,用户的所有操作,都是由Kernel来完成的,但是用户却又不是直接对Kernel做所有的操作,为什么呢?因为用户与Kernel之间,并不能直接的沟通,用户不可以直接的发送指令给Kernel,这个时候就需要Shell了,Shell把你给他的指令翻译成Kernel能懂的命令,然后要Kernel来操作。图1.2-1KernelandShell举个例子来说,如果把计算机看成一辆汽车,内核就是发动机,汽车要开动必须由发Linux其他应用程序硬件内核Shell4动机来驱动,但是驾驶员不可能亲自去给发动机点火,而是借助油门和刹车来控制,shell就是你的油门和刹车。也就是说你是借助Shell(实际上就是许多命令的集合)来驱动内核,进而控制计算机的。Linux中的shell有很多种:sh、csh、tcsh、bash、ksh、zsh等等,每种shell的命令都有些许差别,这就像汽车有很多品牌一样,虽然各有不同,但毕竟殊途同归,因此我们这里仅以csh为例做介绍。1.2.1认识Terminal好了,在开车之前请先坐进你的驾驶室。图1.2-2Terminal在Linux中所有操作都可以在这样的被称为Terminal(终端)的窗口中进行,你在窗口中键入命令,计算机做出相应的反应。我们把这种操作方式叫做命令行(commandline)方式,如果你曾经用过DOS系统,你会发现两者有些相似。而Windows那样的通过鼠标点击图标来实现操作的,叫做图形用户界面(GUI——GraphicUserInterface)方式。两种方式各有优点,前者高效,后者易用。1.2.2这是你必须熟练掌握的下面介绍的是最基本的文件和目录操作命令,如果你没能熟练掌握这些命令,那么你在Linux中将会寸步难行。ls——列出目录内容语法ls[OPTION]...[DIR]5说明ls(list)的作用是显示目录下的文件信息(默认为当前目录),它可以增加一些参数来对显示结果做一些调整。例如:ls–l显示文件的详细信息。ls–t按时间对文件排序,默认为按字母顺序排列。ls–a显示隐藏文件,在Linux系统中以“.”开始的文件名即为隐藏文件。ls–r对文件进行倒序排列。这些参数也可以组合起来用,下表列出了不同参数显示结果的差别。cd——改变当前目录语法cd[OPTION][DIR]说明cd(changedirectory)的作用是改变当前的目录到到指定的目录。如果没有指定目录则进入用户的home目录。如果当前的目录为/home/guest/work/linux/cd_test1,想要进入/home/guest/work目录,有两种不同的方式:cd/home/guest/work绝对路径方式,即完整的目录路径,注意这里用的是“/”分割符,而不是windows中的“\”。cd../..相对路径方式,“..”代表上一级目录的意思,也可以使用“cd../cd_test2”进入一个与“cd_test1”平级的目录。cd和ls常常会连在一起用,因为当改变目录后总是要看一下当前目录下有哪些文件的。后面你将学到怎样将两个命令绑定在一起。cp——复制文件或目录语法cp[OPTION]...SOURCEDESTcp[OPTION]...SOURCE...DIRECTORY说明%lsappsrv.inicachepna_menu_itemswfclient.ini%ls-lttotal5-rw-------1rootlayout851Nov313:46appsrv.inidrwxr-xr-x3rootlayout512May202008cachedrwxr-xr-x2rootlayout512May202008pna_menu_items-rw-------1rootlayout1592May202008wfclient.ini%ls–arwfclient.inipna_menu_itemscacheappsrv.ini...%ls/usrbinevolution28includeliblocalsharetmpetcgameskerberoslibexecsbinsrcX11R66cp(copy)的作用是将源文件(SOURCE)复制到目标文件(DEST),或者将多个源文件复制到指定目录(DIRECTORY)。如果源文件是一个目录需要加“-r”选项。rm——删除文件或目录语法rm[OPTION]...FILE...说明rm(remove)的作用删除文件或目录。与cp一样如果要删除目录需要加“-r”选项。mv——移动或重命名文件语法mv[OPTION]...SOURCEDESTmv[OPTION]...SOURCE...DIRECTORY说明mv(move)与cp的作用很相似,它们的差别在于,mv在移动后原文件就不存在了,cp则会保留原文件。你可以把mv的效果等价于cp+rm,不过两者的运行速度差别很大,mv实际没有对文件做任何动作,只是改变了文件在磁盘中的指向。mv还一个特殊用途,假如操作的原文件和新文件在同一个目录下,实际相当于是对原文件名重命名。另外mv与cp、rm还有一个差别,如果需要移动目录,mv不需要加“-r”选项。mkdir——创建目录语法mkdir[OPTION]DIRECTORY...说明mkdir(makedirmkdirtesta将会建立一个/home/guest/work/linux/mkdir_test/testa的目录。ectories)的作用是创建一个或多个目录,如果这些目录原本不存在。例如,如果当前目录为/home/guest/work/linux/mkdir_test,那么:mkdirtestb/testc将会报错,因为不存在testb,如果需要一次建立多层结构的目录,可以这样做:mkdir–ptestb/testc。man——显示命令的使用说明语法man[OPTION]names...说明man(manual)的作用是格式化显示命令的说明。那么什么叫格式化?打个比方,在Windows中用记事本打开一个文件是没有格式的,用word打开则是格式化的。Linux中很多命令也可以用“--help”的选项来显示使用说明,但那是未格式化的。1.2.3还有一些你也应该了解虽然下面这些命令不像上面的那些一样常用,但也是一样必须记住的。也许你会觉得记忆各种命令很困难,那么试着别去背诵它们,而是去理解它们。7more——分屏显示文件内容语法more[OPTION][file...]说明more的作用是将文本显示在屏幕上,每次显示一屏。显示时,按“空格(Space)”键显示下一屏,按“回车(Enter)”键显示下一行,按“q”退出显示。more除了可以显示文件内容,还可以将某个命令的输出分屏显示出来,比如当文件很多时,“ls–l”无法在一屏显示全部内容,这时可以使用:ls–l|more实现分屏显示。“|”是管道符号,它的作用是将前一个命令的