IC设计的前端和后端[zz]
一篇IC设计的文章,很全很好!
地址:http://www.cnblogs.com/hoys/archive/2012/05/21/2512127.html
http://bbs.ednchina.com/?url=http%3A//bbs.ednchina.com/ShowTopic.aspx%3Fid%3D6456%26page%3D2 问题:我是刚刚接触这方面不久,所以迫切想了解一下: 1.什么是大家常的IC前端设计和后端设计?他们之间的区别是什么? 2.做前端设计和后端设计需要掌握哪些最基本的工具和知识呢?比如多手机或者其他娱乐型电子产品上的IC设计. 3.对于不太精通编程,但对数字和模拟电路有一定基础的人是适合做前端,还是后端呢?
整理的回帖如下:
首先,我不算是高人,不过前,后端都有接触,我就大 概回答一下吧,有说的不对的地方,请高人指正。 1,前端主要负责逻辑实现,通常是使用verilog/VHDL之类语言,进行行为级的描述。而后端,主要负责将前端的设计变成真正的 schematic&layout,流片,量产。打个比喻来说,前端就像是做蓝图的,可以功能性,结构性的东西。而后端则是将蓝图变成真正的高 楼。 2,前端设计主要是进行功能设计,代码的编写,要会使用硬件描述语言,也就是上面有提到的verilog/VHDL等,当然,也会要使用一些仿真软件。后 端设计需要的则会更加多一些了,包括综合,到P&R,以及最后的STA,这些工具里candence和synopsys都有一整套系统的。有关心的可以去 他们的网站看看。 3,其实前端和后端对于编程没有特别的要求。前端的设计会需要使用硬件描述语言来写代码,但是,需要注意的是,这里指的是"描述",而不像是C或者 java之类的强调编程技巧啊什么的。所以,这个选择就看你自己了,而与编程没有什么特别的关系了。
glclub 后端設計主要要求哪些技能呢?譬如在ic layout過程中要求那些軟件呢? :包括综合,到P&R,以及最后的STA ,这些是我上面的提到的,各个公司根据需要,还会有不同的其它的要求。另外,我不是特别清楚你指的"ic layout"是什么概念,P&R的话有candence soc-encounter /synopsys Astro,手工的话,有candence virtuoso。 jasonxia 前端设计除了要会verilog/VHDL之外,还有什么要求呢?我本身是做后端的,所以,对于前端的要求也不是特别的清楚。根据我的认识,前端会分为设 计部和验证部,设计部更加的注重算法、工作原理等方面,毕竟用verilog实现起来并不困难。而验证部就是保证设计的正确性。至于具体有什么样的要求, 我也就不是特别的清楚了。
做一点补充:(如有错误,不吝赐教)
一般来说,可以将版图实现前的所有设计都认为是前端设计,应该包括系统级设计,行为级设计,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设计水平的重要影响。公司的财力,产品的方向,项目的难度,很大程度上能够影响到一个 设计者能够达到的最高水平。
辩证地认识自己的技术提高和环境之间的相互关系,将是国内的设计者在一定的阶段会遇到的问题。