ASIC设计-终极指南

ASIC Design – The Ultimate Guide

ASIC设计-终极指南

ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解决方案(如现场可编程门阵列(fpga))不同,现场可编程门阵列(fpga)可多次编程以执行不同的功能。ASIC有时也被称为SoC(片上系统)。

ASIC的设计之旅是一条漫长而曲折的道路,它将你从一个概念带到一个工作的硅。虽然最终产品通常非常小(以平方毫米为单位),但整个过程非常有趣,充满了挑战和权衡,设计师需要绞尽脑汁才能做出最好的工程设计。这篇文章将试图阐明从ASIC设计规范到设计流水作业的ASIC设计流程中的不同步骤,并强调每个步骤所涉及的重要决策和活动。虽然每个步骤的复杂性可能取决于EDA供应商的选择、设计应用程序以及技术节点,但顺序基本上保持不变。图1显示了ASIC设计流程的流程图。

Figure 1: ASIC Design Flow

ASIC Specification

ASIC设计流程的第一步是在开始设计之前定义产品的规格。这一阶段通常包括与潜在客户进行市场调查,以确定需求,并与技术专家交谈以判断未来趋势。后者尤其重要,因为ASIC设计周期可能在6个月到2年之间。因此,重要的是要预见和预测未来1-2年内的趋势,如果一个人需要向广泛的消费者销售他们的产品。

这项市场调查转化为高水平的产品规格,如您打算用ASIC做什么的顶级功能,您想要实现的特定计算算法,使产品吸引客户的时钟频率,封装类型-球栅阵列(BGA)或CSP(芯片规模封装)等。,电源、有助于与外部世界连接的通信协议、您希望产品工作的温度范围。

制定一个全面和正确的规范通常为ASIC设计奠定了坚实的基础。技术规范需要随着时间的推移对技术要求进行细化,但以明确的方式涵盖这些信息是很重要的。

ASIC Architecture

在删减规范之后,现在是将整个ASIC或SOC的功能划分为多个功能块的时候了。架构师喜欢集思广益地讨论架构的许多可能选项,并在考虑性能影响、技术可行性以及成本和时间方面的资源分配时讨论它们的优缺点。一个好的架构专注于收集ASIC芯片的最佳性能,同时最小化硬件资源,这直接有助于将芯片的总体成本保持在分配的预算内。在此阶段,架构师定义不同功能块之间的关系,并为每个功能块分配时间预算。所有这些技术细节都包含在架构文档中。

Figure 2: Micro-architecture of Intel’s Haswell Processor.

一旦您对所需的所有功能块有了较高的了解,那么就应该谨慎地确定关键模块,并可能就是否需要重新使用以前项目中的这些IP、对现有IP进行必要的更改或从其他方获得它们。

硬件和软件块之间的划分也是ASIC设计阶段的一个关键部分。设计是用C++或C语言的高级编程语言来捕获的。

Logic Design and Verification

他的步骤是指ASIC设计流程的前端部分,包括用Verilog、VHDL或systemverilog等硬件描述语言对每个功能块的数据流进行编码。功能块之间的交互也被编码。逻辑设计通常包括:

组合逻辑Combinational Logic:

组合逻辑通常指布尔组合门,如OR、AND、NAND、NOR等。虽然这些门很简单,但它们可以组合起来执行复杂的数字运算。

序列元素Sequential Elements:

序列元素通过临时存储其输出,在执行不同功能的不同组合逻辑云之间的接口中起着关键作用。这些时序元件,如触发器和锁存器也被称为存储器元件,由时钟的同步或控制信号控制。触发器和锁存器都是双稳态元件,因为它们有两种稳定状态:0或1。

有限状态机(FSMs)Finite State Machines (FSMs):

它们是顺序逻辑的高级抽象,可以在硬件和软件中实现。有限状态机模拟数字机器对一组输入的响应,以产生确定的一组输出,是逻辑设计者的重要组成部分。

算术逻辑块Arithmetic Logic Blocks:

算术运算是计算逻辑的核心,通常是高性能CPU核心性能的瓶颈。算术运算包括加法、减法、乘法和除法。这些电路有很多种可能的实现方式,它们在性能、面积和功率之间进行权衡。逻辑设计者可以选择一个最适合他们的应用程序来优化一个或多个参数。

数据路径设计Data-path Design:

除了上述元素的编码组合外,硬件描述语言(hdl)可以像编程语言一样以抽象的方式对数据路径设计进行建模,这种方法可以被EDA工具正确地解释。这些可以是多路复用、解码、case语句等。

模拟设计Analog Design:

