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. mysql跨表更新示例

    一.在同一个表中冗余存储记录之间的关系(组织机构树),查询时需要根据冗余字段进行关联查询 例如,下面的示例,用户表中有个字段friend标记其朋友关系,要求找出id=2及他的朋友(父节点) mysql ...

  2. js联动

    html: <!-- 省 --> <div class="col-sm-2"> <select name="p_id"> & ...

  3. ARM之工作模式

    前言            以下内容是个人学习之后的感悟,转载请注明出处~ ARM工作模式 ARM工作模式根据功能不同,可分为7类: User Mode:用户模式.操作系统的Task一般以这种模式执行 ...

  4. js搜索相同类型的控件全选、取值(Checkbox)

    function selectAll(obj) { if (obj.checked) { $("input[type='checkbox']").each(function () ...

  5. 使用escape、encodeURI 和 encodeURIComponent 解决url中文乱码问题

    escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者, ...

  6. junit4 Assert静态方法及API

    junit中的assert方法全部放在Assert类中. 1.assertTrue/False([String message,]boolean condition);    用来查看变量是是否为fa ...

  7. python序列化之pickle,json,shelve

    模块 支持方法 说明 json dumps/dump loads/load 只能处理基本数据类型: 用于多种语言间的数据传输: pickle dumps/dump loads/load 支持pytho ...

  8. Flutter实战视频-移动电商-35.列表页_上拉加载更多制作

    35.列表页_上拉加载更多制作 右侧列表上拉加载配合类别的切换 上拉加载需要一个page参数,当点击大类或者小类的时候,这个page就要变成1 provide内定义参数 首先我们需要定义一个page的 ...

  9. 真正可用的Asdoc生成工具及技巧和注意事项

    经过一个上午的折腾,终于总结出一套完全能够正确运行得到asdoc api的工具.使用方便,里面写了许多注意事项,帮你顺利完成 api 的生成. ::        注意: ::        1.所以 ...

  10. Linux之解决每次git pull/git push都需输入密码设置

    操作命令: //执行这两条命令cd / git config --global credential.helper store 执行完命令之后会在.gitconfig文件中多加红色字体 [user] ...