ASIC设计与FPGA HDL综合有何不同?


42

我在使用Xilinx ISE,Lattice Diamond等FPGA / HDL工具套件方面有一些经验。一般的工作流程是编写Verilog / VHDL,仿真,测试然后对FPGA进行编程。

我听说有人说ASIC设计有很大不同。两种主要类型的ASIC(门级ASIC和晶体管级ASIC)使用哪些工具集?我一直在研究诸如Catapult C和Cadence C等高级综合工具到硅,但是我从未尝试过。您能否说明ASIC / FPGA领域中可用的不同类型的工具,这些工具可以改变/加快典型的HDL工作流程?

Answers:


39

由于工作的复杂性和数量,通常ASIC设计是团队的工作。我将给出大致的步骤顺序,尽管有些步骤可以并行或不完整地完成。我将列出我用于每项任务的工具,但这不是百科全书。

  1. 建立一个单元库。(或者,大多数过程都具有市售的门函数库。除非您知道您不需要的东西,否则我会建议这样做。)这涉及为所需的逻辑功能设计多个驱动强度门,设计焊盘驱动器/接收器,以及任何宏,例如数组乘法器或内存。一旦设计并验证了每个单元的原理图,就必须设计物理布局。我已经使用了Cadence Virtuoso进行此过程,并使用了诸如SpectreHSPICE之类的模拟电路模拟器。

  2. 表征细胞库。(如果您有第三方门禁库,通常会为您完成。)必须模拟库中的每个单元,以生成用于静态时序分析(STA)的时序表。这涉及提取完成的单元,使用AssuraDivaCalibre提取布局寄生,并在变化的输入条件和输出负载下模拟电路。这将为与您的STA封装兼容的每个门建立一个时序模型。时序模型通常采用Liberty文件格式。我已经使用了Silicon SmartLiberty-NCX模拟所有需要的条件。请记住,对于大多数软件来说,可能需要“最坏情况”,“标称”和“最佳情况”下的时序模型。

  3. 综合您的设计。我没有高级编译器的经验,但是最终,编译器或编译器链必须采用您的高级设计并生成门级网表。综合结果是您首次了解理论系统性能,并且首先解决了驱动强度问题。我已经将Design Compiler用于RTL代码。

  4. 放置并布线设计。这将从合成器获取门级网表,并将其转变为物理设计。理想情况下,这会生成准备就绪的焊盘到焊盘布局。设置P&R软件以自动产生成千上万的DRC错误确实很容易,因此在此步骤中也并非所有乐趣和游戏。大多数软件将管理驱动器强度问题并按照指示生成时钟树。一些软件包包括Astro,IC编译器,Silicon EncounterSilicon Ensemble。布局和布线的最终结果是最终的网表,最终的布局以及提取的布局寄生虫。

  5. 布局后静态时序分析。此处的目标是验证您的设计是否符合时序规范,并且没有任何设置,保持或门控问题。如果您的设计要求很严格,那么您可能最终会花费大量时间在这里修复错误并更新P&R工具中的修复程序。我们使用的最终STA工具是PrimeTime

  6. 布局的物理验证。通过P&R工具生成布局后,您需要验证设计是否符合流程设计规则(设计规则检查/ DRC),以及布局是否与原理图匹配(布局与原理图/ LVS)。应遵循这些步骤,以确保布局布线正确且可制造。同样,一些物理验证工具是AssuraDivaCalibre

  7. 模拟最终设计。根据复杂程度,你可能能够做到使用晶体管级仿真幽灵HSPICE,使用“快速Spice”仿真HSIM,或使用一个完全数字化仿真的ModelSimVCS。您应该能够借助STA或P&R工具生成具有实际延迟的仿真。

从现有的门函数库开始可以节省大量时间,并且可以使用任何有益于您设计的宏,例如存储器,微控制器或其他处理块。管理设计复杂性也很重要-与具有多个时钟域的电路相比,单一时钟设计将更易于验证。


2
自从您提到了Virtuoso以来,Cadence为设计提供了完整的工具链(我认为它称为Opus),可以从原理图开始,对单个单元进行布局,评估寄生效应,对其进行表征,然后将其构建到上层。
clabacchio

1
我认为每个主要供应商都提供完整的工具链。我们最终在工具链中使用了多个供应商,这样我们就可以使用我们最熟悉或享有最佳行业声誉的工具。
W5VO

1
图书馆或设计套件支持的挑选工具实际上是必需的。如果您未使用特定软件的受支持版本,则某些不兼容之处可能会扼杀您的设计或给您错误的解释。话虽如此,我看到的绝大多数EDA工具都在Unix / Linux系统上运行。大多数学习曲线都很陡峭。
W5VO

1
@MartinThompson绝对。越突破技术(ASIC / FPGA)的界限,这些步骤就越关键。话虽这么说,这些工具的ASIC版本给您带来了更多麻烦。
W5VO

1
请注意,1和2不是设计的一般部分。这些步骤是所谓的“过程验证”的一部分,结果(功能全面的库)由FAB供应商提供。但是有些公司正在做“完全自定义设计”,必须自己完成1和2。
Ale..chenski

7

W5VO答案往往集中在后端,这 ASIC与FPGA流程之间的主要区别。但它错过了数字设计验证部分。

在硅上进行设计可能要花费一百万美元甚至更多,并且与FPGA相比,您可以在ASIC上封装更多可用的门,然后您将花费更多的时间离开实验室和运行模拟器场的工作站前面的PCB在发布产品用于生产之前,还要进行仿真器和编写测试以更全面地验证ASIC设计。FPGA设计人员倾向于通过在将要成为其一部分的系统中使用FPGA来进行大部分测试。


我要补充一点,数字设计人员的基本工作流程在ASIC和FPGA之间没有太大区别,但是ASIC在可用的宏/微元件,布局和布线方面具有更大的灵活性,而FPGA仅限于其预制的逻辑模块并且受互连拓扑的限制。因此,FPGA无法达到ASIC的性能水平,因此可能会要求设计解决方案稍有不同。
Ale..chenski

嗨,阿里·陈。如果认为数字设计和数字验证是​​分开的,那么纯数字设计的流程相对于FPGA和ASIC更为接近,但是正如我所提到的,验证之间存在很大的分离。:-)
Paddy3118 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.