本文共 1794 字,大约阅读时间需要 5 分钟。
ASIC设计关键问题
ASIC设计是一个复杂且全局性的过程,从产品功能定义出发,涵盖工艺选择、功耗估算、面积优化、性能评估以及成本控制等多个方面。特别是在当前芯片复杂度不断提升、工艺改进加速的背景下,如何在有限的时间内开发出稳定可重用的ASIC芯片设计并实现一次性流片成功,显然需要一个成熟的设计方法和完整的开发流程。
本文将结合NCverilog、DesignCompile、Astro等常用EDA工具,从工艺独立性、系统稳定性和复杂性等角度,对比各种ASIC设计方法,重点探讨在编码设计、综合设计、静态时序分析和时序仿真等阶段中容易被忽视的问题及解决方案,从而确保整个设计过程的可控性。
ASIC设计流程概述
ASIC设计流程可以划分为前端设计和后端设计两个主要阶段,具体步骤可以细化为以下几个环节:
系统结构分析设计与功能验证
- 从产品功能定义出发,进行初步的工艺、功耗、面积评估,制定设计规划。
- 对核心功能逻辑进行RTL编码设计,并进行功能验证。
逻辑综合与形式验证
- 通过逻辑综合工具对RTL代码进行优化,生成逻辑综合结果(Netlist)。
- 在逻辑综合与Netlist之间进行形式验证,确保设计的逻辑正确性。
后端设计与布局布线
- 进行Floorplan设计,完成芯片物理布局。
- 执行 Placement、ClockTree插入、全局布线(GlobalRouting)等步骤。
详细路由与信号完整性验证
- 进行DetailedRouting,完成信号的详细路由设计。
- 执行DRC(设计规则检查),确保设计符合制造规则。
时序分析与仿真
- 在Postlayout阶段进行静态时序分析(STA),验证时序需求。
- 使用门级仿真工具进行带延迟信息的仿真,验证设计的时序特性。
最终输出与流片
- 完成LVS(层次结构验证)和DRC检查,准备芯片流片批量生产。
RTL编码设计的关键问题
RTL编码是ASIC设计的核心环节,其编码风格直接影响芯片的可靠性、可读性和综合性能。以下是几个常见问题及解决方法:
1. 延迟单元的使用问题
- 问题:延迟单元对制造工艺、温度和电压敏感,可能导致脉冲宽度变化,影响实际芯片行为。
- 解决方法:尽量避免使用延迟单元,采用时钟树结构控制时钟信号的延迟。
2. Latch设计的潜在风险
- 问题:Latch设计可能引发锁存噪声、STA难度大等问题。
- 解决方法:优先采用触发器设计,通过Setup和Hold时间检查确保信号稳定性。
3. 时钟信号的使用问题
- 问题:时钟信号如果作为普通信号使用,可能导致后端设计中的时钟树插入和信号布线问题。
- 解决方法:在RTL编码时避免直接使用时钟信号,确保时钟树结构的合理性。
4. 复位信号的处理策略
- 问题:复位信号的Glitch和Removal控制可能引发触发器异常。
- 解决方法:采用异步复位策略,通过双级Flip-Flop接收复位信号,确保复位逻辑的稳定性。
异步与同步设计的权衡
尽管异步设计具有低功耗和灵活性的优势,但在芯片设计中仍然更倾向于同步设计。主要原因包括:
时钟分布问题:异步设计需要多个时钟域,增加了时钟树的复杂性。 握手协议复杂性:异步设计中的握手协议增加了测试难度。 信号传输问题:异步接口的控制信号可能引发时钟域间的Skew问题,需要额外处理。 在实际设计中,通常通过划分模块将异步时钟域与同步时钟域分开管理,并在STA阶段进行特殊约束。
后端设计中的关键问题
时钟树插入与布局布线
- 时钟树的插入直接影响芯片的时序性能,需确保各级时钟树的延迟一致性。
- 全局布线时需注意信号的交叉和时钟树的干扰,避免信号延迟过大。
信号完整性控制
- 对于长距离信号,需进行电磁仿真,确保信号的稳定性。
- 采用低电阻的IO布局,减少信号衰减和延迟。
时序分析与仿真验证
- 在Postlayout阶段,需结合实际布局信息进行详细时序分析。
- 使用门级仿真工具验证设计的时序特性,确保长路径的Setup时间和短路径的Hold时间满足需求。
结论
ASIC设计是一个复杂的系统性工程,涉及多个阶段和多个维度的考量。通过合理的设计方法和完善的开发流程,可以有效降低设计风险,确保芯片的功能正确性和时序性能。特别是在RTL编码、逻辑综合和后端设计等环节,需要对常见问题有深入理解,并采取有效的解决措施。只有这样,才能设计出高质量、可靠的ASIC芯片。
转载地址:http://hacj.baihongyu.com/