IC设计的前端和后端(转)
IBM工程师培训的时候,讲到了一个IC设计前端、后端的概念,虽然我们参赛的内容主要是做应用,但面临读研方向的选择,还是到网上找了点资料,了解了一下。
在EDNChina论坛上有一篇帖子:什么是IC前端设计和后端设计?区别有是什么?
http://bbs.ednchina.com/?url=http%3A//bbs.ednchina.com/ShowTopic.aspx%3Fid%3D6456%26page%3D2
整理的回帖如下:
一般来说,可以将版图实现前的所有设计都认为是前端设计,应该包括系统级设计,行为级设计,RTL级设计和晶体管级设计(好像不全);
后端设计是将晶体管级设计在版图上实现,数字前端设计一般都做到RTL级,是因为其后的前端设计步骤一般已经由fundry完成,RTL级已经可以使用现成的由MOS构成的功能单元了(IP是一个新的发展)。
而对于analog的前端设计,则一般要完成到MOS级别,才能算完成前端设计。
前端可能用到的软件由于设计层次不同,类别很多:如HSPICE, synopsys的DC,VCS,cadence的spectre,所用到的语言有verilog, VHDL, System C, Verilog A 等
而后端设计就是用MOS完成版图(analog),或用MOS构成的单元来组合完成版图(digital)。常用工具有L-EDIT,Cadence的se, virtuso等
IC前端设计指逻辑设计;
IC后端设计指物理设计。
就是将你的想法或别人的想法用你设计的电路来实现,也就是说你可以通过电路设计来实现你的想法。可以这样说,那时你就是一个科学家。有人这样认为:一个好的前端IC设计师不应该叫设计师而应该叫科学家。
后端:
就是将你设计的电路制造出来,要在工艺上实现你的想法。
完全同意斑竹的观点,再做一点点补充,供大家参考。
除了RTL编程和仿真这两个基本要求外,前端设计还可以包括IC系统设计、验证(verification)、综合、STA、逻辑等值验证(equivalence check)。其中IC系统设计最难掌握,它需要多年的IC设计经验和熟悉那个应用领域,就像软件行业的系统架构设计一样,而RTL编程和软件编程相当。适合作为IC设计的入门。
还有一些即可以属于前端也可以属于后端的灰色领域,比如DFT(design for test)
后端设计简单说是P&R,但是包括的东西不少,像芯片封装和管脚设计,floorplan,电源布线和功率验证,线间干扰的预防和修正,时序收敛,STA,DRC,LVS等,要求掌握和熟悉多种EDA工具以及IC生产厂家的具体要求。要达到jeze的程度,没5年时间不行。
版主,encounter的Ameba place效果似乎比不上synopsy的PhC place
encounter的nanoroute似乎也算不上什么特别了不起的工具。
最近听说有家公司有个最新的工具,他们自称其工具要超前encounter两年,尤其在Timing上面信心十足。
可是我得不到这个新工具的资料,你能给提供一下吗。叫什么玛古玛。
深有同感,经过5年以上时间的比较,我们公司的评分是
(1) Magma
(2) Synopsys
(3) Cadence
以下只是个人和本公司的评价,不一定十分全面,仅供参考。
Synopsys:
优点:
在完成设计所花费的时间、代价和质量上比较平衡,不是最好,但绝对不坏。
拥有一些久经考验无人可比的软件。
缺点:
Physical-Compiler和Astro的整合上不够好,毕竟它是由一个前端设计EDA公司通过并购Avanti扩展到后端来的。
Cadence:
优点:拥有一批非常优秀的EDA软件,如:RTL Compiler, Encounter, Nano route, CeltIc等(只限于单独使用)。
缺点:
虽然是老牌后端设计公司,可是现在的支柱产品都是最近几年买来的,自己以前的东西剩下的不多了。上述产品的整合是个大问题。现在的产品不擅长于复杂时序的收敛。
Magma:
优点:最近5年异军突起的一家EDA公司,拥有一套自己独特的算法和漂亮好用的GUI,在复杂时序的收敛上异常优异。
缺点:附带产品不够全面,价钱高
我们的作法是取各个公司最好的部分,自己整合出一套后端设计平台。
比如:
Synopsys Design-Compiler, DFT-Compiler, PrimeTime + Magma BlastFusion
(Place&route) + Cadence QX, LEC, CeltIc + Mentor Calibre
另外还有一篇IC设计高手进阶之路的文章,觉得不错,也收过来了。
随着中国IC设计产业渐入佳境,越来越多的工程师加入到这个新兴产业中。从一个初学者成长到主持大型设计的IC设计专家,这是每个IC设计工程师的理想。在这个新兴的领域里,IC设计工程师需要领路的"师傅",但是没有"师傅",该怎么提高?近日,电子工程专辑网站邀请到深圳国微技术有限公司系统总监孙建宁先生担任《如何成为IC设计高手?》论坛的嘉宾与工程师交流成长心得,论坛中的一些观点颇有参考价值。
一、学习、积累、交流-IC设计高手的成长之路
如何成为IC设计高手?如何提高自己的设计能力?孙建宁先生提出首先要学习,作为初学者,需要了解的是IC设计的基本流程。应该做到以下几点:基本清楚系统、前端、后端设计和验证的过程,IC设计同半导体物理、通信或多媒体系统设计之间的关系,了解数字电路、混合信号的基本设计过程,弄清楚ASIC,COT这些基本的行业模式。他认为这对于培养兴趣,建立自己未来的技术生涯规划是十分重要的。
另外,在向高手迈进的过程中,积累和交流也是很重要的。积累指要学习借鉴一些经典设计,而通过访真细细观察这些经典设计的细节,既有收益,也会有乐趣。在交流方面,要重视同前端或系统的交流,深刻理解设计的约束条件。作为初学者,往往不太清楚系统,除了通过设计文档和会议交流来理解自己的设计任务规范,同系统和前端的沟通是IC设计必不可少的。所谓设计技巧,都是在明了约束条件的基础上而言的,系统或前端的设计工程师,往往能够给初学者很多指导性的意见。
当然还要重视同后端和加工线的交流,IC设计者还应该主动地同设计环节的上下游,如后端设计服务或加工服务的工程师,工艺工程师进行主动沟通和学习。对于初学者来说,后端加工厂家往往能够为他们带来一些经典的基本理念,一些不能犯的错误等基本戒条。而同行之间的对提高水平也是十分有益的。通过同行之间的交流,还可以发现环境对于IC设计水平的重要影响。
此外,他还建议要重视验证和测试,做一个"偏执狂",他认为:对验证的重视和深刻理解,是一个IC设计者能否经受压力和享受成功十分关键的部分。由于流片的机会相对不多,因此找机会更多地参与和理解测试,对产品成功和失败的认真总结与分析,是一个IC设计者成长的必经之路。
二、做反向设计可以成为高手吗?
论坛中很多工程师提到现在国内一些IC公司在做反向设计,读者刘宇认为反向设计虽给我们带了一定的经济利益,但同时带来无数重复的劳动。这种劳动既无经验积累又无人才积累,也扼杀了创造力。他认为:反向设计是IC设计者的泥潭,需要坚决反对反向设计,以避免更多的IC设计人才陷入其中。对此孙建宁表示:"仅从技术角度看,做反向设计的过程中,也是有许多学习机会的。如果你对别人设计的电路能有一定程度的了解,就会从中学到一些很有用的想法。对你做正向设计也会有所帮助。"他认为如果仅仅是照抄不做任何分析那反向设计也许有点"吸毒"的味道,他强调反向设计使工程师不易成为具备某一专长的设计人才。读者"lvyaoming"也认为在做反向设计时,关键要理解别人的设计,这是成为一个高手的捷径,可以避免走很多弯路。读者"Frank Liu"认为:现阶段我国大学IC专业的教学中,理论性东西太多,需要在实践中获得经验。
三、专业技能和实践铸就IC设计高手
在提高专业技能方面,孙建宁认为IC设计发展的趋势是越来越复杂和分工高度明细,有志于此的话,首先是了解设计的流程和分工、自己的特点和喜好,至于以后的发展,当因人而异。参与论坛的工程师还就成长为高手谈了许多个人观点,读者"马超"认为:我觉得成为高手还是离不开博学、审问、慎思、笃行,还要耐得住寂寞,在一行一干就几十年,肯定成为高手了。读者"Target"认为:不要以为跳槽就可以学到很多东西,只有多做项目,还要是项目主要设计师,比如作系统、算法设计的,才能真正学到东西,而不是成为一个熟练工。读者"cathy"建议:想成为高手得去大公司做,因为是站在巨人肩膀上,你的每一个想法和设计都会得到与具体事实相符的数据和彻底的验证。
很多工程师都认同通过实践成长为高手的做法,读者"世纪芯 "强调:在我看来,高手都是通过反复的实践练成的。也就是说通过做大量的项目,在实践中不断学习和提高自己的技能。课堂是培养不出高手的,高手是在工程中练成的!
专家观点:学习、积累、交流-IC设计高手的成长之路
孙建宁先生
职务:深圳国微技术有限公司系统总监
如何成为IC设计高手?如何提高自己的设计能力?自己的感受是,IC设计不同于一般的板级电子设计,由于流片的投资更大,复杂度更高,系统性更强,所以学习起来也有些更有意思的地方。这里就斗胆跳过基本电子知识的方面,单就一些特别的地方来表达一下个体的感受。
首先,作为初学者,需要了解的是IC设计的基本流程。应该做到以下几点:基本清楚系统、前端、后端设计和验证的过程,IC设计同半导体物理、通信或多媒体系统设计之间的关系,了解数字电路、混合信号的基本设计过程,弄清楚ASIC,COT这些基本的行业模式。窃以为这点对于培养兴趣,建立自己未来的技术生涯规划是十分重要的。学习基本的设计知识,建议读一下台湾CIC的一些设计教材,很多都是经典的总结。
EDA技术的学习:对于IC设计者来说,EDA工具意义重大,透过EDA工具商的推介,能够了解到新的设计理念。国内不少IC设计者,是单纯从EDA的角度被带入IC设计领域的,也有很多的设计者在没有接触到深亚微米工艺的时候,也是通过EDA厂家的推广培训建立基本概念。同时,对一些高难度的设计,识别和选择工具也是十分重要的。
如果你希望有较高的设计水平,积累经验是一个必需的过程。经验积累的效率是有可能提高的。以下几点可以参考:
1、学习借鉴一些经典设计,其中的许多细节是使你的设计成为产品时必需注意的。有些可能是为了适应工艺参数的变化,有些可能是为了加速开关过程,有些可能是为了保证系统的稳定性等。通过访真细细观察这些细节,既有收益,也会有乐趣。项目组之间,尤其是项目组成员之间经常交流,可避免犯同样错误。
2、查文献资料是一个好方法。同"老师傅"一同做项目积累经验也较快。如果有机会参加一些有很好设计背景的人做的培训,最好是互动式的,也会有较好的收获。
3、当你初步完成一项设计的时侯,应当做几项检查:了解芯片生产厂的工艺, 器件模型参数的变化,并据此确定进行参数扫描仿真的范围。了解所设计产品的实际使用环境,正确设置系统仿真的输入条件及负载模型。严格执行设计规则和流程对减少设计错误也很有帮助。
4、另外,你需要知识的交流,要重视同前端或系统的交流,深刻理解设计的约束条件。作为初学者,往往不太清楚系统,除了通过设计文档和会议交流来理解自己的设计任务规范,同系统和前端的沟通是IC设计必不可少的。所谓设计技巧,都是在明了约束条件的基础上而言的,系统或前端的设计工程师,往往能够给初学者很多指导性的意见。
5、重视同后端和加工线的交流:IC设计的复杂度太高,除了借助EDA工具商的主动推介来建立概念之外,IC设计者还应该主动地同设计环节的上下游,如后端设计服务或加工服务的工程师,工艺工程师之间进行主动沟通和学习。对于初学者来说,后端加工厂家往往能够为他们带来一些经典的基本理念,一些不能犯的错误等基本戒条。一些好的后端服务公司,不仅能提供十分严格的Design Kit,还能够给出混合信号设计方面十分有益的指导,帮助初学者走好起步之路。加工方面的知识,对于IC设计的"产品化"更是十分关键。
6、重视验证和测试,做一个"偏执狂":IC设计的风险比板级电子设计来的更大,因此试验的机会十分宝贵,"偏执狂"的精神,对IC设计的成功来说十分关键。除了依靠公司成熟的设计环境,Design Kit和体制的规范来保证成功之外,对验证的重视和深刻理解,是一个IC设计者能否经受压力和享受成功十分关键的部分。由于流片的机会相对不多,因此找机会更多地参与和理解测试,对产品成功和失败的认真总结与分析,是一个IC设计者成长的必经之路。
同行交流以及工作环境的重要性:IC设计的复杂性和技术的快速发展,使得同行之间的交流十分关键,多参与一些适合自己水平的讨论组和行业会议,对提高水平也是十分有益的。通过同行之间的交流,还可以发现环境对于IC设计水平的重要影响。公司的财力,产品的方向,项目的难度,很大程度上能够影响到一个设计者能够达到的最高水平。
辩证地认识自己的技术提高和环境之间的相互关系,将是国内的设计者在一定的阶段会遇到的问题。