首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ASIC 设计技术及其发展研究(2)

ASIC 设计技术及其发展研究(2)

2、ASIC 设计流程
主流ASIC 设计大体可分为三个阶段:系统开发阶段,RTL 设计阶段和门级验证阶段。其具体流程可
细分如下:
1. Design entry:Using a hardware description language (HDL) or schematic entry.
2. Logic synthesis:Produces a netlist-logic cells and their connections.
3. System partitioning: Divide a large system into ASIC-sized pieces.
4. Prelayout simulation:Check to see if the design functions correctly.
5. Floorplanning:Arrange the blocks of the netlist on the chip.
6. Placement:Decide the locations of cells in a block.
7. Routing:Make the connections between cells and blocks.
8. Extraction:Determine the resistance and capacitance of the interconnect.
9. Postlayout simulation: Check to see the design still works with the added loads of the interconnect.
在系统开发阶段,主要完成:①项目策划:形成项目任务书(项目进度,周期管理等)。具体流程为:
市场需求--调研--可行性研究--论证--决策--任务书。②总体设计:确定设计对象和目标,进一步明确芯片功能、内外部性能要求、参数指标,论证各种可行方案,选择最佳方式等。具体流程为:需求分析--系统方案--系统设计--系统仿真。③详细设计和可测性设计:分功能确定各个模块算法的实现结构,确定设计所需的资源。按芯片的要求、速度、功耗、带宽、增益、噪声、负载能力、工作温度等和时间、成本、效益要求,选择加工厂家,确定实现方式,如全定制、半定制、FPGA 等;可测性设计在总体设计阶段就要开始考虑,确定芯片的测试方案和方法。总体设计在整个设计中,约占设计时间的30%。在RTL 设计阶段即源码设计阶段,主要完成:①设计输入:完成设计的行为或结构描述。可以采用图形输入、文本输入、状态机输入等方式。②代码调试:对设计输入的文件进行代码调试和语法检查。③功能仿真:对代码进行功能验证,保证源码能完成预想的功能。④综合:把设计转换成标准逻辑单元,保证设计源码的可综合性。以上阶段一般统称为前端设计。
在门级验证阶段,主要完成:①逻辑综合(synthesis):逻辑综合是面向给定的设计约束,将高级的设计描述翻译和优化到厂家库中的门级网表的自动化过程。②静态时序分析(Static Timing Analyze):静态时序分析是检测综合结果是否满足时序约束的一个手段。主要验证寄存器的建立和保持时间的异常,它具有较高的计算效率,是对仿真的补充。③形式验证(formal verification),也就是等效性检查,对设计过程中每一步的设计输入和输出间进行逻辑功能的等效检查。经常进行的是综合后的网表与RTL 的设计输入之间的等效检查。与静态时序分析一起,构成设计的静态验证。④布局(Floor Plan):就是确定设计中各个模块的位置,整个芯片的尺寸等。主要的过程有:IO 规划:确定IO Buffer 的位置,定义电源和地PAD 的位置。模块放置:定义各种物理的组、区域或模块;对这些大的宏单元进行放置,现在已经有许多好的block Placer,帮助设计者更快的形成模块布局。供电设计:设计整个供电网络,基于电势降和电迁移进行拓扑优化。微调:通过添加布局和布线的阻碍、以及密度、属性等的修改,达到优化布线阻塞率,甚至时序的目的。总之,Floor Plan 就是在保证布线能够走通、性能允许的前提下,如何最大限度的减少芯片面积。
⑤布线:布线应该算是设计上的最后一个阶段。布线策略的应用,会影响整个芯片的性能。可以选择手动走一些比较关键,或者对自动走线效果不满意的一些线。然后,对关键路径上的走线和时钟线尽量在走线时先走,避免绕线,确保时序收敛。最后,还要进行门级验证和版图/逻辑图对比(LVS, Logic vs. Schematic)和设计规则检查(DRC,Design Rule Check)。
以上所述主要是数字电路的设计流程。模拟电路的设计流程与之相比有所不同。模拟电路的设计主要
包括:①模拟仿真环境:模拟仿真环境主要是提供完整的模拟电路设计解决方案,并使最终用户的应用得到最优化且支持完整的从前端到后端的设计流程。完整的模拟设计环境应该是所有的解决方案集成在一起,具有完全的中间可操作性。②版图编辑工具:对于一些全定制的设计,需要对最终的版图进行编辑。版图编辑器应以强大的交互式版图功能来提高全定制IC 设计的生产率。③版图验证:版图验证包括设计规则检查(DRC)、电学规则检查(ERC)、版图/逻辑图对比(LVS)、版图参数提取(LPE)和寄生电阻提取(PRE),电磁兼容分析(EMC)等等。
ASIC 设计流程随着不同的设计目标、设计方法、设计工艺的变化而变化。一般而言,数字电路设计
中几个关键的环节分别为:设计、综合、仿真以及布局布线等。如何熟练使用这些工具软件、掌握使用技巧以及不断解决出现的问题等等,都与工具使用的熟练程度和相关经验分不开。下面特别就综合和仿真进行一点阐述。
综合是将行为级描述的设计在一定的规约下转化为逻辑结构。它是面向给定的设计约束,将高级的设
计描述翻译和优化到工艺库中的门级网表的自动化过程。(Compiler=Translation + Mapping +
Optimization)。综合约束包括时序、面积和功耗的约束。其中时序是最复杂和最关键的约束,决定了整个芯片的性能。时序约束中,输入输出的约束由芯片的应用环境决定,通常需要抽象出输入的驱动和输出的负载信息。另外一个重要的方面,就是时钟树(Clock Tree)的综合和插入。时钟树的定义、约束的设置,对最后时钟偏斜起着决定性的作用。时钟树插入后,偏斜往往会导致某些保持时间(Hold Time)方面的问题。还有,传统的ASIC 综合工具本身能力限制了综合模块的门数不能超过200K。随着百万门甚至千万门的设计的出现,工程师们不得不把一个设计分成更多的子模块来进行综合。一般情况下,在采用传统ASIC综合技术时,工程师们习惯按照功能和时序来进行子模块的划分,而不是按照设计门数的大小来划分模块。不管是谁进行综合,在现有的技术下,都要对综合的质量和综合的效率进行折衷。因此,综合问题必须通盘考虑。
仿真是模拟出芯片工作的过程,故又称为设计的动态验证。如果带有时序信息,在验证功能的同时,
也可以验证时序性能。仿真主要有:RTL 级仿真、门级仿真,它们也分别简称为前仿和后仿。在RTL 层进行的仿真,其特点是不考虑构成电路的逻辑和门的时间延迟,着重考虑电路在理想环境下的行为和设计构想的一致性。即RTL 级仿真是没有延时的、基于周期的事件驱动的仿真方式。门级仿真是在电路已经映射到特定的工艺环境后,将电路的路径延迟和门延迟考虑进去对电路行为的影响后,来比较电路的行为是否还能够在一定条件下满足设计构想。后仿是基于最终时序的仿真,故往往作为流片前签收(sign-off or type out)的条件。所有时序的仿真,一般是使用SDF(标准延时)文件来输入延时信息。仿真不是一个孤立的过程,它和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义,而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足,需要更改代码,则功能仿真必须重新进行。
继承事业,薪火相传
返回列表