Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1044179
  • 博文数量: 277
  • 博客积分: 8313
  • 博客等级: 中将
  • 技术积分: 2976
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-22 11:25
文章分类

全部博文(277)

文章存档

2013年(17)

2012年(66)

2011年(104)

2010年(90)

我的朋友

分类: LINUX

2011-01-12 22:57:01

根据个人掌握的知识,写写自己的理解。前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。

1.规格制定

芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

2.详细设计

Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

3.HDL编码

使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。

4.仿真验证

仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。

设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。

仿真验证工具 Synopsys的VCS。

5.逻辑综合――Design Compiler

仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表(netlist)。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。

一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)

逻辑综合工具Synopsys的Design Compiler。

6.STA

Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,时没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。

STA工具有Synopsys的Prime Time。

7.形式验证

这也是验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。

形式验证工具有Synopsys的Formality。

前端设计的流程暂时写到这里。从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。

 

ic后端设计

  IC(“集成电路”)产业是全球高新技术产业的前沿与核心,是最具活力和挑战性的战略产业。自2000年来,在国家政策的大力支持下,我国集成电路产业得到了长足的发展,而作为集成电路产业最前沿的设计业更是呈现出“百花齐放”的繁荣景象,作为产业命脉的IC设计人才,在IC产业最集中的长三角地区也仅仅只有几千人。所以拥有一定工作经验的设计工程师,目前已成为人才猎头公司,比如烽火猎聘公司争相角逐的“宠儿”。

  IC后端设计是指将前端设计产生的门级网表通过EDA设计工具进行布局布线和进行物理验证并最终产生供制造用的GDSII数据的过程。其主要工作职责有:芯片物理结构分析、逻辑分析、建立后端设计流程、版图布局布线、版图编辑、版图物理验证、联络代工厂并提交生产数据。作为连接设计与制造的桥梁,合格的版图设计人员既要懂得IC设计、版图设计方面的专业知识,还要熟悉制程厂的工作流程、制程原理等相关知识。

  正因为其需要掌握的知识面广,而国内高校开设这方面专业比较晚,IC后端设计工程师的人才缺口更为巨大。

  数字后端设计流程

  1. 数据准备。

  对于 CDN 的 Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(DesignExchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件 SDC是一样的,Pad的定义文件--tdf , .tf 文件 --technology file, Foundry厂提供的标准单元、宏单元和I/OPad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库 and DB, LIB file)

  2. 布局规划。

  主要是标准单元、I/O Pad和宏单元的布局。I/OPad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power network analysis)--IR drop and EM .

  3. Placement -自动放置标准单元。

  布局规划后,宏单元、I/O Pad的位置和放置标准单元的区域都已确定,这些信息SE(SiliconEnsemble)会通过DEF文件传递给PC(PhysicalCompiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。如果你用的是PC+Astro那你可用write_milkway, read_milkway 传递数据。

  4.时钟树生成(CTS Clock tree synthesis) 。

  芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew.

  5. STA 静态时序分析和后仿真。

  时钟树插入后,每个单元的位置都确定下来了,工具可以提出GlobalRoute形式的连线寄生参数,此时对延时参数的提取就比较准确了。SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,

  用starRC XT 参数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。

  6. ECO(Engineering Change Order)。

  针对静态时序分析和后仿真中出现的问题,对电路和单元布局进行小范围的改动.

  7. Filler的插入(pad fliier, cell filler)。

  Filler指的是标准单元库和I/O Pad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O Pad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计需要。

  8. 布线(Routing)。

  Global route-- Track assign --Detail routing--Routing optimization布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束的条件下,根据电路的连接关系将各单元和I/OPad用互连线连接起来,这些是在时序驱动(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设计公司的中星微电子创办人暨副总裁张辉高调赴台招人,他公开表示,大陆缺乏IC设计人才,中星微这次“最好能在台湾找个上百人到大陆”。在整体就业形势低迷的今天,类似这样的信息无疑会引起很多同学的兴趣,但如何成为一个IC设计师呢?如何提高自己的设计能力?IC设计不同于一般的板级电子设计,由于流片的投资更大,复杂度更高,系统性更强,所以学习起来也有些更有意思的地方。这里就斗胆跳过基本电子知识的方面,单就一些特别的地方来表达一下个体的感受。
  首先,作为初学者,需要了解的是IC设计的基本流程。应该做到以下几点:基本清楚系统、前端、后端设计和验证的过程,IC设计同半导体物理、通信或多媒体系统设计之间的关系,了解数字电路、混合信号的基本设计过程,弄清楚ASIC,COT这些基本的行业模式。窃以为这点对于培养兴趣,建立自己未来的技术生涯规划是十分重要的。学习基本的设计知识,建议读一下台湾CIC的一些设计教材,很多都是经典的总结。
  EDA技术的学习:对于IC设计者来说,EDA工具意义重大,透过EDA工具商的推介,能够了解到新的设计理念。国内不少IC设计者,是单纯从EDA的角度被带入IC设计领域的,也有很多的设计者在没有接触到深亚微米工艺的时候,也是通过EDA厂家的推广培训建立基本概念。同时,对一些高难度的设计,识别和选择工具也是十分重要的。如果你希望有较高的设计水平,积累经验是一个必需的过程。经验积累的效率是有可能提高的,以下几点可以参考:
  1.学习借鉴一些经典设计,其中的许多细节是使你的设计成为产品时必需注意的。有些可能是为了适应工艺参数的变化,有些可能是为了加速开关过程,有些可能是为了保证系统的稳定性等。
  2.查文献资料是一个好方法。
  3.当你初步完成一项设计的时侯,应当做几项检查:了解芯片生产厂的工艺, 器件模型参数的变化,并据此确定进行参数扫描仿真的范围。了解所设计产品的实际使用环境,正确设置系统仿真的输入条件及负载模型。严格执行设计规则和流程对减少设计错误也很有帮助。
  4.另外,你需要知识的交流,要重视同前端或系统的交流,深刻理解设计的约束条件。作为初学者,往往不太清楚系统,除了通过设计文档和会议交流来理解自己的设计任务规范,同系统和前端的沟通是IC设计必不可少的。
  5.重视同后端和加工线的交流。对于初学者来说,后端加工厂家往往能够为他们带来一些经典的基本理念。一些好的后端服务公司,不仅能提供十分严格的Design Kit,还能够给出混合信号设计方面十分有益的指导,帮助初学者走好起步之路。加工方面的知识,对于IC设计的“产品化”更是十分关键。
  6.重视验证和测试,做一个“偏执狂”。IC设计的风险比板级电子设计来得更大,因此试验的机会十分宝贵,“偏执狂”精神,对IC设计的成功来说十分关键。除了依靠公司成熟的设计环境,Design Kit和体制的规范来保证成功之外,对验证的重视和深刻理解,是一个IC设计者能否经受压力和享受成功十分关键的部分。由于流片的机会相对不多,因此找机会更多地参与和理解测试,对产品成功和失败的认真总结与分析,是一个IC设计者成长的必经之路。
  才情扫描
  IC行业紧缺工程师
  行情的紧缺几乎表现在整个IC设计行业的各个环节和岗位。
  1.设计环节
  设计企业中,核心人才是设计工程师,也是目前工程师中人才最为匮乏的。据有关报道指出,中国现在有IC设计公司400多家,但有经验的设计人才不足4000人。相比之下,美国IC设计行业拥有50万有经验的设计人才。目前,需求量最大、人才缺口最大的主要有模拟设计工程师、数字设计工程师和版图设计工程师三类。另外,设计环节还需要工艺接口工程师、应用工程师、验证工程师等。
  ●IC版图设计师
  IC版图设计师的主要职责是通过EDA设计工具,进行集成电路后端的版图设计和验证,最终产生送交供集成电路制造用的GDSII数据。版图设计师通常需要与数字设计工程师和模拟设计工程师随时沟通和合作才能完成工作。一个优秀的版图设计师,即要有电路的设计和理解能力,也要具备过硬的工艺知识。
  ●模拟设计工程师
  作为设计环节的关键人物,模拟设计工程师的工作是完成芯片的电路设计。由于各个设计企业所采用的设计平台有所不同,不同材料、产品对电路设计的要求也千差万别,模拟设计工程师最核心的技能是必须具备企业所需的电路设计知识和经验,并有丰富的模拟电路理论知识。同时还需指导版图设计工程师实现模拟电路的版图设计。
  2.制造环节
  设计之后是制造。芯片生产企业中,主角是工艺制造工程师,这是生产型企业中最为主流和缺乏的人才,目前也是全球紧缺的IC专业人才。同时,制造环节还需要大量设备维修人员和操作型技师。
  ●制造工程师
  制造工程师的关键任务就是按照设计要求,采用合适的制造工艺,设计合理的流程,来完成IC产品的生产制造,并使之能实现产品的各项功能。制造工程师必须对IC产品的生产工艺和流程相当熟悉,能够随时处理生产过程中出现的各种技术问题,有一定的质量管理知识。为保证生产出来的产品满足客户需求,还要随时与设计师进行沟通,在成品出来之后,还需要与测试工程师进行后续的测试沟通。
  3.封装测试环节
  制造环节的后道工序便是芯片封装。在封装企业中,主要需要两类工程师,包括封装工艺工程师和设备工程师。操作型技师等“灰领”人才,也是封装企业需求量较大的人才。另外,芯片生产出之后,需要进行测试,这其中主要依靠测试工程师。
  ●测试工程师
  测试工程师是产品出货前的把关人员。在工厂生产线完成整个制作流程之后,即需要测试工程师来即测试IC完成品的功能是否正常且符合需求。一旦发现产品有瑕疵,则会马上与上道工序的工程师反映,并检讨产品制作过程当中,是否有需要改进的地方。若是产品功能没有问题,则进行包装出货。一般来说,测试工程师需精通器件测试原理,有半导体行业测试经验。
  专家导航
  关于IC设计中几个问题的看法
  ■深圳国微技术有限公司总监 孙建宁
  一、做反向设计可以成为高手吗?
  现在,国内有一些IC公司在做反向设计。有人认为反向设计虽给我们带来了一定的经济利益,但同时带来无数重复的劳动。这种劳动既无经验积累又无人才积累,也扼杀了创造力。因此,他们反向设计是IC设计者的泥潭,需要坚决反对反向设计,以避免更多的IC设计人才陷入其中。
  对此孙建宁表示:“仅从技术角度看,做反向设计的过程中,也是有许多学习机会的。如果你对别人设计的电路能有一定程度的了解,就会从中学到一些很有用的想法。对你做正向设计也会有所帮助。”他认为如果仅仅是照抄不做任何分析那反向设计也许有点“吸毒”的味道,他强调反向设计使工程师不易成为具备某一专长的设计人才。
  二、专业技能和实践铸就IC设计高手
  在提高专业技能方面,孙建宁认为IC设计发展的趋势是越来越复杂和分工高度明细,有志于此的话,首先是了解设计的流程和分工、自己的特点和喜好,至于以后的发展,当因人而异。实践是从一个学生转变为工程师的必要环节,要成为高手更是如此。

阅读(1221) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~