数字IC后端ECO流程
数字集成电路后端设计的一般流程
数字集成电路后端设计的一般流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!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!数字集成电路后端设计是将前端设计的逻辑电路转化为实际的物理版图的过程,主要包括布局布线、时钟树综合、时序分析、功耗分析等步骤。
eco ic使用说明
eco ic使用说明Eco IC是一种高效能的集成电路,它在电力管理和能源利用方面具有显著的优势。
本文将介绍Eco IC的使用说明,并探讨其在节能环保方面的作用。
一、Eco IC的定义和特点Eco IC是一种集成电路,主要用于电力管理和能源利用。
与传统集成电路相比,Eco IC具有更高的能效和更低的能耗。
它采用了先进的技术和设计,能够在电力转换和传输过程中减少能量损耗,从而提高整体的能源利用效率。
二、Eco IC的使用方法1. 电源管理:Eco IC可以用于各种电源管理应用,例如电池充电、电池保护、电源适配器等。
使用Eco IC能够有效地控制电能的输入和输出,避免电能的浪费和损耗。
2. 节能控制:Eco IC可以用于各种节能控制系统,例如智能家居、工业自动化等。
通过使用Eco IC,可以实现对电器设备的智能控制和能耗监测,从而最大程度地减少能源的消耗。
3. 环境监测:Eco IC可以用于各种环境监测系统,例如空气质量监测、温湿度监测等。
通过使用Eco IC,可以实时监测环境参数,并根据监测结果进行相应的能源调节,以减少能源的浪费和污染。
三、Eco IC的优势和应用场景1. 高能效:Eco IC采用了先进的能量转换和管理技术,具有更高的能效和更低的能耗。
在各种能源管理和节能控制系统中,使用Eco IC能够显著提高能源利用效率,降低能源消耗。
2. 环保节能:Eco IC在能源利用方面具有显著的环保节能效果。
通过使用Eco IC,可以减少能源的浪费和污染,实现可持续发展和绿色生活。
3. 广泛应用:Eco IC可以广泛应用于各个领域,包括家庭、工业、农业等。
无论是智能家居、智能工厂还是智能农业,都可以通过使用Eco IC实现能源的高效利用和环境的保护。
四、Eco IC的未来发展趋势随着能源危机的加剧和环境问题的日益严重,Eco IC在未来的发展前景非常广阔。
未来的Eco IC将更加高效、智能和环保,能够应对各种能源管理和环境保护的需求。
数字芯片的设计过程
数字芯片的设计过程芯片在我们的生活和工作中无处不在。
例如,交通智能卡就嵌入了一颗带有微处理器、储存单元、芯片操作系统的芯片;而手机的主板则集成了数百颗芯片,有的负责无线电收发、有的负责功率放大、还有的负责存储照片和文件、处理音频,完成指纹、虹膜、面部的识别。
当然,手机中最重要,也是价格最昂贵的还属CPU,它是手机的控制中枢和逻辑计算的中心,通过运行存储器内的软件及数据库来操控手机。
根据处理的信号类型不同,芯片可以分为数字芯片和模拟芯片。
要制造出芯片,首先要完成芯片设计。
本文将概要介绍数字芯片设计的十大流程,以及各大流程中使用的主流EDA软件。
iphone13pro的A15芯片芯片设计可以分为前端设计(即逻辑设计)和后端设计(即物理设计)。
前端设计包括以下四个步骤:1前端设计(1)算法或硬件架构设计与分析在明确芯片的设计需求之后,系统架构师会把这些市场需求转换成芯片的规格指标,形成芯片的Spec,也就是芯片的规格说明书。
这个说明书会详细描述芯片的功能、性能、尺寸、封装和应用等内容。
系统架构师会根据芯片的特点将芯片内部的规格使用划分出来,规划每个部分的功能需求空间,确立不同单元间联结的方法,同时确定设计的整体方向。
这个步骤对之后的设计起着至关重要的作用,区域划分不够的,无法完成该区域内的功能实现,会导致之前的工作全部推翻重来。
设计出来的东西,必须能够制造出来,所以芯片设计需要与产业链后端晶圆的制造和封装测试环节紧密合作,工程师不但需要考虑工艺是否可以实现相应电路设计,同时需要整合产业链资源确保芯片产品的及时供给。
这里的算法构建会用到编程语言(MA TLAB,C++,C,System C,System Verilog等),对于不同类型的芯片,工程师们会有不同的偏好选择。
(2)RTL code(Register Transfer Level,寄存器传输级)实现由于芯片的设计及其复杂,设计人员并不在晶体级进行设计,而是在更高的抽象层级进行设计。
数字电路IC后端流程简介
save_mw_cel –as ORCA_data_setup
Note: The open cell is still the original ORCA cell !!
2015/9/20
23
西安邮电大学微电子学系
数字IC后端流程
CMOS集成电路版图
Data Setup
Design planning Placement
CMOS集成电路版图
2015/9/20
19
西安邮电大学微电子学系
7. Define Logical Power/Ground Connections
CMOS集成电路版图
2015/9/20
20
西安邮电大学微电子学系
8. Apply and Check Timing Constraints
CMOS集成电路版图
输入输出单元(I/O pad cell)
输入 输出 三态 双向
2015/9/20
考虑 ESD
8
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Physical Reference Libraries
数字后端流程
数字后端流程1. 数据准备。
对于CDN 的Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。
前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Desi gn Exchange Format)文件。
(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件SDC 是一样的,Pad的定义文件--tdf ,.tf 文件--technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库and DB, LIB file)2. 布局规划。
主要是标准单元、I/O Pad和宏单元的布局。
I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。
布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。
如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power netw ork analysis)--IR drop and EM .3. Placement -自动放置标准单元。
布局规划后,宏单元、I/O Pad的位置和放置标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Ph ysical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。
如果你用的是PC +Astro那你可用write_milkway, read_milkway 传递数据。
(流程管理)ECO作业流程
(流程管理)ECO作业流程ECO作业说明一、工作内容工作项目作业依据1.ECO资料检核 ECO签发及管理作业规范2.发料控制系统管制MASTER FILE 管理作业规范 M/F ALL VERSION管理作业规范3.开立ECO更改各项底片查检表 生产工具管理办法4.WIP查询 ECO中心训练教材5.ECO时WIP板子处理 ECO WIP/STOCK板子处理作业规范6.ECO旧工具处理 ECO更改旧工具处理作业规范 生产工具管理办法7.备妥新REV流程单通知 ECO现场流程单更改/更换作业规范8.ECO WIP现场流程单更改更换 ECO现场流程单更改/更换作业规范9.ECO文件处理 ECO签发及管理作业规范10.多料ECO管制 ECO签发及管理作业规范11.无订单ECO管制 ECO签发及管理作业规范12.提供内层数据变更提示单 内层铜渣侦测板数据变更提示单作业规范13.提供O/S模具可否共模查检表 O/S FIXTURE SAMPLE及ECO处理作业规范14.流程单CHECK LIST 流程单检验作业规范 CM转CC生产P/N各项PCB工具检验作业规范15.一次铜电流数据输入 一次铜电流作业规范16.二次铜电流数据输入 二次铜电流作业规范二、ECO处理作业总流程三、作业步骤3-1 执行ECO文件处理作业接收ECO文件 ECO会签传送至ECO中心(ECO签发流程如附件一、ECO A式如附件1)找出工程图 依ECO料号、旧版序找出对应的工程图(工程图袋如附件2)找出流程单 旧工具作废直接将原稿流程单扯下作为更改蓝本,若共存则COPY一份原稿流程单作为更改蓝本检查更改内容 填写ECO更改目的、更改内容是否明确、清楚,KEYPROCESS能否判定,若含糊不够明确,应向签发人询问澄清检查提供之附件 数量是否准确,资料是否齐全检查工具处理方式 工具是作废,还是共存,是否都很清楚、明了检查板子处理方式 WIP板子按何种方式生产或按何种方式处理 是否填写清楚、明了版序检查 料号版序书写是否正确,版序进阶是否正确;有多个版序共存时,应列出让CSE/SALES确认旧版序工具处理方式(依据附件4检查)主管核准 交于主管核准发料控制 旧版序作废应立即锁“10”,版序未前进但流程单内容有改应锁“55”(依据附件5作业, 依据附件6操作)蓝图室编号 若ECO A式未编号,须交蓝图室编ECO .NO.查 WIP计算机帐并打印 详细操作见附件7开立底片查检表 填写清楚查检表各项目,送与照相房签收,第一联留存(底片查检表见附件8)填写ECO B式 依照A式KEY PROCESS及流程单、WIP帐填写 (ECO B式见附件9)填写ECO C式 ECO料号、新版序(ECO C式见附件10)填写传票 填写工具处理及WIP板子处理传票及通知单,若工具共存,则不需此步(传票见附件11~17)登录ECO进出表 登录ECO出件日期及内容(表格见附件18)工程图填写 填写ECO日期、ECO号码、更改内容等ECO 分发 COPY附件留存其余给蓝图室分发,ECO资料传与CAM及照相房,注意有附件时应提示蓝图室分发给品管及蓝图室,有工程图时还要分发给成型课3-2 ECO旧工具处理作业ECO 旧工具处理 依据A式定义旧生产工具作废而非共存查工具计算机帐 以计算机系统查出现场应有底片套数,操作见附件19填写立即收回传票 依A式及KEY PROCESS判定工具立即收回作废,在旧生产工具收回传票上填写清楚ECO号码、ECO料号、收回工具之版序、各工具使用 生产单位现有工具类别及数量及处理日期、限定收回日期并注明立即收回填写WIP完成收回传票 依A式及KEY PROCESS判定工具WIP完成收回作废,在旧生产工具收回传票上填写清楚 ECO号码、ECO料号、收回工具之版序、各工具 使用生产单位现有工具类别及数量及处理日期并注明WIP完成收回,处理时限需在WIP过站后票发出时填写报表登录 把WIP立即收回传票填写之所有工具登录在“ECO 旧工具WIP立即收回报废FOLLOW-UPLIST”上(表格见附件20)•把WIP完成后收回传票填写之所有工具登录在“ECO 旧工具WIP完成后收回报废FOLLOW-UPLIST”上(表格见附件21)发送传票 把工具立即收回传票立即送与工具使用相应单位签收,并在送传票传票处签名,第一联留存, 其余3联留与现场单位;WIP完成收回需建檔管理,定期查看WIP是否已过站,过站立即发出传票收回旧工具(同立即收回)测试模具数据提供 依据 内层铜渣侦测板数据变更提示单作业规范 ,并依据CM厂提供之数据,自行填写完成(窗体见附件22)提供O/S模具查检表 依据 O/S FIXTURE SAMPLE及ECO处理作业规范并依据CM厂提供之数据,自行填写完(窗体见附件23)FOLLOW-UP 跟催工具处理执行状况(旧工具收回、新工具提供)工具收回正确 执行传票送回时,检核工具是否真正准确收回,若工具未准时处理,反应与主管并知会相关单位主管,提出改善对策;收回正确登录报表新工具已提供 ECO C式传回,已填写完成结案3-3 ECO WIP/STOCK 板子REWORK 处理作业板子REWORK处理 依据ECO A式定义板子REWORK填写REWORK通知单 REWORK通知单由签发人填写、并附在ECO A式后(REWORK通知单见附件24)签收REWORK通知单 检核REWORK通知单内容清楚是否与A式相符,并签收REWORK通知单报表登录 依据ECO REWORK 通知单内容登录于ECOWIP/STOCK板子REWORK/报废管理报表(报表见附件25)发送通知单 把通知单送与REWORK执行单位、CQE、生管签收,第一联留存送报表给生管确认 每周送报表与生管填写执行情况及完成日期存档 通知单及报表整理存盘管理3-4 ECO WIP/STOCK 板子报废处理作业WIP板子报废处理 依据ECO A式定义WIP报废之板子填写报废处理传票 依ECO A式填写传票内容报表登录 登录ECO WIP/STOCK板子REWORK/报废管理报表(报表见附件26)发送报废传票 把传票送与报废执行单位签收,第一联留存传票存档 装订处理传票管理送报表给生管确认 一周送与生管填写完成日期及执行情况存档 报表存盘管理3-5流程单更改、更换操作依ECO规定现场流程单更改 依ECO A式及WIP状况已判断须更改、更换流程单查WIP计算机帐并打印 操作见“附件27 ”,依批号打印一份计算机账单标示更改批号 在计算机账单上标示出须调帐的批号COPY一份原稿流程单 将ECO更改后原稿流程单COPY一份作为更改蓝本标示更改内容 标示流程单须更改的内容及途程站别盖更改章并填写EC.NO 在M/F上盖“流程单更改”章并填写EC.NO及操作方式填写生管须调计算机帐之内容 需注明调帐之内容及打印现场流程单之批数(样本见附件28)生管执行处理,并跟催 生管调计算机帐并依批数打印现场更改流程单,并交回ECO中心ECO中心流程单更改更换 赴现场更改、更换现场流程单附件填写并登录报表 在ECO WIP流程单更改、更换FOLLOW- UP LIST报表上登录(报表见附件29)登录报表并交于生管确认 将ECO WIP流程单更改、更换FOLLOW-UP LIST报表定时交于生管确认3-6报表及传票填写1 ECO B式之填写操作“立即收回工具”栏填写立即收回作废工具的版序•“WIP完成收回”栏填写WIP完成后收回作废的生产工具的版序“工具共存”栏填写工具之版序“P/N-REV”栏填写处理之料号及版序依打印之WIP计算机帐填写站别、数量标示各站别WIP/STOCK板子的处理方式及流程单处理方式填写ECO.NO. 及处理日期2制前工程课ECO进/出登录表之填写填写操作步骤ECO 日期 此栏填写ECO出件日期EC.NO 此栏填写ECO号码即ECO A式内ECO NO之数据P/N 此栏填写ECO料号OLD REV 此栏填写ECO旧版序NEW REV 此栏填写ECO新版序ECO+ 黄单子 此栏填写是否有黄单子ECOEC 类别 此栏依ECO A式填写(C=客户,S=业务,Q=品管,E=工程)难易度 此栏依ECO A式填写(A=重新制作,B=局部更改,C=简易更改)工具存废 此栏依ECO A填写(O=立即作废,S=局部作废,T=WIP完成后作废,C=共存)交期 此栏填写ECO A 式订单交期之日期更改顺序 此栏依ECO A式填写工具更改之优先级ECO OUT 此填写ECO A 式上之出件时间ECO 内容摘要 此栏填写ECO更改内容之记录工具别 此栏依ECO B式分别填写各工具的处理方式(R=立即作废,F=WIP完成后作废,C=共存)•注意﹕每页需填起止日期便于查询其余报表可参照此种方式填写3-7 流程单CHECK LIST需建立原稿流程单 新料号、ECO版序前进或ECO时流程单内容有更改打印流程单 打印需建立(更新)之流程单,操作见附件30交叉核对 与CM传来之流程单交叉核对,原则上两张流程单应当一致,否则应检查其出入之原因或询问CM设计者流程单check list 依照流程单check list逐项检查(流程单check list见附件31)并填写完整,如发现疑问,询问CM设计者,得以解决原稿流程单装订 将原稿流程单依料号类别、顺序装订在相应的“原稿流程单数据夹”通知生管发料 将DEC发料控制代码改为“CC”ECO作业注意事项﹕1.在接到ECO后,KEY PROCESS或需更改之工具自己不能确定时,必须询问ECO签发人,准确判定。
数字IC后端设计流程
ASIC/SoC后端设计作业流程剖析关键词place route DSM megacell clock_tree STA OPT ECO引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。
随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。
为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。
在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。
本文作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC 的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。
本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。
传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。
我们首先介绍传统的两种后端流程。
前后端合一的流程将作为另一个专题在以后讨论。
一、扁平流程(Flat flow)介绍最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。
数字IC后端ECO流程
数字IC后端ECO流程ECO Flow[By Nir Dahan]I have posted a blog about ECO some monthes ago, see /doc/019bb768af1ffc4ffe47aca2.html/blog/2007/04/eco.htmlAnd now it's another eco post from: Adventures in ASIC Digital Design , just for reference.ECO Flow By Nir DahanHere is a useful checklist you should use when doing your ECOs.1. RTL bug fixCorrect your bug in RTL, run simulations for the specific test cases and some your general golden tests. See if you corrected the problem and more important didn't destroy any correct behavior.2. Implement ECO in Synthesis netlistUsing your spare cells and/or rewiring, implement the bug fix directly in the synthesis verilog netlist. Remember you do not re-synthesize the entire design, you are patching it locally.3. Run equivalence check between synthesis and RTLUsing your favorite or available formal verification tool, run an equivalence check to see if the code you corrected really translates to the netlist you patched. Putting it simply - the formal verification tool runs through the entire state space and tries to look for an input vector that will create 2 different states in the RTL code and the synthesis netlist. If the two designs are equivalent you are sure that your RTL simulations would also have the same result (logically speaking) as the synthesis netlist.4. Implement ECO in layout netlistYou will now have to patch your layout netlist as well. Notice that this netlist is very different than the synthesis netlist. It usually has extra buffers inserted for edge shaping or hold violation correction or maybe even totally differently logically optimized.This is the real thing, a change here has to take into account the actual position of the cells, the actuall names etc. Try to work with the layout expert in close proximity. Make sure you know and understand the floorplan as well - it is very common to connect a logic gate which is on the other side of the chip just because it is logically correct, but in reality it will violate timing requirements.5. Run equivalence check between layout and synthesisThis is to make sure the changes you made in the layout netlist are logically equivalent to the synthesis. Some tools and company internal flows enable a direct comparison of the layout netlist to the RTL. In many it is not so and one has to go through the synthesis netlist change as well6. Layout to GDS / gate level simulations / STA runs on layout netlist (all that backend stuff…)Let the layout guys do their magic. As a designer you are usually not involved in this step.However, depending on your timing closure requirements, run STA on the layout netlist to see if everything is still ok. This step might be the most crucial since even a very small change might create huge timing violations and you would have to redo your work.Gate level simulations are also recommended, depending on your application and internal flow.Labels: AsicDesign。
IC行业收藏:数字后端面试问题
IC行业收藏:数字后端面试问题zz(2013-05-08 13:06:07)转载▼分类:硬件数字后端面试问题分类:IC设计2012-08-31 15:51 2251人阅读评论(0) 收藏举报面试transitiondelaypathtreefunction目录(?)[+] 1.1 EETOP版主面试问题001)Why power stripes routed in the top metal layers?为什么电源走线选用最上面的金属层?因为顶层金属通常比较厚,可以通过较大的电流1.高层更适合globalrouting.低层使用率比较高,用来做power的话会占用一些有用的资源,比如std cell通常是m1 Pin。
2. EM能力不一样,一般顶层是低层的2~3倍。
更适合电源布线。
3.一般ip占用的层次都靠近下几层,如果上层没有被禁止routing的话,top layer可以穿越,低层是不可能的,并且高层对下层的noise影响也小很多。
002)Why do you use alternate routing approach HVH/VHV(Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)?为什么要使用横竖交替的走线方式?(感觉这个问题比较弱智,但是号称是intel的面试问题,晕!我憧憬和向往的圣地啊!!!)为了节省布线资源---主要原因横竖的两根线之间的耦合系数最小,信号干扰小003)How to fix x-talk violation?如何解决线间干扰?答案:1)upsize victim net driver, downsize aggressor net driver2)increase wire space, shielding, change layer,change wire width3)insert butter in victim net能答出以上3条的,在工作中已经基本够用,但是还有两个不常用到的,是AMD的一个大牛告诉我的。
数字IC前端后端流程及工具
数字后端设计流程-8 布线
Layer Layer Layer Layer Layer Layer Layer Layer
"METAL1" "METAL2" "METAL3" "METAL4" "METAL5" "METAL5" "METAL7" "METAL8"
pitch pitch pitch pitch pitch pitch pitch pitch
TAPE-OUT
布局布线工具根据基本单元库的时序-几何模型, 将电路单元布局布线成为实际电路版图
Contents
1 2 3 基于标准单元的ASIC设计流程
数字前端设计(front-end)
数字后端设计(back-end)
4
3
教研室ASIC后端文件归档
Q&A
数字前端设计流程-1
RTL file
综合
什么时候需要做形式验证? Verify RTL designs vs. RTL designs
-- the rtl revision is made frequently
Verify RTL designs vs. Gate level netlists -- verify synthesis results -- verify manually coded netlists,such as Design Ware
数字前端设计流程-13 形式验证
静态时序分析检查了电路时序是否满足要求,而 形式验证检查了电路功能的正确性。
形式验证工具本质是一个比较器!其功能就是比 较两电路功能是否完全一致。
IC后端流程(初学必看)
校外IC后端实践陈述本教程经由过程对synopsys公司给的lab进行培训,从verilog代码到版图的全部流程(当然只是根本流程,因为真正一个大型的设计不是那么简略就完成的),此教程的目标就是为了让大家尽快懂得数字IC设计的精确流程,为今后进修树立一个基本.此教程只是本身摸索实验的成果,其实不代表内容都是准确的,只是为了解释精确的流程,里面必定还有很多未完美并且有错误的地方,我在往后的进修当中会对其一一完美和修改.此后端流程大致包含一下内容:1.逻辑分解(对象DC 逻辑分解是干吗的就不必解释了把?)2.设计的情势验证(对象formality)情势验证就是功效验证,重要验证流程中的各个阶段的代码功效是否一致,包含分解前RTL代码和分解后网表的验证,因为如今IC设计的范围越来越大,假如对门级网表进行为态仿真的话,会消费较长的时光(范围大的话甚至要数礼拜),这对于一个对时光请求严厉(设计周期短)的asic设计来说是不成容忍的,而情势验证只用几小时即可完成一个大型的验证.别的,因为版图后做了时钟树分解,时钟树的拔出意味着进入布图对象的本来的网表已经被修改了,所以有须要验证与本来的网表是逻辑等价的.3.静态时序剖析(STA),某种程度上来说,STA是ASIC设计中最重要的步调,应用primetime对全部设计布图前的静态时序剖析,没有时序违规,则进入下一步,不然从新进行分解.(PR后也需作signoff的时序剖析)4.应用cadence公司的SOCencounter对分解后的网表进行主动计划布线(APR)5.主动计划今后得到具体的延时信息(sdf文件,由寄生RC和互联RC所构成)反标注到网表,再做静态时序剖析,与分解相似,静态时序剖析是一个迭代的进程,它与芯片计划布线的接洽异常慎密,这个操纵平日是须要履行很多次才干知足时序需求,假如没违规,则进入下一步.6.APR后的门级功效仿真(假如须要)7.进行DRC和LVS,假如经由过程,则进入下一步.8.用abstract对此lab实验进行抽取,产生一个lef文件,相当于一个hardmacro.9.将此macro作为一个模块在别的一个top设计中进行挪用.10.设计一个新的ASIC,第二次设计,我们须要添加PAD,因为没有PAD,就不是一个完全的芯片,具体操纵下面会说.11.反复第4到7步1.逻辑分解1)设计的verilog代码2)分解之前,我们要拔取库,写好束缚前提,修改dc的启动文件,目标库选择TSMC(此设计都是用TSMC18的库)的typical.db.(选择max库会比较好) Dc的敕令浩瀚,但是最根本的敕令差不久不多,此设计的束缚文件敕令如下:create_clock -period 10 [get_ports clk] //用于时钟的创建set_clock_latency -source -max 0.2 [get_ports clk] //外部时钟到core 的clk连线延时set_clock_latency -max 0.1 [get_ports clk] //core的clk到存放器clk 端的net连线延时set_clock_uncertainty -setup 2 [get_ports clk] //时钟延时的不肯定性,求setup违规时会被盘算进去set_clock_uncertainty –hold 1 【all_clocks】set_input_delay -max 0.5 -clock clk[get_ports [list [remove_from_coll [all_inputs] clk] ] //输入延时,外部旌旗灯号到input端的连线延时set_output_delay -max 0.5 -clock clk [all_outputs] //输出延时set_driving_cell -lib_cell INVX4 [all_inputs] //输入端的驱动强度set_load -pin_load 0.0659726 [all_outputs] //输出端的驱动力set_wire_load_model -name tsmc18_wl10 -library typical //内部net的连线模子set_wire_load_mode enclosed //界说建模连线负载相干模式set_max_area 0compilereport_timingreport_constraintchange_names -rule verilog –hierset_fix_multiple_ports_net –all//输出网表,主动计划布线须要//输出ddc//输出延时文件,静态时序剖析时须要//输出束缚信息,主动计划布线须要3)逻辑分解启动design_vision.R输入束缚文件.F4)时序剖析分解今后我们须要剖析一下时序,看时序是否相符我们的请求,分解现实上是一个setup时光的知足进程,但是我们分解的时刻,连线的负载只是库供给的(即上面的wire_load),其实不是现实的延时,所以一般做完分解今后,时光余量(slack)应当为时钟的30%(经验值),以便为后面现实计划布线留下充足的延时空间.因为假如slack太小,甚至接近于0,固然我们看起来是没有时序违规的,但是现实计划今后,时序肯定无法知足.应用report_timing敕令,可以检讨时序剖析陈述:****************************************Report : timing-path full-delay max-max_paths 1-sort_by groupDesign : muxDate : Fri Jul 2 12:29:44 2010****************************************Operating Conditions: typical Library: typical(模子库)Wire Load Model Mode: enclosedStartpoint: data2[4] (input port clocked by clk)Endpoint: dataout_reg_15_(rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: maxDes/Clust/Port Wire Load Model Library------------------------------------------------mux tsmc18_wl10 typical(线载模子及库)Point Incr Path--------------------------------------------------------------------------input external delay 0.50 0.50 fdata2[4] (in) 0.01 0.51 fmult_14/b[4] (mux_DW_mult_uns_0) 0.00 0.51 fmult_14/U131/Y (INVX1) 0.54 1.05 rmult_14/U161/Y (NOR2X1) 0.14 1.18 fmult_14/U39/S (CMPR42X1) 0.68 1.87 fmult_14/U12/CO (ADDFX2) 0.32 2.19 fmult_14/U11/CO (ADDFX2) 0.23 2.42 fmult_14/U10/CO (ADDFX2) 0.23 2.65 fmult_14/U9/CO (ADDFX2) 0.23 2.88 fmult_14/U8/CO (ADDFX2) 0.23 3.10 fmult_14/U7/CO (ADDFX2) 0.23 3.33 fmult_14/U6/CO (ADDFX2) 0.23 3.56 fmult_14/U5/CO (ADDFX2) 0.23 3.79 fmult_14/U4/CO (ADDFX2) 0.23 4.02 fmult_14/U3/CO (ADDFX2) 0.23 4.25 fmult_14/U2/CO (ADDFX2) 0.22 4.47 fmult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 fdataout_reg_15_/RN (DFFTRXL) 0.00 4.47 fdataout_reg_15_/CK (DFFTRXL) 0.00 10.20 r----------------------------------------------------------------------------------------------------------------------------------------------------我们来看以上陈述,dc陈述的时刻会显示出症结路径,即延时最大的路径,时序剖析包含两段,前面一段是旌旗灯号的延迟时光,即data arrival time 为 4.47,下面是盘算请求时光,也即相对于时钟,设计所能忍耐的最大延时,因为到达存放器clk端延时,即clock network delay,所以设计增长了0.30的余量,同样因为时钟的不肯定度(可能提前也可能延后0.1),我们取最坏情形,就是时钟超前0.1,则时光余量减去0.1,最后一个是门的树立时光请求,是0.19,最后得到数据的请求时光.Slack是请求时光减去到达时光的差值,slack越大越好.越大解释留给计划布线的时序越宽松.从陈述中我们看出,时序余量为 5.55,解释时序达到了请求,足够知足我们今后计划布线的时序请求.当然,我们有专门的时序剖析对象,primetime,下面会稍微介绍.2.情势验证1)怎么包管分解前和分解后的网表逻辑功效是一致的呢,对门级网表进行为态仿真,又太糟蹋时光,于是,一款壮大的验证对象formality,给了我们很好的帮忙.2)情势验证数据预备:分解前RTL代码,分解后的网表,分解所用到的库.3)验证进程如下:1.起首我们打开formality,敕令为fm_shell(敕令行界面),formality(图形界面).初学者一般应用图形界面,应用图形界面的时刻,对象会主动产生一个log文件,记载敕令,我们可以将这个文件内容做一个fms格局,如许鄙人次验证的时刻可以应用敕令界面.2.打开formality如下第一步:起首我们参加原RTL代码,reference->read_design file->verilog->mux.v,选择好今后load file第三步:设置top名 reference->set top design 我们选择mux为top名同样的办法对网表进行设置(第二个菜单栏implementation)然后转到第四栏,点击run matching最后转到第五栏,verify,假如网表无错,会显示验证经由过程.3 静态时序剖析静态时序剖析重要针对大型ASIC设计,4 主动计划布线1)数据预备第一:须要分解后的网表以实时序束缚第二:须要主动计划布线的物理库(lef文件,这里用到tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef)为了可以或许懂得lef文档的感化,这里对lef做简略的介绍,lef一般分为两种:一种是技巧物理库,重要包含工艺信息,设计规矩信息,金属通孔信息等.下例是对金属一层的界说,TYPE指明METAL1是可布线层,WIDTH界说的是METAL1的默认布线宽度,SPACING用于设定METAL1布线间距.DIRECTION HORIZONTAL指明METAL1是用于程度走线,当然这其实不料味着它不克不及垂直走线,在一些布线资本较少的区域,照样可以选择垂直布线的.具体介绍,可以参考相干技巧文档.LAYER METAL1TYPE ROUTING ;WIDTH 0.230 ;MAXWIDTH 9.9 ;AREA 0.202 ;SPACING 0.230 ;SPACING 0.6 RANGE 10.0 100000.0 ;PITCH 0.560 ;DIRECTION HORIZONTAL ;EDGECAPACITANCE 9.1090e-05 ;END METAL1别的一种就是单元物理库,界说了单元库中各单元的信息,文件又有两部分一种是SITE语句对计划(placement)最小单位的界说,另一部分是采取MACRO语句对单元属性及几何外形的描写,下例是对一个与门为例来看看lef是若何描写它的.MACRO是单元界说的症结字,每一个MACRO代表一个单元.CLASS core 解释该单元是用于芯片的焦点区,SIZE肯定了单元的面积大小,比方5.04是代表该单元的高度,后面我们做单元供电route的时刻,可以看到它们的宽度就是这个数值.再后面就是界说引脚A,B,Y,VDD,VSS等.MACRO AND2X1CLASS CORE ;FOREIGN AND2X1 0.000 0.000 ;ORIGIN 0.000 0.000 ;LEQ AND2XL ;SIZE 2.640 BY 5.040 ;SYMMETRY x y ;SITE tsm3site ;PIN YDIRECTION OUTPUT ;PORTLAYER METAL1 ;RECT 2.355 2.380 2.500 2.660 ; ENDEND YPIN BDIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.800 2.315 1.215 2.895 ; ENDEND BPIN ADIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.150 1.820 0.565 2.315 ; ENDEND APIN VSSDIRECTION INOUT ;USE ground ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.790 -0.400 2.640 0.400 ; RECT 1.450 -0.400 1.790 0.575 ; RECT 0.000 -0.400 1.450 0.400 ; ENDEND VSSPIN VDDDIRECTION INOUT ;USE power ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.755 4.640 2.640 5.440ENDEND VDDOBSLAYER METAL1 ;RECT 1.835 1.935 1.885 2.355 ;ENDEND AND2X1第三:时序库文件,typical.lib,也就是时序文件,界说了门的各类时序信息,某种意义来讲,这个和分解应用的db库是等价的.2)计划布线进程:第一步:打开encounter 把数据输入,别的在advanced栏的Power响应地位填上VDD,和VSS.如下图,设置完今后,记得把设置的设置装备摆设文件做一个save以便于下次应用第二步:打开今后,我们可以看到芯片区域,左边粉红色的就是尺度单元,中央谁人就是我们要设计的区域,64%是指cell面积的占领率,一般来说掌握在70%阁下,布线的时刻不会引起拥塞.别的我们须要对芯片进行稍微的更改,Floorplan->specify floorplan.,将core to IO那些项都填上45,留给电源环的放置.第三步:添加电源环设置如下图,NET填写VDD和VSS,layer选择顶层的两层金属,宽度设置为20(这个不定,可以依据现实设计来定),offset选择center in channel,则电源环会被设置在IO与core之间.之后电源环就加进去了,当然这是一个小电路,电源计划比较简略,对于一个庞杂的电路,还须要反正添加stripes,下降IRdrop.第四步:主动计划以及安插尺度单元,因为此设计较小,并没有block,所以可以直接进行尺度单元的放置.Place->standard cells and blocaks->OK然后我们发明尺度单元已经被加进去了:第五步:安插好了今后,我们须要将电源,地,等接口先衔接起来,起首我们在floorplan中选择global net connection,分离将VDD,VSS等都衔接起来.然后我们须要specify route将电源和地线先衔接起来,选择route->specify route因为我们这个设计只有尺度单元,所以我们只要选择尺度单元的布线即可:完成今后,点击OK,会得到下面的图:每行的row都有线衔接到外面的电源环第六步:时钟树分解(CTS),这是一个APR设计中最重要的一环,为什么要进行时钟树分解呢,简略地说,因为旌旗灯号传输的延时,我们须要让响应路径的时钟路径的也具有同样的延时,经由过程添加时钟缓冲器的办法,来清除各路径的树立时光,具体请参考相干书本和材料.添加好时钟树今后的版图如下:加了时钟树今后的版图密集了很多,因为加了很多buf.时钟树的剧本:AutoCTSRootPin clkPeriod 10nsMaxDelay 500ps # set_clock_latencyMinDelay 0ps # set_clock_latencyMaxSkew 100psSinkMaxTran 400psBufMaxTran 400psObstruction NODetailReport YESPadBufAfterGate NORouteClkNet NOPostOpt YESOptAddBuffer YESOptAddBufferLimit 100NoGating NOBuffer CLKBUFX1 CLKBUFXL CLKBUFX2 CLKBUFX3 CLKBUFX4 CLKBUFX8 CLKBUFX12 CLKBUFX16 CLKBUFX20 CLKINVXL CLKINVX1 CLKINVX2 CLKINVX3 CLKINVX4 CLKINVX8 CLKINVX12 CLKINVX16 CLKINVX20END然后将剧本选中,并进行时钟树分解.第七步:优化设计,敕令optDesign –postCTS,然后report_timing检讨时序陈述,肯定无违规,再进行完全布线.第八步:完全布线,route ->nanoroute->route之后得到的版图如下所示:第九步:保管设计,提取须要的数据.这里特殊留意提取gds文件的时刻,须要指定库文件中的streamOut.map文件,和merge gds(tsmc18_core.gds)文件,如图所示保管网表,并将此版图提取的网表做一次formality,与原代码匹配成功.5 第二次静态时序剖析用版图现实提取的延时文件进行6 APR后仿真用modelsim对版图提取的网表和sdf文件进行仿真.7 用calibre对版图进行DRC及其LVS验证在做这步之前,我们须要把相干的文档拷贝到icfb的工作目次下Encounter导出的gds文档:这里是mux8.gds(留意merge库的map文件)技巧文档如:,可以在厂家供给的库中去找Caliber验证文件:drc,lvs文档第一步:将encounter的版图数据导入virtuoso,打开icfb&,选择file->import->stream然后将版图信息和技巧文件填入:导入成功今后会消失我们所做的库,mux就是我们encounter中所画的版图.我们把版图打开:这就是我们所画的版图然后在此进行drc,和lvs,经由过程今后再进行下面的工作.第二步:drc检讨此处有错,其实不是逻辑有问题,是因为密度不敷的问题,须要在encounter阶段加FILLER,FILLER是与逻辑无关的,因为代工场的流片加工请求,须要加的,密度不敷,加工轻易引起问题.所以假如DRC报相似错误,假如是须要流片的版图,除非代工场赞成,不然必须清除这些错误.第三步:lvs检讨1)Lvs检讨之前,我们须要把分解后的verilog文件转换成网表文件,用于lvs,办法如下:终端下履行:v2lvs -v mux.v -l tsmc18_lvs.v -o CHIP.spi -s tsmc18_lvs.spi -c cic_ -ncalibre -lvs -spice layout.spi -hier -auto Calibre-lvs-cur_soce,之后会得到一个的网表文件.()2)用来lvs的网表我们选择之前导出:然后run lvs,匹配成功!8 用abstract对模块进行抽取我们把8*8乘法器模块用abstract对象导出lef,作为硬核,用于后面主动计划布线的挪用,我们可以从此实验中找到模数混杂主动版图的设计思惟. Abstract Def=>Lef第一步:创建一个新的library,并接洽关系一个tf文件.注:(1)不须要输入streamOut.map也不必点上(no merge)不须要更改.Top Cell Name 为空第五步:打开 library manager 在mux库里打开mux的layout,并选择tools=>layout.第六步:选择 Edit=>Search ,点击 Add Criteria ,如下设置,选择aplly ,在选择 WordStr All.第七步:保管退出第八步:打开 abstract,并打开mux库.然后把mux模块从core导入到block 当中,办法:点击mux,然后cell=>move=>block=>OK.第九步:点击GDS图中label,然后点击Q检讨Properity.看看是什么层,然后看看下面的net的Properity是什么层,以及是什么purpose.层:METAL3,Purpose:pin.具体寄义重要看abstract UG.<1> 点击,输入Map text labels to pinsMap text labels to pins 的书写格局及寄义参考abstract UG.<2>点击<3>点击<4> Export lef之后我们得到一个该模块的lef文件,下面我们就用这个模块做一次挪用.9将此macro作为一个模块在别的一个top设计中进行挪用.第一步:起首我们照样回到分解,我们从新设计一个top,这个top将包含新的逻辑功效,之前的mux模块,还有PAD模块.这个设计的精确框图如下:PDIDGZ为数字输入IO口PDO04CDG为数字输出IO口PVDD1DGZ 为供电PAD高电端PVSS1DGZ 为供电PAD的地电端Multiple为之前做的宏模块Mux为新加逻辑第二步,代码的改写:我们从新编写过verilog代码(带PAD),带PAD做分解有个利益,可以不必设置输入输出端口的驱动,因为PAD的驱动已经很大了,如许分解出的成果更接近现实.新的verilog代码如下:module mux_1 (clk,clr,a,b,y);//(这里我们引用了新的逻辑,留意这个mux_1和之前的没半点关系,只是为了表现挪用关系随意加的一个罢了)input clk,clr;input [7:0] a,b;output [15:0] y;reg [15:0] y;always @(posedge clk)beginif(!clr)beginy<=0;endelsebeginy<=a*b;endendendmodulemodulePAD(clk_pcb,clk_core,clr_pcb,clr_core,data1_pcb,data1_core,data2_pcb ,data2_core,dataout_core,dataout_pcb);(这是PAD模块,留意联合前面的框图是想想是若何加的)input clk_pcb,clr_pcb;output clk_core ,clr_core;input [7:0] data1_pcb,data2_pcb;output [7:0] data1_core,data2_core;input [15:0] dataout_core;output [15:0] dataout_pcb;PDIDGZ PAD_CLK (.PAD(clk_pcb),.C(clk_core));PDIDGZ PAD_CLR (.PAD(clr_pcb),.C(clr_core));PDIDGZ PAD_DATA1_0 (.PAD(data1_pcb[0]),.C(data1_core[0]));PDIDGZ PAD_DATA1_1 (.PAD(data1_pcb[1]),.C(data1_core[1]));PDIDGZ PAD_DATA1_2 (.PAD(data1_pcb[2]),.C(data1_core[2]));PDIDGZ PAD_DATA1_3 (.PAD(data1_pcb[3]),.C(data1_core[3]));PDIDGZ PAD_DATA1_4 (.PAD(data1_pcb[4]),.C(data1_core[4]));PDIDGZ PAD_DATA1_5 (.PAD(data1_pcb[5]),.C(data1_core[5]));PDIDGZ PAD_DATA1_6 (.PAD(data1_pcb[6]),.C(data1_core[6]));PDIDGZ PAD_DATA1_7 (.PAD(data1_pcb[7]),.C(data1_core[7]));PDIDGZ PAD_DATA2_0 (.PAD(data2_pcb[0]),.C(data2_core[0]));PDIDGZ PAD_DATA2_1 (.PAD(data2_pcb[1]),.C(data2_core[1]));PDIDGZ PAD_DATA2_2 (.PAD(data2_pcb[2]),.C(data2_core[2]));PDIDGZ PAD_DATA2_3 (.PAD(data2_pcb[3]),.C(data2_core[3]));PDIDGZ PAD_DATA2_4 (.PAD(data2_pcb[4]),.C(data2_core[4]));PDIDGZ PAD_DATA2_5 (.PAD(data2_pcb[5]),.C(data2_core[5]));PDIDGZ PAD_DATA2_6 (.PAD(data2_pcb[6]),.C(data2_core[6]));PDIDGZ PAD_DATA2_7 (.PAD(data2_pcb[7]),.C(data2_core[7]));PDO04CDG PAD_DATAOUT_0 (.I(dataout_core[0]),.PAD(dataout_pcb[0])); PDO04CDG PAD_DATAOUT_1 (.I(dataout_core[1]),.PAD(dataout_pcb[1])); PDO04CDG PAD_DATAOUT_2 (.I(dataout_core[2]),.PAD(dataout_pcb[2])); PDO04CDG PAD_DATAOUT_3 (.I(dataout_core[3]),.PAD(dataout_pcb[3])); PDO04CDG PAD_DATAOUT_4 (.I(dataout_core[4]),.PAD(dataout_pcb[4])); PDO04CDG PAD_DATAOUT_5 (.I(dataout_core[5]),.PAD(dataout_pcb[5])); PDO04CDG PAD_DATAOUT_6 (.I(dataout_core[6]),.PAD(dataout_pcb[6])); PDO04CDG PAD_DATAOUT_7 (.I(dataout_core[7]),.PAD(dataout_pcb[7])); PDO04CDG PAD_DATAOUT_8 (.I(dataout_core[8]),.PAD(dataout_pcb[8])); PDO04CDG PAD_DATAOUT_9 (.I(dataout_core[9]),.PAD(dataout_pcb[9])); PDO04CDG PAD_DATAOUT_10 (.I(dataout_core[10]),.PAD(dataout_pcb[10])); PDO04CDG PAD_DATAOUT_11 (.I(dataout_core[11]),.PAD(dataout_pcb[11])); PDO04CDG PAD_DATAOUT_12 (.I(dataout_core[12]),.PAD(dataout_pcb[12])); PDO04CDG PAD_DATAOUT_13 (.I(dataout_core[13]),.PAD(dataout_pcb[13])); PDO04CDG PAD_DATAOUT_14 (.I(dataout_core[14]),.PAD(dataout_pcb[14])); PDO04CDG PAD_DATAOUT_15 (.I(dataout_core[15]),.PAD(dataout_pcb[15])); PVDD1DGZ vdd1 (); (如今不必加的)PVDD1DGZ vdd2 ();PVDD1DGZ vdd3 ();PVDD1DGZ vdd4 ();PVSS1DGZ vss1 ();PVSS1DGZ vss2 ();PVSS1DGZ vss3 ();PVSS1DGZ vss4 ();PCORNERDG c1 ();PCORNERDG c2 ();PCORNERDG c3 ();PCORNERDG c4 ();endmodule#############################顶层模块######################### module top(clock,clear,da1,da2,dataout_out);input clock,clear;input [7:0] da1,da2;output [15:0] dataout_out;wire clk_core,clr_core;wire [7:0] data1_core,data2_core;wire [15:0] dataout_core;wire [15:0] y;PADPAD_TOP(.clk_pcb(clock),.clk_core(clk_core),.clr_pcb(clear),.clr_cor e(clr_core),.data1_pcb(da1),.data1_core(data1_core),.data2_pcb(da2), .data2_core(data2_core),.dataout_core(dataout_core),.dataout_pcb(dat aout_out));mux_1 mux_1 (.clk(clk_core),.clr(clr_core),.a(data1_core),.b(data2_core),.y(y)); mux mutiple (.clk(clk_core),.clr(clr_core),.data1(y[15:8]),.data2(y[7:0]),.datao ut(dataout_core));(这里是对硬核的挪用)endmodule第三步:逻辑分解留意的是,我们在逻辑分解之前,须要加如mux的db库文件,此文件由encounter计划布线今后产生的延时文件再经由pt静态时序剖析今后产生.我们给顶层模块加履束缚:Current_design toplinkcreate_clock -period 10 [get_ports clock]set_clock_latency -source -max 0.2 [get_ports clock]set_clock_latency -max 0.1 [get_ports clock]set_clock_uncertainty -setup 0.01 [get_ports clock]set_input_delay -max 0.5 -clock clock [all_inputs]set_output_delay -max 0.5 -clock clock [all_outputs]#set_driving_cell -lib_cell INVX4 [all_inputs]#set_load -pin_load 0.0659726 [all_outputs]set_wire_load_model -name tsmc18_wl10 -library typicalset_wire_load_mode enclosedset_dont_touch mux(留意此处,就是分解的时刻不针对mux进行分解,分解对象会主动跨越鸿沟对其他逻辑进行分解)set_dont_touch_network [all_clocks]compile -boundarychange_names -rule verilog -hier第四步:计划布线用分解得到的网表(top.sv)和束缚文件(sdc).并将之前的mux模块的lef 文档预备好.这里碰着了一个问题,在逻辑分解之前的代码我已经加如了PAD的VDD ,VSS和corner,但是分解完今后就不见了,原因不明,这时在计划之前就要手动添加上去.数据预备:时序文件:对应于上面的lib文件,typical.lib,block的lib(由PT产生),PAD的libIo文件:可以本身界说顶层端口的地位(下面会介若何做io文件)Sdc文件:分解后产生的束缚文件.Io文件的设置,重要由四个偏向决议,N,W,S,E就和我们英文里的四个偏向的首字母一样,当然还有NW,WS,SE,NE,四个角,是用与corner的摆放,该设计有34个口,外加8个供电PAD,加上四个CORNER总共有46个PAD,重要的是42个PAD,我们可以将这42个PAD放到本身想设置的地位,对于一个真正的设计,要斟酌今后连线的长度,内部模块摆放地位等,来合理安插io的地位.如图所示为该设计的PAD计划图:依据此计划图,我们对此设计的io文件编辑如下,io文件对应现实计划中的规矩是,N是由io文件列表的次序从左到右的放置,W偏向是由下到上的放置,S 同N,E同W.Pad: PAD_TOP/PAD_DATAOUT_12 NPad: PAD_TOP/PAD_DATAOUT_13 NPad: PAD_TOP/PAD_DATAOUT_14 NPad: PAD_TOP/PAD_DATAOUT_15 NPad: PAD_TOP/PAD_CLK NPad: PAD_TOP/vss2 NPad: PAD_TOP/vdd2 NPad: PAD_TOP/PAD_DATA1_0 NPad: PAD_TOP/PAD_DATA1_1 NPad: PAD_TOP/PAD_DATA1_2 NPad: PAD_TOP/PAD_DATA1_3 NPad: PAD_TOP/c1 NEOrient: R0Pad: PAD_TOP/c2 SWPad: PAD_TOP/PAD_DATAOUT_4 WPad: PAD_TOP/PAD_DATAOUT_5 WPad: PAD_TOP/PAD_DATAOUT_6 WPad: PAD_TOP/PAD_DATAOUT_7 WPad: PAD_TOP/vdd1 WPad: PAD_TOP/vss1 WPad: PAD_TOP/PAD_DATAOUT_8 WPad: PAD_TOP/PAD_DATAOUT_9 WPad: PAD_TOP/PAD_DATAOUT_10 WPad: PAD_TOP/PAD_DATAOUT_11 WPad: PAD_TOP/c3 NWPad: PAD_TOP/PAD_DATAOUT_0 SPad: PAD_TOP/PAD_DATAOUT_1 SPad: PAD_TOP/PAD_DATAOUT_2 SPad: PAD_TOP/PAD_DATAOUT_3 WPad: PAD_TOP/PAD_CLR SPad: PAD_TOP/vdd3 SPad: PAD_TOP/vss3 SPad: PAD_TOP/PAD_DATA2_7 SPad: PAD_TOP/PAD_DATA2_6 SPad: PAD_TOP/PAD_DATA2_5 SPad: PAD_TOP/PAD_DATA2_4 SPad: PAD_TOP/PAD_DATA2_3 EPad: PAD_TOP/PAD_DATA2_2 EPad: PAD_TOP/PAD_DATA2_1 EPad: PAD_TOP/PAD_DATA2_0 EPad: PAD_TOP/vdd4 EPad: PAD_TOP/vss4 EPad: PAD_TOP/PAD_DATA1_7 EPad: PAD_TOP/PAD_DATA1_6 EPad: PAD_TOP/PAD_DATA1_5 EPad: PAD_TOP/PAD_DATA1_4 E一切预备好今后,我们导入所有的预备数据会看到一个有PAD和宏模块的的芯片图因为PAD的面积较大,所以其他单元和模块看起来就比较小了.第五步:计划。
eco执行流程
“eco”执行流程
需求变更分析:分析项目需求变更,评估变更对设计的影响。
备份原有设计:备份原有的RTL代码,以保留原始设计。
修改设计方案:根据变更后的需求,修改出新的设计方案和RTL 代码。
修改验证方案:对验证的方案和testbench代码做相应修改。
提交新设计:将修改后的设计提交给相关部门进行评审。
后端布局布线:在布局布线过程中,可能会插入少量的冗余单元(Spare cell),以备后期的ECO修改。
ECO修改:在设计冻结(freeze)后,如果遇到临时的需求变更,可以通过ECO对已生成的网表文件进行修改,只对一些门/cell做增删,几乎不影响现有的后端工作。
验证:修改后需要重新进行验证,确保修改没有引入新的问题。
signoff:在各方面验证都满足要求后,可以将做好的设计送给foundry去tapeout,即流片前的ECO,又称为Pre-mask ECO。
IC设计后端流程
IC设计后端流程1. 物理设计(Physical Design):物理设计是将逻辑实现转化为布局和电路图的过程。
这个过程包括几个重要的步骤:-针对不同目标和约束进行电气特性分析和规划。
-进行物理分区和布局设计,在芯片上规划各个模块的位置和大小,并控制电路的连线密度和线长。
-进行电源网络设计,确保芯片内部各个模块的电源供应稳定。
-进行时序和容忍度等电性约束的分析和完成。
- 进行时序收敛(Timing Closure),优化电路以达到时序要求。
-进行时钟树设计和布线,确保时钟信号的传输稳定性和可靠性。
-进行信号连线布线,满足电性约束并最小化线长,以减小功耗、提高性能和降低突发噪声。
- 进行DRC(Design Rule Check)和LVS(Layout vs Schematic)等验证。
2. 标准细胞库设计(Standard Cell Library Design):标准细胞库是一组预先设计好的、可重复使用的、具有标准接口的逻辑门和存储器单元的集合。
在这个过程中,需要:-设计标准细胞的逻辑和物理结构,以及相应的特性和工艺库。
-进行标准细胞的电源和地设计,以提供正确的电源和地连接接口。
-进行标准细胞的物理特性模拟和验证,以确保其满足设计要求。
3. 物理验证(Physical Verification):物理验证是对物理设计结果进行各种检查的过程,以确保设计的正确性、规范性和可制造性。
主要包括以下环节:-设计规则检查(DRC):检查设计是否符合制造厂商的设计规则,包括线宽、线距、开孔等。
-电路规则检查(ERC):检查设计是否符合电路连接和功能规则,包括电压等级、电压偏置等。
-布局与原理图一致性检查(LVS):检查布局和电路图是否一致。
-容忍度分析和优化:分析设计中的容忍度并进行优化,以提高电路的可靠性和稳定性。
-功耗分析和优化:分析设计中的功耗并进行优化,以减小芯片的功耗。
-可制造性分析:分析设计是否可制造,并针对可制造性问题进行修复。
ECO设计
ECO设计ECO 设计,一般在后端设计中经常会遇到前端提出的工程变幻修改,修改可能会发生在placement cts route optDesign都有可能,发生在这个阶段我们称之为PREMASK 阶段,也就说没有发制作光刻板的钱,这个阶段修改没有那么多经济方面的考虑,只要技术方案可行。
另外一种修改是芯片流片测试发现某些功能缺失,性能不达标,需要增加或者修改部分功能。
这时候已经制作光刻板啦,如果移动单元或者增加单元会导致FULL_MASK改版,老外对中国出口中国的光刻机管制得严格,光刻机成本高,制作一层mask的费用自然很高。
另外FOUNDRY工艺厂一般会需要在线的圆片制成半成品,通常会停留在POLY层。
那么剩下的MASK 层次就剩下METAL VIA。
这种只修改金属和孔的设计称之为POSTMASK。
无论那种,修改量越少越好,修改的流程:1).导入设计更新ECO 网表,2).恢复FLOORPLAN3).恢复PLACEMENT4).道入修改前的DEF文件,老版本的后端工具需要恢复route,与新版的defIn效果是一样的。
5). ecoPlace放置单元,或者利用现有的spare单元,搭建ECO 功能。
6).指定金属层次进行ECOROUTE布线。
7).时序分析收敛吗?如果没有就进入第5部,重新优化PLACEMENT,或者是修改金属布线的进入第6部。
8).VERIFY是否有DRC SHORT OPEN SPCING问题,如果布线问题直接进入第6部。
没有问题则进入下一步。
9).保存ECO 设计,导出verilog spef def用与门级后仿、功耗分析、压降分析、电迁移分析,如果出现IRDROP/EM违反需要进入ECOROUTE进行.10).进行GDS的DRC LVS ANTENA ERC DFM 验证,如果没有问题进入下一步。
11). TAPOUT。
简述eco的流程
简述eco的流程ECO(Economic Cooperation Organization)是一个区域性国际组织,旨在促进成员国之间的经济合作和发展。
ECO的流程包括成员国间的政策协调、项目合作和贸易促进等方面。
ECO的流程始于成员国间的政策协调。
成员国在ECO框架下,通过各种形式的会议和磋商,就重要的经济政策问题进行讨论和协商。
这些政策问题包括贸易政策、投资政策、金融政策等。
在这个流程中,成员国通过相互交流和协商,寻求共识,以便在经济合作中形成一致的政策立场。
ECO的流程涉及到项目合作。
成员国通过ECO框架,共同开展各种项目合作,包括基础设施建设、能源开发、农业合作等。
这些项目合作有助于促进成员国之间的经济发展,提高区域内的经济整体水平。
在项目合作的流程中,成员国可以通过共同投资、技术转让等方式来实现合作的目标。
在ECO的流程中,贸易促进也是一个重要的方面。
成员国通过ECO框架,致力于促进区域内的贸易活动。
这包括降低贸易壁垒、提升贸易便利化水平、加强贸易合作等。
在贸易促进的流程中,成员国可以通过签署自由贸易协定、共同推动贸易便利化措施等方式来促进区域内的贸易活动。
ECO的流程还包括其他一些方面。
例如,成员国可以通过ECO平台,加强在金融领域的合作,推动金融机构之间的交流与合作。
同时,ECO还鼓励成员国在科技创新、人力资源开发等方面进行合作,以提高区域内的创新能力和人力资源水平。
总的来说,ECO的流程涉及到成员国间的政策协调、项目合作和贸易促进等方面。
通过这些流程,ECO旨在促进成员国之间的经济合作和发展,提高区域内的经济整体水平。
成员国通过ECO框架,共同努力,推动区域内的经济一体化进程,实现互利共赢的发展。
ECO的流程不仅有利于成员国自身的发展,也有助于加强区域之间的经济联系和合作,推动区域的共同繁荣与发展。
IC后端流程
IC后端流程物理设计是指将逻辑设计的电路转化为实际的二维或三维布局,并进行时序分析和电源规划等工作。
物理设计流程主要包括:1. 高层综合(High-Level Synthesis):将逻辑设计中的高级语言描述(比如Verilog或VHDL)转化为RTL级(Register Transfer Level)的电路描述。
2. 逻辑综合(Logic Synthesis):将RTL级电路描述转换为门级(Gate-Level)的逻辑网表,实现逻辑优化以精简电路规模和提高性能。
3.时序约束:在逻辑综合的基础上,制定时序约束,包括时钟频率、输入输出时序、时钟分频等,以保证电路的正确功能和时序性能。
4. 布局设计(Layout Design):将门级逻辑网表进行物理布局,确定电路中各个元件(比如门、寄存器)的相对位置和连线的走向,以满足电路的性能、功耗和几何约束。
5. 连线设计(Routing Design):根据布局设计结果,进行连线布线,包括选择连线层次、路由器设置、连线规则等,以确保电路的连接和稳定性。
6. 特殊器件布局(Placement of Special Devices):针对一些特殊性能要求的电路元件,进行专门的布局设计和优化,以实现电路性能的最佳化。
验证是指对设计的逻辑正确性、时序性能和功能进行验证和检查。
验证流程主要包括:1. 仿真测试(Simulation Testing):通过对设计的逻辑电路进行仿真验证,对设计进行功能和性能的测试,以保证电路的正确性和稳定性。
2. 时序分析和优化(Timing Analysis and Optimization):对电路设计进行时序分析,确定时钟频率、数据传输速率、时钟延迟等,以优化电路的时序性能。
3. 功耗分析和优化(Power Analysis and Optimization):对电路设计进行功耗分析,确定功耗峰值、功耗分布、功耗控制等,以优化电路的功耗性能。
集成电路eco
集成电路eco一、什么是集成电路eco集成电路eco(Engineering Change Order)是指在集成电路设计和制造过程中,对已经设计完成的芯片进行修改或优化的一种技术和方法。
通过集成电路eco,可以在不重新设计整个芯片的情况下,对芯片进行调整、改进或修复,从而提高芯片的性能和可靠性。
二、集成电路eco的意义和作用2.1 提高芯片设计效率在芯片设计过程中,由于各种原因可能需要对芯片进行修改。
传统的方法是重新设计整个芯片,这不仅耗时耗力,还可能引入新的问题。
而通过集成电路eco技术,可以针对具体的修改需求,只对需要修改的部分进行调整,从而大大提高了芯片设计的效率。
2.2 降低芯片制造成本重新设计整个芯片不仅耗费时间,还需要重新制造芯片的掩膜。
而通过集成电路eco技术,可以在不重新制造掩膜的情况下,对芯片进行修改。
这样不仅节省了制造成本,还缩短了芯片的制造周期。
2.3 提高芯片性能和可靠性集成电路eco技术可以针对芯片的性能和可靠性问题进行优化。
通过对芯片进行调整和改进,可以提高芯片的工作频率、减少功耗、提高抗干扰能力等,从而提高芯片的性能和可靠性。
三、集成电路eco的实施流程3.1 确定修改需求在进行集成电路eco之前,首先需要明确修改的具体需求。
这包括对芯片性能的要求、存在的问题以及需要改进的方面等。
只有明确了修改需求,才能有针对性地进行后续的操作。
3.2 分析芯片设计在确定了修改需求之后,需要对芯片的设计进行分析。
这包括对芯片的电路结构、布局和布线等进行详细的分析,找出需要修改的部分以及可能引入的问题。
3.3 进行修改设计根据分析的结果,对芯片进行修改设计。
这包括对电路结构的调整、信号路径的优化、电源和地线的布局等。
通过合理的修改设计,可以达到提高芯片性能和可靠性的目的。
3.4 仿真验证在进行实际的芯片制造之前,需要对修改设计进行仿真验证。
通过仿真验证,可以评估修改设计的效果,发现可能存在的问题,并进行进一步的优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Let the layout guys do their magic. As a designer you are usually not involved in this step.
2. Implement ECO in Synthesis netlist
Using your spare cells and/or rewiring, implement the bug fix directly in the synthesis verilog netlist. Remember you do not re-synthesize the entire design, you are patching it locally.
3. Run equivalence check between synthesis and RTL
Using your favorite or available formal verification tool, run an equivalence check to see if the code you corrected really translates to the netlist you patched. Putting it simply - the formal verification tool runs through the entire state space and tries to look for an input vector that will create 2 different states in the RTL code and the synthesis netlist. If the two designs are equivalent you are sure that your RTL simulations would also have the same result (logically speaking) as the synthesis netlist.
5. Run equivalence check between layout and synthesis
This is to make sure the changes you made in the layout netlist are logically equivalent to the synthesis. Some tools and company internal flows enable a direct comparison of the layout netlist to the RTL. In many it is not so and one has to go through the synthesis netlist change as well
Gate level simulations are also recommended, depending on your application and internal flow.
Labels: AsicDesign
However, depending on your timing closure requirements, run STA on the layout netlist to see if everything is still ok. This step might be the most crucial since even a very small change might create huge timing violations and you would have to redo your work.
4. Implement ECO in layout netlist
You will now have to patch your layout netlist as well. Notice that this netlist is very different than the synthesis netlist. It usually has extra buffers inserted for edge shaping or hold violation correction or maybe even totally differently logically optimized.
This is the real thing, a change here has to take into account the actual position of the cells, the actuall names etc. Try to work with the layout expert in close proximity. Make sure you know and understand the floorplan as well - it is very common to connect a logic gate which is on the other side of the chip just because it is logically correct, but in reality it will violate timing requirements.
ECO Flow By Nir Dahan
Here is a useful checklist you should use when doing your ECOs.
1. RTL bug fix
Correct your bug in RTL, run simulations for the specific test cases and some your general golden tests. See if you corrected the problem and more important didn't destroy any correct behavior.
ECБайду номын сангаас Flow[By Nir Dahan]
I have posted a blog about ECO some monthes ago, see /blog/2007/04/eco.html
And now it's another eco post from: Adventures in ASIC Digital Design , just for reference.