Encounter数字版图设计流程-2010-4-24_730405883
- 格式:pdf
- 大小:733.04 KB
- 文档页数:18
数字集成电路版图设计与验证实验指导书电子科技大学微电子与固体电子学院实验名称数字集成电路版图设计与验证一、实验目的与意义随着IT产业的迅猛发展,微电子集成电路在通讯、计算机及其他消费类电子产品中的重要地位日益突出,而IC的生产和设计技术水平是决定IC芯片性能的两大要素。
该实验是正向设计中电路仿真完成之后、工艺制版之前的必须环节,与其他实验相结合,可以使学生对当前国际主流的IC设计技术流程有较完整的认识。
本实验是基于微电子技术应用背景和《微电子集成电路》课程设置及其特点而设置,为IC设计性实验。
其目的在于:•根据实验任务要求,综合运用课程所学知识自主完成相应的数字集成电路版图设计,掌握基本的IC版图布局布线技巧。
•学习并掌握国际流行的EDA仿真软件Cadence的使用方法,并进行版图的自动布局布线设计与验证。
通过该实验,使学生掌握数字专用集成电路版图设计的流程,加深对课程知识的感性认识,增强学生的设计与综合分析能力,掌握自主进行数字集成电路版图设计与验证的基本方法,进而为今后从事科研、开发工作打下良好基础。
二、实验原理2. 1 Cadence 环境的调入1、在UNIX 操作系统的Terminal窗口下→ cd user/userxxx/studname/Project→ icms& 或icfb&2、出现CIW(command Interpreter window)命令解释画面3、点选在CIW窗口的上面工具列Tools→Library Manager,会出现LM窗口LM(Library Manager)2. 2 建立新的Library1.点选LM窗口上面的工具列File→New→Library2.会产生New Library画面3.出现下图画面1.在name填上Library名称2.点选下面的OK4.出现Load Technology File窗口,添加工艺文件2.3 电路版图的自动布局布线2.3.1 启动Automatic Layout Tool1.打开已经设计完成的电路图Schemic2.点选 Tools --> Design Synthesis --> Device-Level Editor ,将弹出对话框,定义版图名,最好取与前面cell view 相同的名字。
数字地图制作的基本流程与技巧随着科技的发展,数字地图的制作逐渐成为了地理信息系统领域的重要内容。
数字地图的制作不仅能够为我们提供准确的空间信息,还能够帮助我们更好地理解和利用地理空间数据。
本文将介绍数字地图制作的基本流程与技巧,帮助读者更好地了解和掌握这一领域的知识。
1. 数据收集与整理数字地图的制作离不开数据,因此首先需要进行数据的收集与整理。
数据的来源有很多种,可以通过地理信息系统、卫星遥感、测量等方式获取。
在进行数据收集时,需要注意数据的质量和准确性,以确保数字地图的制作结果的准确性和可靠性。
在数据整理方面,需要对收集到的数据进行分类、筛选和清洗,以便后续的数字地图制作工作。
2. 数据处理与分析数据的处理与分析是数字地图制作的重要环节。
在进行数据处理与分析时,可以使用地理信息系统软件等工具,进行数据的处理、变换和计算。
例如,可以通过坐标转换,将收集到的经纬度坐标转换为具体的地理空间位置,或者对收集到的地理数据进行统计分析,以提取有用的信息。
数据处理与分析的结果将为后续的数字地图制作提供基础。
3. 地图设计与制作地图设计与制作是数字地图制作的核心环节。
在进行地图设计时,需要根据制图目的和实际需要,选择合适的地图类型、比例尺、颜色、符号等元素,以表达地理空间数据的特征和分布。
同时,还需要根据地图制作的软件和工具,将数据处理与分析的结果导入到地图制作软件中,进行地图的绘制与编辑。
在地图制作的过程中,需要注重细节的处理和版式的布局,以确保地图的美观性和可读性。
4. 地图输出与发布地图的输出与发布是数字地图制作的最后一步。
在进行地图输出时,需要根据实际需要选择合适的媒介和格式,如纸质地图、电子地图或者网络地图等。
同时,还需要注意地图输出的质量和尺寸,确保地图的可用性和适用性。
在地图发布方面,可以通过印刷品、展示板、电子邮件、网站等方式将地图传递给目标用户,以满足用户的实际需求。
数字地图制作需要掌握一定的技巧和知识。
集成电路版图设计cadence设计流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!集成电路版图设计的Cadence设计流程详解集成电路(IC)版图设计是半导体行业中至关重要的环节,它直接影响到芯片的性能、功耗和可靠性。
一幅地图的完成步骤
一,添加底图
二,添加新图层,并进行编辑
1、建立新图层(在arccatalog中建,在arcmap中编辑):
file-new-folder(shapefile)
2、右击存储盘-new-folder(shapefile):
在arcmap中添加新建图层,在“点”符号处,单击左键,出现下面对话框,选择点样式
3、编辑图层
(1)添加编辑图层按钮(在layer和图层显示部分以外点右键即可)(2)对图层进行编辑
1.Editor-Start Editing(激活编辑图框)
2.在editor功能中点击Sketch Tool,可以对点数据进行编辑
3.save edits保存编辑,编辑完用stop editing
三,属性表添加
添加属性:
1、选择所要添加属性图层,右击选择open attribute table
2、添加相应属性字段
(1)点击图框下部options中的add field功能
(2)添加相应字段名称,并选择类型及对应的精度、小数位(precision、scale),先将所有字段全部添加,然后逐个编辑
(3)将每个点对应的值添加到属性表中,要一一对应
(4)将添加好的字段保存
四,输出地图
1.打开输出图版View-layout view
2.添加各种地图要素
(1)添加地图名称Insert-title-change symbol (2)添加图例Insert-legend
(3)添加指北针Insert-North Arrow
(4)添加比例尺Insert-Scale Bar
3.对整图进行整饰
4.输出地图File-export map。
使用Encounter进行布局布线——By WangJZ magic14@2011-4-20 本文以一个简单设计为例,介绍Cadence公司的自动布局布线工具Encounter的基本使用流程。
下面是具体步骤:工程目录为存放在用户文件夹下的EDI_phy文件夹,文件夹中包括使用DesignCompiler对设计进行综合后输出的门级网表文件tt.v和约束文件constrain.sdc。
设置环境变量,进入工程目录,用encounter命令启动软件,如下图所示:软件启动后,encounter的图形界面如下图所示:导入设计文件,如下所示。
其他选项可暂时不填,保持默认设置,点击确认按钮。
成功导入设计文件后,Encounter视图如下所示:定义设计的尺寸、长宽比等信息,如下所示:完成后如下图所示,Core区和IO边缘有10um的距离。
添加全局连线,此处主要是电源和地的全局连线,分别把VDD的pin、net和高电平连接到全局连线VDD,把VSS的pin、net和低电平连接到全局连线VSS,如下所示:添加电源环,如下所示:填入电源环的宽度、距离、使用的金属层等信息,点击确认后,电源环添加到Core区和IO 边缘之间的空间,如下所示:添加core区中标准单元的电源连线,如下所示:添加电源连线后,视图如下所示:放置标准单元,然后切换到版图视图,可看到标准单元放置后的效果,如下所示:接着进行时钟树综合,可使用手动编写的时钟树配置文件或者用软件自动生配置文件进行时钟树综合。
此处采用软件自动生成配置文件的方式,如下所示:时钟树综合的同时会进行版图的初始布线。
完成时钟树综合后,进行版图的详细布线,如下所示:详细布线采用默认设置即可,完成详细布线后效果图如下:如果只是进行Encounter的学习,到此处即可保存并输出结果。
如果是要进行实际的流片生产,还需对各层进行填充,包括标准单元填充和各个金属层的填充,以保证满足生产所需的密度。
Encounter使用入门教程本教程介绍一下自动布局布线工具Encounter的使用知识,开始以一个简单的十进制计数器版图的自动实现为例子,之后介绍包含block模块的复杂的版图自动实现。
在Designer Compiler使用入门教程中,笔者设计了一个十进制计数器,并经过Design Compiler对其进行综合后获得了门级综合网表文件counter.sv 以及约束文件counter.sdc,根据这两个文件,我们就可以使用SOC Encounter 实现十进制计数器的物理版图设计了。
首先,我们要准备使用Encounter进行版图自动设计时所需要的数据:时序库文件:fast.lib,slow.lib,tpz973gwc.lib,tpz973gbc.lib物理库文件:tsmc18_6lm_cic.lef,tpz973g_5lm_cic.lef,tsmc18_6lm_antenna_cic.lef 门级网表文件:pad_counter.sv时序约束文件:pad_counter.sdcIO位置放置文件:pad_counter.io //在设计导入Encounter中指定PAD的放置位置文件,不是必须文件还有其它一些文件在后面用到时进行介绍。
一、网表中添加PAD、编写IO Assignment File这里,pad_counter.sv是加入PAD后综合得到的门级网表。
工程项目中设计制作完成后的芯片要进行封装,PAD就是芯片在封装时连接封装引线的地方。
一般信号输入/输出PAD即I/O PAD要在综合前添加进入网表中,电源电压PAD可以在综合时添加也可以在综合后添加。
接下来就先介绍一下如何在网表中加入PAD,其实给网表加入PAD就是一般的module例化,和Verilog中一般的module 模块例化是一样的。
这里介绍在综合时给设计中加入I/O PAD。
十进制计数器的Verilog源程序如下:module Cnt10(reset_n,clk,in_ena,cnt,carry_ena);input clk;input reset_n;input in_ena;output [3:0] cnt;output carry_ena;reg [3:0] cnt;reg carry_ena;always @(posedge clk or negedge reset_n)beginif(!reset_n)cnt<=4'b0;else if(in_ena && cnt==4'd10)cnt<=4'b0;else if(in_ena && cnt<4'd10)cnt<=cnt+1'b1;endalways @(posedge clk or negedge reset_n)beginif(!reset_n)carry_ena<=1'b0;else if(in_ena && cnt==4'd10)carry_ena<=1'b1;elsecarry_ena<=1'b0;endendmodule加入PAD后的十进制计数器Verilog网表如下:module Cnt10_PAD(reset_n,clk,in_ena,cnt,carry_ena); //顶层模块input reset_n;input clk;input in_ena;output [3:0] cnt;output carry_ena;wire top_clk,top_reset,top_in_ena;wire top_carry_ena;wire [3:0] top_cnt;Cnt10CNT10(.reset_n(top_reset),.clk(top_clk),.in_ena(top_in_ena),.cnt(top_cnt),.carry_ena (top_carry_ena)); //这里是对Cnt10 module的例化//下面是I/O PAD module的例化PDIDGZ PAD_CLK(.PAD(clk),.C(top_clk));PDIDGZ PAD_RESET(.PAD(reset_n),.C(top_reset));PDIDGZ PAD_IN_ENA(.PAD(in_ena),.C(top_in_ena));PDO02CDG PAD_CARRY_ENA(.I(top_carry_ena),.PAD(carry_ena));PDO02CDG PAD_CNT_0(.I(top_cnt[0]),.PAD(cnt[0]));PDO02CDG PAD_CNT_1(.I(top_cnt[1]),.PAD(cnt[1]));PDO02CDG PAD_CNT_2(.I(top_cnt[2]),.PAD(cnt[2]));PDO02CDG PAD_CNT_3(.I(top_cnt[3]),.PAD(cnt[3]));endmodule说明:关于PAD如何例化,首先要查看厂家提供的工艺库中的关于PAD的verilog 文件,如本例子中使用tsmc18工艺库,描述PAD的verilog文件为tpz973g.v,这个文件是PAD文件的verilog描述,包括输入输出的端口等信息。
基于umc18工艺的SOC Encounter数字版图设计流程 ——组合逻辑电路数字版图设计V1.12010.4.23一、文件的准备 (2)1.1库文件的准备 (2)1.2根据设计准备所需文件 (2)二、运行软件 (3)三、版图设计流程 (3)3.1Design_import (3)3.2Global Net Connection (5)3.3 FloorPlan (6)3.4 Add Power Rings (8)3.5Add Stripes (9)3.6Placement Blockage (9)3.7 Placement (9)3.8 Special Route (SRoute) (10)3.9 Trail Routing (12)3.10 Nano Routing (13)3.11 Add Filling (14)3.12 Verify connectivity (14)3.13 Verify Geometry (15)3.14 Export Files (17)四、源文件 (18)五、修改记录 (18)一、文件的准备1.1库文件的准备对于SOC Encounter而言,后端设计所需的主要有由Foundry厂所提供的标准单元和I/O Pad 的库文件,它包括物理库、时序库,分别以.lef、.tlf(或者.lib)的形式给出,其中I/O Pad 的相关库文件只有在做有Pad的版图时才需要。
本次实验设计的32位乘法器是组合逻辑电路,不需要时序约束文件。
本次设计中不包括Pad,因此不需要I/O库。
对于umc18的工艺,版图设计所需要的库文件在服务器上的路径如下:/software/course_lib_umc18/umc18_6lm.lef (标准单元)1.2根据设计准备所需文件完整的时序电路数字版图设计所包括的文件有:Verilog网单,sdc时序文件,def电源pad 声明文件,io位置说明文件。
这里分别对其进行简单的说明,本次实验只需用到DC综合后的门级网单。
(1)DC综合后的网单文件(.v格式)对于有Pad的请况,还需要在网单里面加入输入输出的IO Pad。
Pad可以在综合前加入也可以在综合后加入,如果在综合之前加入,综合工具可以优化驱动和负载,需要在综合的时候把时钟信号和Pad设置成不可综合,因为时钟树在布局布线时处理,而Pad没有逻辑功能,仅提供输入输出负载。
(2)时序约束.sdc文件,由DC产生提供设计的时序约束信息(详细见design_Vision指导用书)。
(3)def文件,此文件对版图中用到的电源Pad和IO Pad进行声明。
设计中有Pad时def 文件才需要。
(4)IO位置说明文件。
下面为本次乘法器设计中一部分pin的位置分布。
Version: 2Offset: 154.1100Pin: A[14] N 2 0.2800 0.2800Offset: 224.0700Pin: A[6] N 2 0.2800 0.2800Offset: 275.5500Pin: OUT[2] N 2 0.2800 0.2800Offset: 278.1900Pin: B[10] N 2 0.2800 0.2800Offset: 278.1900Pin: OUT[4] N 4 0.2800 0.2800Offset: 286.1100Pin: OUT[1] N 2 0.2800 0.2800…补充说明:(1)如果没有IO文件,版图会自动摆放pad或pin;可以先不加此文件,从版图中导出一个,再修改。
(2)IO文件的offset指的是偏离左下角的平移(水平或者垂直)距离(3)pad声明时还要定义其方向。
这个很重要,设计时一定要注意。
二、运行软件准备好库文件以及设计文件,就可以进行版图设计了。
在自己设定的目录下键入“encounter”命令,运行Encounter,注意不要加“&”,服务器上的版本不支持后台运行。
准备好DC综合后的门级网单。
三、版图设计流程注:本次实验只是让大家对数字版图设计进行基本的了解,更具体的操作可以查阅相关书籍。
3.1Design_import目的:读入设计所需要的库文件和设计文件菜单操作:Design –> design import,如下图所示。
Basic模式:导入准备好的设计网单.v文件,lef文件。
注:顶层模块可以自己手动添加,也可自动添加。
advance模式:Power:填入版图里电源和地的线名。
注:Power Nets和Ground Nets的名字最好和库里面的标准单元的电源和地的pin名(可在库文件里查)一致,这样后面做映射会比较方便。
umc18:Power Nets:VDDGround Nets:GND做到这里可以保存设置好的配置,点击Save…保存,后缀名是.conf,下次直接Load进来,再进行修改。
IPO/CTS:目的:encounter在放置单元的时候会实时进行优化,需要制定优化所需的buf、inv以及延迟单元,只需要提供cell的Footprint即可。
Footprint名可在.lib文件中查阅和选择,umc18的工艺相关的footprint是buf,inv以及dly。
CTS是指时钟树时用的buf。
本次实验中该项不用填写,否则会出现warning。
点击OK。
会有关于时序约束的warning出现,可以不予处理。
3.2Global Net Connection目的:把标准单元,电源pad等版图中用到的cell的pin和电源的net一一对应起来。
在encounter的工具列 , 按 Floorplan -> Connections Global Net…操作步骤如下:(1)Power Ground Connection –〉 ConnectPins: VDD(2)Scope选中 Under Module(3)To Global Nets: VDD(4)选中Override prior connection 和Verbose Output(5)Add to List(6)把VDD改成GND,重做(1)到(5)步(7)选中Tie High,To Global Nets: VDD ,Add to List,表示VDD是电源高电平(8)选中Tie Low,To Global Nets: GND ,Add to List,表示GND是电源地(9)点击Apply本设计的报告结果如下图:目的:对整个版图进行布局规划菜单操作:选择FloorPlanÆSpecify FloorPlan,在弹出的对话框中对将要进行的设计进行一个整体的规划。
以下对设定内容进行几点解释:(1)Size by –〉Core Size by –〉Aspect Ratio选择Ratio(H/W)将给出一个整个布局区域的宽长比,一般是一个长方形;(2)Core Utilization用Size by –〉Core Size by –〉Aspect Ratio‐〉Core Utilization 选项确定芯片面积的大小, Core Utilization表示core面积的利用率,面积允许的话,其数值越低,则芯片面积越大,用于布线的面积越宽松,布线越容易通过,一般选择0.7左右。
这是决定芯片面积大小,能否布局布线成功关键的一步。
如果事先大致知道芯片的面积规划,可以直接选择width and height进行布局规划 (3)Core Margins by:选择Core to IO Boundary, 设置core 和芯片边缘的间隔,这个间隔是用来放置Core 的电源环的。
所以需要根据后面的电源环,电源环间距等参数综合来决定。
这里选择20(因为我后面的电源环宽度是7,电源环间距是2,电源环距边缘的offset是2)。
这个位置同样会用来走输出pin的连线,间距最好尽量大,以保证走线没有问题 (4)Standard Cell Rows Æ Double‐back rows图示选择表示隔行row将进行翻转,以保证靠在一起的部分同为power或ground。
(5)Row Spacing: 表示行与行之间的间距,这里选择默认的0;(6)Row hight:表示行的高度。
这里选择默认的5.04。
点击OK 。
3.4 Add Power Rings目的:添加core的电源环和地环,在数字标准单元区域的周围放置power ring,用于提供 数字部分的电源和地。
菜单操作:按 Power ‐> Power Planning ‐> Add Rings…相关设置如下:在弹出的选单中,Ring Configuration里面需要填写Power Ring的宽度、间距,金属层等数据信息,一般要视实际需求而定Layer:表示电源环所在的金属层,一般选择金属3和金属4。
Width表示电源环的线宽,尽量宽一些,这里选择7。
Spacing表示两根电源环的间距,这里选择2。
Offset表示电源环和core之间的距离,选择2,或者也可以选择Center in channel。
点击apply,电源环和地环出现在core的周围,如下图所示。
最外围的虚线定义了芯片的大小。
3.5Add Stripes目的:用于在芯片中插入一些横的竖的电源线,保证供电。
菜单操作:Power ‐> Power Planning ‐> Add Stripes…,说明:这一步可选,因为芯片规模比较小,这里没有做这一步。
3.6Placement Blockage目的:在电源的Stripes 和 Routing的blockage的地方放置一些blockage,防止在这些地方place标准单元。
(个人理解供参考)菜单操作:Place-> Specify -> Placement Blockage…,金属层M1-M6全选。
说明:这一步可选。
本实验中不需进行该项设置。
3.7 Placement目的:放置标准单元。
菜单操作:Place ‐> Standard Cells and Blockages设置如下图所示:点击OK后,标准单元已经放置到core中,如下图。
3.8 Special Route (SRoute)目的:把标准单元的电源以及给core供电的电源pad和core电源环连接起来。
菜单操作:Route -> Special Route…相关设置:(1)Route Æ PAD pins: 把给core供电的电源pad的pin和core电源环连接起来。
本次实验该项不用设置,因为没有定义Pad。
(2)Route ÆStandard Cell pins: 把标准单元的电源pad的pin和core电源环连接起来。