博客
关于我
Verilog基础知识5(ASIC设计中各个阶段的关键问题汇总)
阅读量:209 次
发布时间:2019-02-28

本文共 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/

    你可能感兴趣的文章
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>
    mysql中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>
    Mysql中怎样设置指定ip远程访问连接
    查看>>
    mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
    查看>>
    Mysql中文乱码问题完美解决方案
    查看>>
    mysql中的 +号 和 CONCAT(str1,str2,...)
    查看>>
    Mysql中的 IFNULL 函数的详解
    查看>>
    mysql中的collate关键字是什么意思?
    查看>>
    MySql中的concat()相关函数
    查看>>
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    查看>>
    MySQL中的count函数
    查看>>
    MySQL中的DB、DBMS、SQL
    查看>>
    MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
    查看>>
    MySQL中的GROUP_CONCAT()函数详解与实战应用
    查看>>
    MySQL中的IO问题分析与优化
    查看>>
    MySQL中的ON DUPLICATE KEY UPDATE详解与应用
    查看>>