除了数字逻辑之外,ASIC还可以有许多模拟组件来帮助与现实世界接口,并且可以包括温度传感器、模数转换器(ADC)和数模转换器(DAC),最重要的是时钟产生单元锁相环(pll)。

Example of a behavioral HDL code for 2:1 Multiplexer:

与逻辑设计并行,验证团队需要制定验证计划或数字和模拟逻辑组件,并创建测试平台,以便能够测试所有可能的角落情况的设计,以确保正确的功能,需要与规范一致。编写RTL通常占整个设计周期的10-20%,而验证占80-90%的时间。

Physical Design

这是指后端设计周期。如果后端设计和前端设计只有一个区别,那就是延迟。前端设计虽然认识到了逻辑延迟和速度,但在RTL编码和验证的大部分工作中却忽略了这一点。而另一方面,物理设计从一开始就看到了真正的延迟。
物理设计流程进一步细分为:

Synthesis

合成读取RTL代码(.v或.sv文件)以及标准单元的物理库,其中可能包含-延迟信息(.lib文件)、单元内的物理尺寸和元组层信息(.lef文件)和其他约束文件,以将行为或数据流代码转换为实实在在的物理标准单元门。请注意,2:1多路复用器有许多可能的实现,而综合负责对性能、功率和面积进行合理的权衡,以得出考虑到这些限制的最佳实现。作为2:1多路复用器的示例,一种可能的实现如下:

Figure 3: Gate level implementation of 2:1 Multiplexer

平面规划

布局规划步骤正式化并细化了在架构(architecture)规划步骤中首次出现的平面图。在这一步中,整个模具区域被划分为物理分区,并在成型时考虑到区域要求、顶层数据和控制总线的流动、未来增长的可能性。管脚和端口被指定一个粗略的位置,可以根据位置和路由结果进一步细化。

Figure 4: Floorplanning the blocks relative to each other.

对于物理设计工程师来说,并行处理一个以上的平面图是很常见的,并试图评估哪一个最适合总体设计的QoR(结果质量)。这通常是物理设计周期中最关键的一步,需要多次迭代。考虑到它对路由routing congestion, cell density, timing QoR and DRCs拥塞、单元密度、时间QoR和DRC的长期影响,在这里花费的任何额外时间都是值得的。

一个强大的功率交付-解决静态和动态红外衰弱也是一个关键的功能规划步骤。

安置

在放置期间,所有标准单元都放置在站点行的合法位置。这一步的目标是最小化导线长度,同时确保最佳布局,这将有助于更快的定时收敛。

Figure 5: Standard Cells arranged on site rows.

在此步骤中没有铺设真正的路线。Placement通过一个称为全局路由的步骤来估计路由,在这个步骤中,它估计总的线路长度和全局路由拥塞。许多现代布局引擎能够考虑SAIF或VCD文件的切换活动,并尝试优化布局以获得更低的动态功率。

Figure 6: Placed design.

Clock Tree Synthesis

到目前为止,时钟网络是理想的。在时钟树合成过程中,时钟被传播并且时钟树被使用时钟缓冲器合成。这一步的主要目标是在最小化时钟偏差的同时实现最佳的时钟延迟。设计最佳时钟树的算法有很多种——H树、Steiner树等。除此之外,还可以选择时钟树网格、多源时钟树综合或传统的单点时钟树综合,这些方法在动态功率、路由资源和OCV调整等方面进行了权衡。

Figure 7: Typical H tree clock distribution.

时钟是本设计中开关频率最高的信号,时钟缓冲树占专用集成电路动态功耗的75%以上。架构可以支持时钟门控关闭芯片的空闲部分,以节省动态功耗。

随着所有实例的放置和时钟的路由,现在是时候路由信号网络了。现代工艺支持10-12金属层堆叠,M0-M1为标准单元布线预留。用于详细路由的算法通常是一个美化的迷宫路由器,并添加了约束,以确保更快的运行时间。元组资源被划分为元组路线的合法位置。详细布线的目的是确保最少的绕道,因为这些可能会影响时间,并确保最小的DRC(设计规则检查)违规,如开路、短路等。此步骤执行多个搜索和修复循环(10-20),以保持总体DRC计数较低。

Figure 8: Routed Design.

Physical and Timing Verification

逻辑验证确保功能正确,物理验证确保布局正确。物理验证检查增加了,包括-DRC(设计规则检查)、LVS(布局与原理图)、电迁移、静电放电违规(ESD)、天线违规、模式匹配(PM)违规、短路、开路,漂浮网等(includes- DRC (Design Rule Checks), LVS (Layout versus Schematic),
Electromigration, Electro-static discharge violations (ESD), Antenna
violations, Pattern Match (PM) violations, Shorts, Opens, Floating nets etc.)。重要的是要跟踪这些违反的地方和路线,以避免任何意外前几天关闭。

