资源描述:
《后端设计流程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、后端设计流程ASIC/SoC后端设计作业流程剖析Toshiba(美国) 秦晓凌Trident(上海) 潘中平关键词placerouteDSMmegacellclock_treeSTAOPTECO 引言 众所周知,ASIC产品是从用硬件描述语言(verilogHDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更
2、多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提
3、高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gatelevelnetlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flatflow)和层次化流程(hierarchyflow)两种,在深亚微米DSM(deepsub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flatflow)和分层流程(hierarchyflow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。一、扁平流程(Flatf
4、low)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(TapeOut)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态,否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),
5、第二轮叫首次签收(firstSignOff),第三轮叫最后签收(finalSignOff),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认FirstSignOff:100%设计,DFT,I/O完成 数据库已确定,时序收敛基本完成,没有大的拥塞(congestion)FinalSignOff: 最后细小的功能修改,时序收敛
6、 所有时序和布局布线问题解决我们在简单介绍每一步工作的同时,着重介绍应该注意的问题,遇到的困难和解决的方法。A.质量检查(Qualitycheck) 在流程的开始,至少有三样东西需要前端工程师提供:门级网表(gatelevelnetlist),时序约束(timingconstraint)和时序分析报告(timinganalysisreport)。其中网表文件是最重要的,拿到它之后,先不要急于将它放到后端EDA软件里去,而是要先检查一下它的质量,确认已消除哪怕是细小的错误/瑕疵,比如检查有无以下情况:文法错误,连接短路,无任何连接的n
7、et,无驱动的输入引脚(pin),assign语句,wire类型以外的net,使用了由""开始的特别字符,数据总线的写法,名字的长度等,不同的厂家和软件对此都会有一些限制,为了后续工作的方便,建议定义一套比较严格的网表书写规则。例如:不许有"无任何连接的net"和"无驱动的输入pin",无assign语句,只允许线(wire)型net,所有名字只许使用大小写英文字母,数字和下划线,头一个文字是英文字母,长度小于1024,模块之间的调用一律使用explicit格式。这些要求看似繁琐,但是只要事先同前端工程师说明,在做逻辑合成之前设定好几个参数
8、就可以了,并不增加他们的工作量。其次要看设计是否需要DFT(可测试性),ATPG(自动测试格式生成),如果要的话,检查是否符合扫描链(scanchain)和存储器内