ic设计需要学什么
IC专业就是集成电路设计专业。
集成电路设计,是电子工程学和计算机工程学的一个学科,其主要内容是运用专业的逻辑和电路设计技术设计集成电路(IC)。
IC设计涉及硬件软件两方面专业知识。集成电路设计涉及对电子器件(例如晶体管、电阻器、电容器等)、器件间互连线模型的创建。所有的器件和互连线都需安置在一块半导体衬底材料之上,这些组件通过半导体器件制造工艺(例如光刻等)安置在单一的硅衬底上,从而形成电路。
分类
1、IC版图设计师
IC版图设计师的主要职责是通过EDA设计工具,进行集成电路后端的版图设计和验证,最终产生送交供集成电路制造用的GDSII数据。版图设计师通常需要与数字设计工程师和模拟设计工程师随时沟通和合作才能完成工作。
一个优秀的版图设计师,既要有电路的设计和理解能力,也要具备过硬的工艺知识。
2、模拟设计工程师
作为设计环节的关键人物,模拟设计工程师的工作是完成芯片的电路设计。由于各个设计企业所采用的设计平台有所不同,不同材料、产品对电路设计的要求也千差万别,模拟设计工程师最核心的技能是必须具备企业所需的电路设计知识和经验,并有丰富的模拟电路理论知识。
同时还需指导版图设计工程师实现模拟电路的版图设计。
IC设计,Integrated Circuit Design,或称为集成电路设计。大白话简单说就是:用HDL(硬件描述语言)描述出需要的功能,用CAD 工具把这些HDL翻译成gds文件,也就是晶圆厂可以认识的文件,在晶圆厂做成一颗颗芯片,你可以在所有电子产品的内部看到。从玩具芯片,电话,电脑,提款机,汽车电子,等等。
它也是是电子工程学和计算机工程学的一个学科,其主要内容是运用电路设计技术设计集成电路(IC)。IC设计涉及硬件软件两方面专业知识。硬件包括数字、模拟电路设计等。软件包括用汇编语言,C语言等写firmware或用户应用程序。
IC设计是将用户的功能要求转化成电子芯片的过程。
负责进行电路设计、仿真以及总体布局和修改。
制作IC芯片功能说明书。负责与版图工程师协作完成版图设计。
提供技术支持。
公交IC卡,银行卡,楼宇的门卡等等,在现代世界不可或缺,IC设计工程师就是一个从事IC开发的职业,随着中国IC设计产业渐入佳境,越来越多的工程师加入到这个新兴产业中。
成为IC设计工程师所需门槛较高,往往需要有良好的数字电路系统及嵌入系统设计经验。
了解ARM体系结构,良好的数字信号处理、音视频处理,图像处理及有一定的VLSI基础。
集成电路是信息产业的核心技术之一。
是实现把我国信息产业做大做强的战略目标的关键。
发布的“国家中长期科学和技术发展规划纲要”和“国民经济和社会发展第十一个五年规划纲要”,都把大力发展IC技术和产业放在突出重要的位置。
因此IC设计工程师的前途光明。
ic设计可分为全定制,半定制两种,用FPGA设计属于一种半定制IC设计。具体来说,用FPGA设计一般不用考虑门极电路以下的问题,而全定制IC设计则需要深入到版图。
门控时钟的应用,在fpga中使用门控时钟是非常不推荐的一件事情。asic中虽然也不赞成使用,但是也没什么大关系
输出的buffer和门,fpga中恐怕没有这些器件,对延时的估计和门的应用就要重新考虑了
memory,fpga和asic中的memory的应用有着很大的不同,fpga中用的是内置的或者是用lut拼起来的。asic用的主要是厂商定义的,大小更随意一些(和有些fpga相比)
atch的使用,fpga中基本不要用latch,asic中就看需要和设计的能力了
dsp或者其他计算模块的调用。很多fpga中提供了dsp,乘法器等等,当然有空间的话也可以自己写。asic中基本都要自己设计的。不知道有没有厂商提供这些。
基于soc的设计,对于模拟部分的应用,fpga上做数模混合设计只有有限的功能。asic上就不说了。
pll等的时钟处理,fpga上也提供时钟处理的dcm,dll,pll等,但是远没有asic的强大,所以在写code的时候对时钟就要想好他们的多少
速度的差别,一般来说同样代码在两个地方实现的速度是不同的。在具体应用的时候要注意。
IC设计工程师———未来10年最有前景的IT专业。IC设计不同于一般的板级电子设计,由于流片的投资更大,复杂度更高,系统性更强,所以学习起来也有些更有意思的地方。那么如何才能成为一个优秀的IC设计工程师?首先,作为初学者,需要了解的是IC设计的基本流程。应该做到以下几点:基本清楚系统、前端、后端设计和验证的过程,IC设计同半导体物理、通信或多媒体系统设计之间的关系,了解数字电路、混合信号的基本设计过程,弄清楚ASIC,COT这些基本的行业模式。窃以为这点对于培养兴趣,建立自己未来的技术生涯规划是十分重要的。学习基本的设计知识,建议读一下台湾CIC的一些设计教材,很多都是经典的总结。
EDA技术的学习:对于IC设计者来说,EDA工具意义重大,透过EDA工具商的推介,能够了解到新的设计理念。国内不少IC设计者,是单纯从EDA的角度被带入IC设计领域的,也有很多的设计者在没有接触到深亚微米工艺的时候,也是通过EDA厂家的推广培训建立基本概念。同时,对一些高难度的设计,识别和选择工具也是十分重要的。 如果你希望有较高的设计水平,积累经验是一个必需的过程。经验积累的效率是有可能提高的。以下几点可以参考:
1.学习借鉴一些经典设计,其中的许多细节是使你的设计成为产品时必需注意的。有些可能是为了适应工艺参数的变化,有些可能是为了加速开关过程,有些可能是为了保证系统的稳定性等。通过访真细细观察这些细节,既有收益,也会有乐趣。项目组之间,尤其是项目组成员之间经常交流,可避免犯同样错误。
2.当你初步完成一项设计的'时侯,应当做几项检查:了解芯片生产厂的工艺, 器件模型参数的变化,并据此确定进行参数扫描仿真的范围。了解所设计产品的实际使用环境,正确设置系统仿真的输入条件及负载模型。严格执行设计规则和流程对减少设计错误也很有帮助。
3.另外,你需要知识的交流,要重视同前端或系统的交流,深刻理解设计的约束条件。作为初学者,往往不太清楚系统,除了通过设计文档和会议交流来理解自己的设计任务规范,同系统和前端的沟通是IC设计必不可少的。所谓设计技巧,都是在明了约束条件的基础上而言的,系统或前端的设计工程师,往往能够给初学者很多指导性的意见。
4.查文献资料是一个好方法。多上一些比较优秀的电子网站,如中国电子市场网、中电网、电子工程师社区。这对你的提高将会有很大的帮助。另外同"老师傅"一同做项目积累经验也较快。如果有机会参加一些有很好设计背景的人做的培训,最好是互动式的,也会有较好的收获。
5.重视同后端和加工线的交流:IC设计的复杂度太高,除了借助EDA工具商的主动推介来建立概念之外,IC设计者还应该主动地同设计环节的上下游,如后端设计服务或加工服务的工程师,工艺工程师之间进行主动沟通和学习。对于初学者来说,后端加工厂家往往能够为他们带来一些经典的基本理念,一些不能犯的错误等基本戒条。一些好的后端服务公司,不仅能提供十分严格的Design Kit,还能够给出混合信号设计方面十分有益的指导,帮助初学者走好起步之路。加工方面的知识,对于IC设计的"产品化"更是十分关键。
6.重视验证和测试,做一个"偏执狂":IC设计的风险比板级电子设计来的更大,因此试验的机会十分宝贵,"偏执狂"的精神,对IC设计的成功来说十分关键。除了依靠公司成熟的设计环境,Design Kit和体制的规范来保证成功之外,对验证的重视和深刻理解,是一个IC设计者能否经受压力和享受成功十分关键的部分。由于流片的机会相对不多,因此找机会更多地参与和理解测试,对产品成功和失败的认真总结与分析,是一个IC设计者成长的必经之路。
同行交流以及工作环境的重要性:IC设计的复杂性和技术的快速发展,使得同行之间的交流十分关键,多参与一些适合自己水平的讨论组和行业会议,对提高水平也是十分有益的。通过同行之间的交流,还可以发现环境对于IC设计水平的重要影响。公司的财力,产品的方向,项目的难度,很大程度上能够影响到一个设计者能够达到的最高水平。辩证地认识自己的技术提高和环境之间的相互关系,将是国内的设计者在一定的阶段会遇到的问题。
从事IC设计这一行,工作强度大,技术岗位都是越老越吃香,越有经验越吃香。
相关信息:
1、代码只是最低端的,一定要往架构上钻,提高自己的抽象层次,从全局去理解芯片设计。研究架构、算法和协议,提高到下一个层次。
2、没有哪个行业能保证不是吃青春饭,终生学习才最有安全感!
3、想做高手,哪行都强度都大,无它,人比人而已。整个IT业,都是吃青春饭的。行业变化剧烈,没人敬老,甚至鄙视那些不能持续学习的“老”人。
若不能在自己黄金年纪(25-35),对所从事的工作,有深刻的理解,升华为可以通用的理论高度,当学习速度下降之后,日子并不好过。
4、加班也不一定要做工作的事情,整理做过项目具体内容也是可以的。无论是为下一个项目做准备,还是为了简历增彩,整理总结都是必不可少的。
5、一个经验丰富的IC设计或是验证工程师,对协议、总线、架构的熟悉程度,认知度,以及debug的速度,是刚入职场的小年轻比不了的。工作年限和香不香并不成正比,有真本事才是真。
前端设计的流程及使用的EDA工具例如以下:
1、架构的设计与验证:依照要求,对总体的设计划分模块。
架构模型的仿真能够使用Synopsys公司的CoCentric软件,它是基于System C的仿真工具。
2、HDL设计输入:设计输入方法有:HDL语言(Verilog或VHDL)输入、电路图输入、状态转移图输入。
使用的工具有:Active-HDL,而RTL分析检查工具有Synopsys的LEDA。
3、前仿真工具(功能仿真):初步验证设计是否满足规格要求。
使用的工具有:Synopsys的VCS,Mentor的ModelSim,Cadence的Verilog-XL,Cadence的NC-Verilog。
4、逻辑综合:将HDL语言转换成门级网表Netlist。综合须要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标
准;逻辑综合须要指定基于的库,使用不同的综合库,在时序和面积上会有差异。逻辑综合之前的仿真为前仿真,之后的仿真为后仿真。
使用的工具有:Synopsys的Design Compiler,Cadence的 PKS,Synplicity的Synplify等。
5、静态时序分析工具(STA):在时序上,检查电路的建立时间(Setuptime)和保持时间(Hold time)是否有违例(Violation)。
使用的工具有:Synopsys的Prime Time。
6、形式验证工具:在功能上,对综合后的网表进行验证。经常使用的就是等价性检查(Equivalence Check)方法,以功能验证后的HDL设计为参
考,对照综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描写叙述的电路功能。
使用的工具有:Synopsys的Formality
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/OPad预先给出了位
置,而宏单元则依据时序要求进行摆放,标准单元则是给出了一定的区域由工具自己主动摆放
。布局规划后,芯片的大小,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 传递数据。
4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所
有的时序单元,所以时钟源端门单元带载非常多,其负载延时非常大而且不平衡,须要插入缓
冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要重复几次才可
以做出一个比较理想的时钟树。---Clock skew.
5. STA 静态时序分析和后仿真。时钟树插入后,每一个单元的位置都确定下来了,
工具能够提出Global Route形式的连线寄生参数,此时对延时参数的提取就比较准确了。
SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文
件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,用starRC XT 参
数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。
6. ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题,
对电路和单元布局进行小范围的修改.
7. Filler的插入(padfliier, cell filler)。Filler指的是标准单元库和I/O P
ad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O P
ad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计须要。
8. 布线(Routing)。Global route-- Trackassign --Detail routing--Routing
optimization 布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可
靠绝缘的电性能约束的条件下,依据电路的连接关系将各单元和I/O Pad用互连线连接起来
,这些是在时序驱动(Timing driven ) 的条件下进行的,保证关键时序路径上的连线长度
可以最小。--Timing report clear
9. Dummy Metal的添加。Foundry厂都有对金属密度的规定,使其金属密度不要低
于一定的值,以防在芯片制造过程中的刻蚀阶段对连线的金属层过度刻蚀从而减少电路的
性能。添加Dummy Metal是为了添加金属的密度。
10. DRC和LVS。DRC是对芯片版图中的各层物理图形进行设计规则检查(spacing ,
width),它也包含天线效应的检查,以确保芯片正常流片。LVS主要是将版图和电路网表进
行比较,来保证流片出来的版图电路和实际须要的电路一致。DRC和LVS的检查--EDA工具
Synopsy hercules/ mentor calibre/ CDN Dracula进行的.Astro also include LVS/DRC
check commands.
11. Tape out。在全部检查和验证都正确无误的情况下把最后的版图GDSⅡ文件传
递给Foundry厂进行掩膜制造
原文网址: IC设计前端到后端的流程和eda工具。 (bbsmax.com)
集成电路(integrated circuit)是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中用字母“IC”表示。集成电路发明者为杰克·基尔比(基于硅的集成电路)和罗伯特·诺伊思(基于锗的集成电路)。当今半导体工业大多数应用的是基于硅的集成电路。
集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。它不仅在工、民用电子设备如收录机、电视机、计算机等方面得到广泛的应用,同时在军事、通讯、遥控等方面也得到广泛的应用。用集成电路来装配电子设备,其装配密度比晶体管可提高几十倍至几千倍,设备的稳定工作时间也可大大提高。
数字后端处于数字IC设计流程的后端,属于数字IC设计类岗位的一种。在IC设计中,数字后端所占的人数比重一直是最多的,而且随着芯片规模不断加大,后端工程师需要的人数将会越来越多。
一般来说,数字后端按岗位类别可以分为:逻辑综合,布局布线physical design,静态时序分析(STA),功耗分析Power analysis,物理验证physical verification等岗位。人才的需求量进一步加大,这也是现阶段数字后端工程师招聘量巨大的原因。
1、主要干什么?
逻辑综合(Synthesis)
主要负责将RTL code转换为实际后端使用的netlist网表, 一个好的网表对布局布线的工作起到决定性作用。要尽可能做到performance, power, area的优化。尤其是现如今的一些要求高性能的设计,对综合的要求非常高。
综合质量很大一定程度上取决于综合软件的性能,业界流行的两个综合工具是Synopsys的Design Compiler和Cadence的Genus,熟练的掌握两个工具的使用方法是综合工作的一个基本条件。
布局布线(PD)
布局布线是数字后端中占比最大的工作,主要负责netlist到GDSII的转化过程,步骤包括Floorplan,Place,CTS,Optimize,Route,ECO等,确保自己负责的模块满足时序还有物理制造的要求。同时,需要协同其他工程师,及时提供他们需要的文件,比如def, spef,网表等。是数字后端中最核心的工作。
布局布线对工具的依赖程度较强,而且工具操作相对来说较为复杂。业界较为常用的是cadence的Innovus软件和Synopsys的ICC,掌握这两大工具的使用需要花费一定的时间。
静态时序分析(STA)
静态时序分析简称为STA,时序验证分析是数字后端中的重要一块内容,芯片需要满足各种corner下面的setup,hold时序要求以及其他的transition, capacitance, noise等要求。STA需要制定整个芯片的sdc约束文件,选择芯片需要signoff的corner以及全芯片的timing eco流程。是一份难度要求很高的工作。
静态时序分析通常通常需要掌握Synopsys的primetime以及cadence的tempus两大软件的使用方法。
物理验证(PV)
物理验证也是tape out前的一项重要事项。如果物理验证有错,那芯片生产就会失败。在布局布线工具中,软件只能检查到金属层上的物理违反,而真正的物理验证需要检查到器件底层(base layer).因此,物理验证需要将金属层和底层金属合并到一起,进行全芯片的drc检查。同时,还需要做全芯片的LVS(版图与原理图一致性检查),ERC(电气规则检查)。确保芯片没有任何物理设计规则违反。
物理验证一般在mentor公司的calibre中进行,是业界标准的物理验证工具。
功耗分析(PA)
功耗分析也是芯片signoff的重要一大块,随着现在芯片的规模越来越大,功耗在芯片的中的地位也越来越高。功耗分析的两大任务是分析IR drop(电压降)和EM(电迁移)。及时将结果反馈给布局布线任务组,让他们及时修改后端设计图,解决设计中潜在的问题。
一般功耗分析使用的工具有Ansys公司的redhawk,以及cadence公司的voltus和synopsys公司的ptpx。
2、主要打交道的人
数字后端工程师通常都是以一个项目组作为一个团队,前面说的这些任务都会分为不同的角色。通常,一个项目中会有一名顶层工程师,一名STA工程师,一名功耗分析工程师,一名物理验证工程师以及若干名模块工程师,这些工程师需要相互合作,共同完成全芯片的RTL到GDSII的过程,同时确保没有时序以及物理验证上的违例。
数字后端工程师还需要经常与前端工程师打交道,确保网表的功能正确以及sdc的正确制定,及时将后仿文件交付给前端,让前端工程师能尽快通过仿真发现潜在的设计问题。
DFT工程师也是我们经常与要交流的,因为测试逻辑设计在现在的芯片中的比重越来越大,后端工程师需要与DFT工程师确认好测试SDC的制定,扫描链scan chain的物理走向等任务。
3、需要掌握的技能和条件。
数字后端主要以软件工具为主,主要掌握以下软件(以cadence, synopsys,mentor公司为主)
布局布线:Innovus/Encounter, ICC2/ICC
综合:DC, Genus
物理验证:Calibre
静态时序分析: PrimeTime, Tempus
功耗分析: Redhawk, Voltus,PTPX
每种平台需要你掌握的技能不大一样,通常学会每种平台下学会一种工具即可。一个初级工程师想全部掌握这些技能也很难,如果这些工具你都会使用,就变成老司机了。
由于数字后端工程师需要跑一些自动化的任务,所以掌握必要的脚本语言也是必须的,比如掌握下面知识就显得比较重要:
Verilog
TCL
Perl
Python
所有的技术类岗位,主要看的两点就是:专业技能(skills)和项目经验(experience)。所以除了上面列的这些技能,你能实际做过一两个项目,哪怕是一些小模块的后端设计,也是很重要的,尤其是做项目过程中积攒的debug经验。
如果你是在校学生,学校里实践数字后端的机会较少,所以基本上你只要简单懂一点流程以及时序方面的内容,可能就可以找到数字后端工程师的职位了。现在在校学生通过各种渠道(比如E课网),很多同学都掌握了上面的这些技能,甚至积累了一两个项目经验。会的人多了,招聘的要求也自然高一些了。
现阶段,数字后端工程师主要还是以招聘研究生为主,本科生招的很少。不过好消息是对专业的要求并不是很苛刻,并非集成电路方向不可,只要你掌握了上面的这些技能,哪怕不相关专业,比如材料、物理、自动化、机械等专业,也是可以成功应聘。
学历本科的同学也不要气馁,有工作经验的本科生,还是可以找到数字后端工程师的职位的,而且有很多成功的例子的。毕业学校一般的同学也不要气馁,985高校毕业,肯定是有优势的,但毕竟每年毕业生不多,在现在IC行业整体缺人的大背景下,依然会招收学校排名一般的学生的;当然前提还是一样,有专业技能(skills)和项目经验(experience)。