时序验证通过确保设计中所有时序路径都满足设置和保持,验证芯片以指定频率运行

Figure 9: FRICO ASIC, 350 nm technology

ASIC设计是一个复杂的工程问题,从概念到硅都要经历很多步骤。虽然有些步骤更像是艺术而不是工程(如平面布置图),但其他一些步骤需要合理的工程权衡(如物理设计和时间安排)。随着对更好性能和缩短上市时间的需求增加,ASIC设计流程在未来十年将继续变得更加复杂。然而,核心动机和设计理念将保持不变。

ASIC设计-终极指南相关推荐

  1. 网站设计和平面设计区别_平面网站设计终极指南

    鲜艳的色彩和奇特的排版相结合,为独特的平面界面铺平了道路. 极简主义是这种设计理念的重要组成部分,您可以看到近几个月来这些趋势的流行程度. 平面网站设计是一个绝妙的概念,因为它只关注内容. 但是许多设 ...

  2. 游戏剧情设计终极指南

    故事与游戏一直总是不能很好地结合在一起.打从一开始,设计师将故事写进他们的游戏之中,让玩家有一个固定的开始,一条故事主线可以跟随,以及一个预先设置好的结局.但是与此同时,大批的玩家蜂拥入其他一些游戏, ...

  3. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  4. oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南

    Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...

  5. Java8新特性教程 - 终极指南

    转载来源:https://www.javacodegeeks.com/2014/05/java-8-features-tutorial.html Java 8 新特性教程 - 终极指南 编者按:在这篇 ...

  6. [产品相关] A/B测试终极指南(翻译)

    转载地址: http://blog.sina.com.cn/s/blog_9149268d0100zrx7.html 还记得以前导师说看了英文的文章就把它翻译一下吧,这样会对文章更好地理解,也会有更深 ...

  7. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上)

    去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上) > 价值定位 > 技术层次架构 > 服务质量(QoS) > 去中心化 > ...

  8. 移动周刊第 184 期:Android 开发终极指南

    写在前面 本期移动周刊第 184 期如约而至,聚焦 Android.iOS.VR/AR/MR.直播等前沿移动开发技术,收录一周最热点,解读开发技巧,我们希望从中能够让你有一些收获,如果你有好的文章以及 ...

  9. 软件测试进阶(一)A/B测试终极指南

    A/B测试终极指南 A/B测试不是一个时髦名词.现在很多有经验的营销和设计工作者用它来获得访客行为信息,来提高转换率.然而,A/B测试与SEO不同的是,人们都不太知道如何进行网站分析和可用性分析.他们 ...

最新文章

  1. Android 使用反射机制获取或设置系统属性(SystemProperties)
  2. n个数进栈后输出的可能序列数
  3. 期末考试前的预习,科目:化工设备与反应器(3)
  4. 暑假学习日记2013/7/26
  5. 变速积分pid控制器matlab,变速积分PID控制系统设计.docx
  6. 『中级篇』Dockerfile详解(17)
  7. 汇编语言(三十一)之数字字符串加密与解密
  8. 生物信息学常见1000个软件的安装代码
  9. maven 手动安装 ojdbc7
  10. 通过VC编程实现基于LAN的PC机与Tektronix示波器通信
  11. win7如何安装IIS,三种方法任你选(图文教程)
  12. (QACNN)自然语言处理:智能问答 IBM 保险QA QACNN 实现笔记
  13. 用CSS来实现一些动画在vue中使用之流星滑过(3)
  14. 时间排序的SACK未确认报文链表
  15. 高德地图实现卫星图-区域掩模3D
  16. 解决ValueError: bad input shape (xxxx, x)
  17. 零中频接收机频率转换图_【新品情报站】俄罗斯产VisAir HF DDC/DUC SDR 收发信机视频|接收机|转换器|ddc|天线|调谐器...
  18. oracle sysdate取年月日,oracle获取当前年月日时分秒季度周
  19. 高通MDM平台通过USB共享文件
  20. [译]36 Days of Web Testing(一)

热门文章

  1. Java开发的环境搭建
  2. mysql根据时间取前后几秒,几分钟,几小时,几天,几月,几年
  3. shap_value
  4. MegEngine基本概念
  5. CodeGen融合核心扩展定制文件
  6. Yolo:实时目标检测实战(上)
  7. 人脸标记检测:ICCV2019论文解析
  8. Android自定义ViewGroup基本步骤
  9. 客快物流大数据项目(十四):DockerFile介绍与构建过程解析
  10. 2021年大数据Kafka(八):Kafka如何保证数据不丢失