博客
关于我
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 Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>
    mysql CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>