ASIC 的复杂性不断提高,同时工艺在不断地改进,如何在较短的时间内开发一个稳定的可重用的ASIC芯片的设计,并且一次性流片成功,这需要一个成熟的ASIC 的设计方法和开发流程。本文结合NCverilog,DesignCompile,Astro等ASIC设计所用到的EDA软件,从工艺独立性、系统的稳定性、复杂性的角度对比各种ASIC的设计方法,介绍了在编码设计、综合设计、静态时序分析和时序仿真等阶段经常忽视的问题以及避免的办法,从而使得整个设计具有可控性。

基本的ASIC设计流程

  ASIC设计流程可以粗分为前端设计和后端设计,如果需要更细的划分,可以分成如下几个步骤:

  1.包括系统结构分析设计、RTL编码以及功能验证;

  2.逻辑综合、PreLayoutSTA以及形式验证(RTL代码与逻辑综合生成的Netlist之间);

  3.Floorplan、Placement、ClockTree插入以及全局布线(GlobalRouting)

  4.形式验证(逻辑综合的Netlist与带有CT信息的Netlist之间)、STA;

  5.DetailedRouting,DRC;

  6.PostlayoutSTA,带有反标延迟信息的门级仿真;

  7.Tape-Out

  当然,这还是一个比较粗的流程,其中每个步骤还可以分得更细,通常所说的前端设计主要包括上述流程中的1,2,4,6这几个部分。同时,这个流程是一个迭代的过程。

典型的ASIC设计流程(详细)

  1. 结构及电气规定。
  2. RTL级代码设计和仿真测试平台文件预备。
  3. 为具有存储单元的模块插进BIST(Design For test 设计)。
  4. 为了验证设计功能,进行完全设计的动态仿真。
  5. 设计环境设置。包括使用的设计库和其他一些环境变量。
  6. 使用 Design Compiler工具,约束和综合设计,并且加进扫描链(或者JTAG)。
  7. 使用 Design Compiler自带静态时序分析器,进行模块级静态时序分析。
  8. 使用 Formality工具,进行 RTL级和综合后门级网表的 Formal Verification。
  9. 版图布局布线之前,使用PrimeTime工具进行整个设计的静态时序分析。
  10. 将时序约束前标注到版图工具。
  11. 时序驱动的单元布局,时钟树插进和全局布线。
  12. 将时钟树插进到DC的原始设计中。
  13. 使用 Formality,对综合后网表和插进时钟树网表进行 Formal Verification。
  14. 从全局布线后的版图中提取出估算的时间延时信息。
  15. 将估算的时间延时信息反标注到Design Compiler或者 Primetime。
  16. 在Primetime中进行静态时序分析。
  17. 在Design Compiler中进行设计优化。
  18. 设计的具体布线。
  19. 从具体布线的设计中提取出实际时间延时信息。
  20. 将提取出的实际时间延时信息反标注到Design Compiler或者Primetime中。
  21. 使用Primetime进行版图后的静态时序分析。
  22. 在 Design Compiler中进行设计优化(假如需要)。
  23. 进行版图后带时间信息的门级仿真。
  24. LVS和DRC验证,然后流片。

参考文献:

[1] 转载地址:http://www.eetop.cn/blog/html/83/40783-52928.html

(转)ASIC设计中各个阶段需要注意的问题——节选的更多相关文章

  1. Verilog设计中的锁存器

    问题: 什么是锁存器? 什么时候出现锁存器? 锁存器对电路有什么影响? 如何在FPGA设计中避免锁存器? 在FPGA设计中应该避免锁存器.实际上,锁存器与D触发器实现的逻辑功能基本相同,都有暂存数据的 ...

  2. FPGA设计中的电源管理(转载)

    过去,FPGA设计者主要关心时序和面积使用率问题.但随着FPGA不断取代ASSP和ASIC器件,设计者们现正期望能够开发低功耗设计,在设计流程早期就能对功耗进行正确估算,以及管理和对与FPGA相关的各 ...

  3. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  4. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  5. 【配色指南】UI设计中使用明亮色彩的利与弊,你知多少?

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 合理运用色彩是每个设计师都应必须具备的技能,特别是插画师和UI设计师.随着扁平化设计和Materia ...

  6. 界面设计中如何增强CTA按钮召唤力?

    以下内容由Mockplus(摹客)团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 网页和软件应用之类数字产品的有效交互系统一般是由拥有各种任务和功能的小元素构成.而为创建更加 ...

  7. 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  8. 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  9. 数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

随机推荐

  1. 最短路——Dijkstra和Floyd

    Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...

  2. fragment error

    error:   android.view.InflateException: Binary XML file line #6: Error inflating class fragment 解决办法 ...

  3. 下载android sdk

  4. 安装 Sublime Text 3及其插件

    1. 安装 Sublime Text 3 虽然现在的 Sublime 3 还处于 beta 阶段, 但已经非常稳定了, 而且速度比 Sublime 2 得到了增强. Sublime 3 可以到官网下载 ...

  5. CodeForces 1098E. Fedya the Potter

    题目简述:给定长度为$n \leq 5\times 10^4$的序列$a_1, a_2, \dots, a_n \leq 10^5$.将$\gcd(a_l, a_{l+1}, \dots, a_r) ...

  6. opencv 笔记

    http://docs.opencv.org/ opencv 2.x API opencv包含以下模块 core    基本数据机构 imgproc    图像处理方法 video    视频处理方法 ...

  7. Linux useradd 添加用户

    在 linux 中,如果我们想添加一个用户,那么使用的命令如下: 用户管理命令: useradd 基础的命令 命令名称:useradd 命令的所在路径:/usr/bin/useradd 执行权限:ro ...

  8. 5-2 Windows消息队列 (25分)

    5-2 Windows消息队列   (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当中 ...

  9. P5136 sequence(矩阵快速幂)

    传送门 数列的特征方程和特征根老师上课好像讲过然而我没听--以后老师上数学课要认真听了QAQ 设\(x=\frac{1+\sqrt{5}}{2},y=\frac{1-\sqrt{5}}{2}\),那么 ...

  10. swipe轮播插件零基础实用

    此篇博客整理了常用的轮播效果,适用于所有开发人员 swipe是当下相对而言较好用的轮播插件,下面是博主整理的demo源代码,可直接上手(备注:需自己手动swipe所需的j和css) 此段代码总共是有三 ...