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

电器工程 FPGA 视频文件 验证日志 软件 ASIC
2022-01-10 05:26:38

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

我听过一些人说 ASIC 设计非常不同。用于两种主要类型 ASIC(门级 ASIC 和晶体管级 ASIC)的工具集是什么?我一直在研究诸如 Catapult C 和 Cadence C to Silicon 之类的高级综合工具,但我还没有尝试过。您能否解释一下 ASIC/FPGA 领域中可以改变/加速典型 HDL 工作流程的不同类型的工具?

2个回答

由于工作的复杂性和数量,通常 ASIC 设计是一个团队的努力。我将给出一个粗略的步骤顺序,尽管有些步骤可以并行或乱序完成。我将列出我用于每项任务的工具,但它不会是百科全书式的。

  1. 建立细胞库。(或者,大多数工艺都有市售的门库。我会推荐这个,除非你知道你需要一些不可用的东西。)这涉及为尽可能多的逻辑功能设计多个驱动强度门,设计焊盘驱动器/接收器,以及任何宏,例如数组乘法器或内存。一旦设计并验证了每个单元的原理图,就必须设计物理布局。我在这个过程中使用了Cadence Virtuoso,以及SpectreHSPICE等模拟电路模拟器。

  2. 表征细胞库。(如果您有第三方门库,这通常会为您完成。)必须对库中的每个单元进行仿真,以生成用于静态时序分析 (STA) 的时序表。这包括采用完成的单元,使用AssuraDivaCalibre提取布局寄生参数,并在不同的输入条件和输出负载下模拟电路。这将为与您的 STA 封装兼容的每个门构建时序模型。时序模型通常采用Liberty文件格式。我用过Silicon SmartLiberty-NCX模拟所有需要的条件。请记住,您可能需要“最坏情况”、“标称”和“最佳情况”的时序模型才能使大多数软件正常工作。

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

  4. 放置和布线您的设计。这从合成器中获取门级网表并将其转换为物理设计。理想情况下,这会生成可用于制造的焊盘到焊盘布局。将您的 P&R 软件设置为自动产生数千个 DRC 错误真的很容易,所以这一步也不是所有的乐趣和游戏。大多数软件将管理驱动强度问题并按照指示生成时钟树。一些软件包包括Astro、IC Compiler、Silicon EncounterSilicon Ensemble。布局布线的最终结果是最终的网表、最终的版图和提取的版图寄生参数。

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

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

  7. 模拟最终设计。根据复杂性,您可以使用SpectreHSPICE进行晶体管级仿真,使用HSIM进行“快速香料”仿真,或者使用ModelSimVCS进行完全数字仿真。您应该能够在 STA 或 P&R 工具的帮助下生成具有实际延迟的模拟。

从现有的门库开始可以节省大量时间,以及使用任何有利于您的设计的宏,例如内存、微控制器或替代处理块。管理设计复杂性也很重要——单个时钟设计比具有多个时钟域的电路更容易验证。

W5VO的回答倾向于关注后端,这ASIC 和 FPGA 流程之间的主要区别;但它错过了数字设计验证部分。

如果将设计放到硅片上可能要花费一百万美元甚至更多,而且与 FPGA 相比,您可以在 ASIC 上封装更多可用的门,那么您将花费更多的时间远离实验室和运行模拟器农场的工作站前的 PCB和仿真器并编写测试以更全面地验证 ASIC 设计,然后再将其投入生产。FPGA 设计人员倾向于通过在系统中使用 FPGA 来完成大部分测试。