Answers:
由于工作的复杂性和数量,通常ASIC设计是团队的工作。我将给出大致的步骤顺序,尽管有些步骤可以并行或不完整地完成。我将列出我用于每项任务的工具,但这不是百科全书。
建立一个单元库。(或者,大多数过程都具有市售的门函数库。除非您知道您不需要的东西,否则我会建议这样做。)这涉及为所需的逻辑功能设计多个驱动强度门,设计焊盘驱动器/接收器,以及任何宏,例如数组乘法器或内存。一旦设计并验证了每个单元的原理图,就必须设计物理布局。我已经使用了Cadence Virtuoso进行此过程,并使用了诸如Spectre和HSPICE之类的模拟电路模拟器。
表征细胞库。(如果您有第三方门禁库,通常会为您完成。)必须模拟库中的每个单元,以生成用于静态时序分析(STA)的时序表。这涉及提取完成的单元,使用Assura,Diva或Calibre提取布局寄生,并在变化的输入条件和输出负载下模拟电路。这将为与您的STA封装兼容的每个门建立一个时序模型。时序模型通常采用Liberty文件格式。我已经使用了Silicon Smart和Liberty-NCX模拟所有需要的条件。请记住,对于大多数软件来说,可能需要“最坏情况”,“标称”和“最佳情况”下的时序模型。
综合您的设计。我没有高级编译器的经验,但是最终,编译器或编译器链必须采用您的高级设计并生成门级网表。综合结果是您首次了解理论系统性能,并且首先解决了驱动强度问题。我已经将Design Compiler用于RTL代码。
放置并布线设计。这将从合成器获取门级网表,并将其转变为物理设计。理想情况下,这会生成准备就绪的焊盘到焊盘布局。设置P&R软件以自动产生成千上万的DRC错误确实很容易,因此在此步骤中也并非所有乐趣和游戏。大多数软件将管理驱动器强度问题并按照指示生成时钟树。一些软件包包括Astro,IC编译器,Silicon Encounter和Silicon Ensemble。布局和布线的最终结果是最终的网表,最终的布局以及提取的布局寄生虫。
布局后静态时序分析。此处的目标是验证您的设计是否符合时序规范,并且没有任何设置,保持或门控问题。如果您的设计要求很严格,那么您可能最终会花费大量时间在这里修复错误并更新P&R工具中的修复程序。我们使用的最终STA工具是PrimeTime。
布局的物理验证。通过P&R工具生成布局后,您需要验证设计是否符合流程设计规则(设计规则检查/ DRC),以及布局是否与原理图匹配(布局与原理图/ LVS)。应遵循这些步骤,以确保布局布线正确且可制造。同样,一些物理验证工具是Assura,Diva或Calibre。
模拟最终设计。根据复杂程度,你可能能够做到使用晶体管级仿真幽灵或HSPICE,使用“快速Spice”仿真HSIM,或使用一个完全数字化仿真的ModelSim或VCS。您应该能够借助STA或P&R工具生成具有实际延迟的仿真。
从现有的门函数库开始可以节省大量时间,并且可以使用任何有益于您设计的宏,例如存储器,微控制器或其他处理块。管理设计复杂性也很重要-与具有多个时钟域的电路相比,单一时钟设计将更易于验证。
W5VO的答案往往集中在后端,这是 ASIC与FPGA流程之间的主要区别。但它错过了数字设计验证部分。
在硅上进行设计可能要花费一百万美元甚至更多,并且与FPGA相比,您可以在ASIC上封装更多可用的门,然后您将花费更多的时间离开实验室和运行模拟器场的工作站前面的PCB在发布产品用于生产之前,还要进行仿真器和编写测试以更全面地验证ASIC设计。FPGA设计人员倾向于通过在将要成为其一部分的系统中使用FPGA来进行大部分测试。