ASIC原型构建:是做还是买?

时间:2023-07-21
随着数字集成电路(IC)的设计变得更加复杂,验证其功能的工作也越来越复杂了。在能被设计的门电路数量和能在合理时间内被验证的门电路数量之间一直存在差距,而这些年来,EDA 厂商们在缩小这种差距方面几乎无所作为。
要 点
  ●加快的速度是RTL仿真的10至 50倍。
  ●新仿真方法的速度是RTL仿真的1000至5000倍。
  ●FPGA原型的速度可以达到 RTL仿真的10,000倍。
  ●EDA厂商目前提供可简化构建原型的分区软件。
  ●多家厂商提供FPGA原型构建电路板,价格比自建的更便宜。

仅就验证设计而言,通常要占用集成电路(IC)设计师们多达 60% 至 80% 的工作时间,而且这个比例还在不断上升。为了帮助完成验证,很多设计机构已转向硬件辅助验证来构建设计原型。电路试验板是种硬件原型制作形式,并且在复杂化和流行程度方面一直在提高。Collett International (www.collett.com) 和 Deepchip.com (www.deepchip.com) 的调查表明:30% 至 40% 的 ASIC 项目涉及原型制作。现在可以利用现

成的 FPGA 来构建自己的包含数百万门电路的原型,然而对于大型设计或复杂设计,也许就需要购买预先设计的原型系统,或者,在经费允许的情况下,租借或购买仿真加速器或电路内置仿真器。构建、租借或购买的决定取决于若干因素,其中包括所要求的时钟速度、容量、功能、成本、系统设计技能以及必须验证设计的时间(参考文献 1)。

  原型构建系统

  设计师和厂商们表示,制作 ASIC 和 SoC(单片系统)原型在本质上是向后迈出的一步——一些人半开玩笑地称之为将SoC变成了SoB(单板系统)。在构建原型系统的过程中,一些设计师利用各种分立元件、既有的 ASIC 和提供新功能的 FPGA 的组合来重建其 ASIC 的功能。而另一些设计师则构建甚至购买将设计方案编程到主板中的快速原型设计系统。主板上容纳了一组 FPGA 和子板,用来连接成独特的功能或更大的系统。

  工程师们可以设计或购买运行速度接近 250 MHz的 ASIC 原型构件系统,这个性能水平在某些情况下接近终芯片的运行速度。这类原型系统比那些频率为 2 MHz 的商用仿真器快得多,比 RTL 仿真器快 110 倍。利用快速 ASIC 原型构件系统,设计师可以在系统环境中测试设计的功能,或者也可以进一步进行嵌入式软件的开发。

  当然,由于设计师们很难在这样的系统中查明系统缺陷的确切位置,ASIC原型的缺点是难以调试。各设计机构把基于仿真的广泛验证作为原型的基础。MIPS Technologies 公司利用几乎各种基于硬件的加速来验证新型微处理器内核设计,同时帮助客户集成内核(见附文《MIPS 无所不用》)。

  自建原型系统

  目前,从头构建原型系统在某些方面比过去更容易了,而在另一些方面则更难了。当今 FPGA 的巨大容量和速度等级使得用户能够制作数百万门 ASIC 设计方案的原型。近年来,通过提供工具帮助工程师分割ASIC设计并将分割的模块编排到FPGA阵列中,Synplicity 和 Synopsys 等 EDA 公司已使原型设计工作变得容易了。目前,ASIC 原型构建软件的商品化已经刺激了快速原型业务,并使其成为了 Cadence Design Systems 和Mentor Graphics等传统仿真厂商的更强大的竞争对手。各厂商,特别是那些提供现成原型系统的厂商表示:那些考虑制造或购买原型的单位面临的一个大问题是——是否有时间、额外的拥有印制电路板设计和系统设计技能的工程人员以及预算来自行构建原型系统?

  Dini Group 的 ASIC 原型构建公司总裁 Mike Dini 强烈建议:购买快速原型产品比从头构建更便宜。Dini 在 10 年前是一名 ASIC 和 FPGA 设计顾问,由于当时需要一些验证工具,因此他开始构建原型电路板。他目前已经放弃了设计服务,转向了 ASIC 原型构建领域中一项蓬勃发展的业务。多家厂商目前都提供这类原型系统(表 1)。Dini 说:“我们在仿真领域的竞争对手说我们只是提供一堆FPGA 而已。我并不把它当作是一种侮辱。这就是我做的事情。我把数量极大的一堆 FPGA 放在电路板上,把它们组装在一起并进行调试,并把它们以比你自己制造更便宜的价格卖给你。”他表示:原型构件的价值可能无法衡量,但是,组装一块你在项目结束后可能会丢弃的专用电路板,可能会很浪费。他建议用户创建专门功能的子板,并从快速原型构建厂商那里购买原型系统的 FPGA 部件(见附文《购买理由》)。

表一,快速原型系统,加速器,仿真器,供应商:


Dini 等人表示:即使借助 Synplicity 和 Synopsys 等公司的自动分区软件,自己构建一个配备3 块以上 FPGA 的系统也可能很快变成一个噩梦,特别是如果你不熟悉印制电路板设计(尽管 EDA 厂商声称印制电路板设计不难,但它依然是一项艰巨任务)时,情况更是如此。Dini 说:“原型是一个关于‘是做还是买’的决定。如果采用拥有 700 根引脚的较大封装,那么在一块板上放置一片 Virtex FPGA 没什么问题,但是如果要放置 2、3 或 16 片的话,在设计、构建和测试上就会有很大的困难。例如,两片 700 引脚 FPGA 对于印制电路板自动布线器来说就太多了,因此必须做很多手工工作。使基于 FPGA 的自制 ASIC 原型变得复杂的困难临界值大约是 3。两片还不算困难,但是当你开始实施 3 片 FPGA 时,你就必须开始检查层数,检查各种部件在印制电路板中如何连接。”他指出:现代的 FPGA 非常适合于自动分区软件,并且多数快速原型构建厂商都定制各自的系统,以便配合 Synplicity 公司的 Certify 等产品。

  Dini 说,型 FPGA 宣扬 I/O 结构(而不是速度或

逻辑)方面的优势。它们集成了与差分对连接的串行器/解串器,因此,如果要把一片 FPGA 连到另一片 FPGA,那么你就需要一个工作频率约为 350 MHz、复用比为 10:1 的差分对。如果你的设计方案工作于 35 MHz,那么你可以在 108 个差分对上获得 10:1 的复用比,并且使 1800 个信号在两片 FPGA 之间分区。Dini 表示:“分区工作在自制系统中是个噩梦,而上述方法使分区工作明显更容易了。”使 ASIC 原型对设计方案有效的一种方法是,在设计项目开始之前,确保 ASIC 开发人员在设计时考虑了原型。另一种方法是在 ASIC 中安排多个块,以便适应分区。通常很难使 ASIC 设计师接受购买的思想。Dini 说:“当然,ASIC 设计师通常处于食物链的顶端。尽管验证和原型构建原本不应该处于食物链的底端,但事实就是这样。”


  Synplicity 公司 ASIC 工具营销总监 John Gallagher 说,越熟悉 ASIC 设计,分区作业一般就越容易。设计界的 450 位人士答复了 Synplicity 公司的一项调查,结果表明:55% 的 RTL 设计师负责使 ASIC 分区进入原型系统,而另有 25% 说,应由一个单独的验证小组进行原型制作。


  加速和仿真

  一些设计团队希望在加快验证的同时,保持模拟的验证可见性。它们可利用模拟加速或仿真来实现这个目标。借助加速,设计的一部分可以在硬件加速器上编译和运行。借助仿真,整个设计可以在硬件上运行。加速可以使代码运行速度比在工作站上运行的单纯模拟的速度快数百倍乃至数千倍,但是若要在线运行一个连接到系统其余部分的设计,它还是显得太慢。另一方面,仿真的速度可以比 RTL 模拟快数百倍乃至数千倍,并且设计师可以简化它,以便在大约 2 兆赫下运行,这使它能在线使用,并作为一种功能验证加速方式。Cadence 公司声称,设计师甚至能调整诸如该公司的 Palladium 仿真器之类的某些系统,使它们运行在数十兆赫上。

  厂商们或者用非常类似原型系统的大型商用 FPGA,或者用定制处理器来构建加速系统和仿真系统。那些提供配备定制处理器的系统的厂商们声称,与利用现成 FPGA 的系统不同的是,这些器件的体系结构是为加速和仿真而设计的,因此更快,效率更高。ATI 公司验证工程师 Art Stamness 接受了使用加速的思想,但是对仿真不以为然。他所在的团队负责开发该公司图形处理设备中的 3D 图形内核,并且利用 Tharas Systems 公司的加速器来验证设计方案。他说:“我们把模拟测试台的一部分映射到使用定制处理器的硬件加速器上。它给予了我们更快的周转时间。我们不是运行 FPGA 网表,而是编译一个二进制文件,它比仿真快很多个数量级。”用仿真器编译一份网表可能要花一天时间。他说:“如果你发现了一个错误,你就必须重新编译,等到第二天,然后,如果你发现了另一个错误,你又得等上一天。”另一方面,加速能发现错误,并在一个小时内即可为更多的测试准备好另一份网表。

  加速更接近模拟环境,并且它能接受大量的代码,否则,这么多的代码是无法输入到仿真器中的。同时,与模拟相比,加速使性能明显提高,但不是仿真器提供的 5000 倍性能改善。

  Stamness 所在的团队在工作中使用一套由 150台 至 250 台 PC 服务器组成的服务器群,运行 Cadence公司的 NC-Sim,并且协同模拟方式加载 Tharas 加速器。Tharas 编译器提取相当多的代码,


并为设计方案创建一条“代码存根”。NC-Sim 运行在与硬件加速器通信的主机上。Stamness 认为,使用仿真不仅涉及启动成本,而且还涉及支持成本。他说:“与加速器相比,在硬件、人员、电力、实验室空间方面所需的大量配套基础设施的费用高得令人不敢问津,而加速器可以象任何模拟箱一样插入机架中,并提供更快的性能。仿真仍然令人生畏,只适合于高端设计,在高端领域,加速可以很好地填补 100 万美元模拟箱和慢速模拟之间的空白。”

  Stamness 对仿真的看法代表了很多人的观点,他们投资购买了价值数百万美元的仿真器,结果却在几年后发现它们积满了灰尘,或已经过时了。早期的仿真器很难编程,用户经常发现自己花在调试仿真器方面的时间和花在 IC 设计上的一样多。EDA 厂商们说:构成仿真器基础的软件目前更先进、更容易使用了,系统成本的很大一部分来自它的易用性。

  QLogic 公司的验证工程师 Tom Paulson 是另一位仿真器皈依者。他所在的团队利用 Cadence 公司的 Palladium PD II 仿真器来构建光纤通道交换机 ASIC。该公司三年多来一直在使用 Palladium 仿真

器验证 5 片 ASIC。QLogic 的团队利用 Quickturn 的 QuickCycles “以租代售”计划在 Quickturn 的仿真器上达到了预定速度,并终购买了一个仿真箱。他说:“它的价格很高,但我们一直没让它闲着。”Paulson 所在的部门在工作中使用 VHDL,并利用Mentor Graphics公司的 MTI ModelSim 来做初始验证。他说:“我们实现了该过程的自动化,反复做同样事情的公司就该这样。我们构建了一组 ROM,每次测试都调用不同的 ROM,因此芯片会以略微不同的方式工作。我们对某块 ROM 也许会运行测试,也许运行四五次测试。我们用 TCL(工具控制语言)脚本建立这些配置。所有这些检查的终结果都很简单:对于一块光纤芯片,你在检查所有的一切都去了它们该去的地方,并且你要考虑所有的光纤通道帧——也就是说,所有的帧都正确到达了。我们还做一些初始检查,并检查芯片内的状态寄存器。当你到达这一点时,它要么合格,要么不合格。”

  如果该团队发现一个错误,那么它会再次运行测试,然后把数据库上传到工作站。随后,该团队利用调试工具离线。Paulson 说:“我们拥有一定数量的窗口来查看迹线,并且在开始时可以要求一定数量的信号。”该团队也开始利用 Cadence 公司的 IXE 3.0 软件,它可以在软件中重新构造设计。他说:“我们发现,获得需要检查的额外信号所花的时间明显增加了。它具有 Novas Debussy 波形,因此它看起来刚好像模拟器。从我们发现故障的时候开始,把波形调上来,让坐在我们旁边的设计师解决问题,重新合成仿真器并重新运行它,在有些情况下要花一二个小时。”

参考文献
1. Moretti, Gabe, "Hardware tools aid engineers in design verification," EDN, Aug 30, 2001, pg 77.


  MIPS 无所不用

  微处理器内核厂商 MIPS Technologies 公司利用几种硬件辅助验证来开发公司的内核。MIPS 公司 CAD 和信息系统总监 Donald Ramsey 说,他的部门使用Mentor Graphics公司的 VStation 仿真器,同时还构建自己的原型电路板供验证或客户使用。它的处理器内核有50万~ 100 万个门电路,因此,对于在仿真或单一 FPGA 原型电路板中运行内核来说,容量不是问题。

  Ramsey 说:“我们在门电路方面没有问题,但是我们在复杂性方面确实遇到了问题——普通处理器的边界条件很深奥,并且设计需要大量定向测试、伪随机测试,然后是原型构建和仿真,作为验证手段、调试手段并用于软件验证。当我们创建内核时,我们也期望许多软件工具能够起到作用。”

  微处理器内核设计的开始是在计算机集群上执行 RTL 模拟。然后该公司在整个过程的初阶段运用仿真。公司有两台 VStation 仿真器,利用其中一台做功能验证,而用连接到系统的另一台做调试的在线仿真。对于验证,公司的团队把仿真作为模拟加速器来实现快速定向的随机验证。Ramsey 说:“利用仿真器,我们一天可获得大约 10亿次循环。这就象是拥有了一部更快速的模拟引擎。”

  MIPS 公司利用另一部 VStation 来做系统级模拟。Ramsey 说:“我们无法在自己的 RTL 模拟器上运行应用程序,部分原因是因为它太慢,并且在系统环境中,你必须把各种事情抽象,这是因为它不只是一个内核,它还需要系统控制器、存储器以及诸如此类的各种部件。然后你会遇到门电路数量问题。”

  MIPS 公司并不会为了在系统测试而对内核的 RTL 版本进行测试,而是把设计加载到仿真器上。在使用仿真之前,MIPS 公司的设计团队曾使用以前开发的原型电路板,使内部的软件开发人员在嵌入式软件开发方面获得位置。Ramsey 说:“它基本上是一块 具有AT 形状因子的印制电路板,使你能连接磁盘驱动器、键盘等等。该系统没有处理器,而是有一块配备两个插槽的子板,一个插槽用于安装 FPGA 来安排系统控制器,而另一个用于安放 MIPS 处理器。”

  MIPS 公司随后创建了一种新型子板,它使该公司能把仿真器插到 FPGA 原型系统中,并执行深度的系统调试。MIPS 还直接把处理器设计安排到子板的 FPGA 中。FPGA 原型的运行速度比在线方法更快,并能鉴别错误,但是缺乏对代码的深入度可视能力。当FPGA 原型运行于 25MHz 至 40 MHz时,具有仿真的系统运行在 1 MHz  至 3 MHz 。Ramsey 说,这种速度要求用户做额外的时钟缓冲,以便应对在存储器以及操作系统中的硬编码间隔定时器中自然发生的等待状态。FPGA 原型的速度比实际

处理器慢 8~12倍  ,比较适合于调试。

  很多存储子系统都能容忍速度减慢8~12倍。Ramsey 说:“当你运行 FPGA 时,它具有正常系统的所有特征,只是运行得慢一点。但是,当你从 25 MHz降至 1 MHz时,你就超出了真实系统情形的界限。即使在电路板上有一块慢速存储器,看起来也象是在下一个周期中返回数据。你必须很仔细,这是因为你其实并不是在对真实系统中的所有等待状态建模,原因在于存储器和其它外设都始终可用。”

  根据Ramsey的说法,设计师还可能在操作系统中的硬编码间隔定时器方面遇到问题。他说:“你还必须做一些时间换算。”由于开发周期很短,因此MIPS公司使用了仿真和FPGA原型来对它的终设计做硬件调试。“我们会在仿真器上运行各种东西,很快找出许多问题,然后发现,如果我们打算满足日程表的要求,我们就需要更快的平台。因此团队决定使用FPGA原型。它只需花费几分钟而不是一至三个小时,就可以发现操作系统的错误。”

  他认为,一旦团队发现了错误,很难确定错误的原因。他说:“在仿真器中,错误是 100% 可见的,但是利用这种仿真系统,你看不到完整的历史情况,因此你必须在自己认为事件发生的时候执行触发,来捕捉该事件。在仿真过程中,你终要运行很多次才能找到触发点,并且一旦你做了,你就拥有了确凿证据。而在 FPGA 运行过程中,情况刚好相反。你知道触发点的位置,但是你要一直运行它,直到你获得了一组正确的输出信号,然后回过头去写一份指导性的诊断,并在模拟器上运行它,来核实你的理论。”

  在某些情况下,事实证明不可能编写指导性的诊断。在一个有很多未完成操作的复杂处理器中,由于时间中断、存储器速度、处理器速度之间的差别,很难准确查明问题所在。仿真系统的既有问题之一,就是用户调试仿真器所花的时间和他们调试设计的时间一样长。

  EDA 厂商在促进仿真系统方面已取得了长足进步,并且 Ramsey 的部门做了大量工作来消除仿真器的缺陷。
  购买理由
  作者:Mike Dini

  在设计用于构建原型的定制硬件时,存在多种开发费用,设计方案需要的器件数量是这些费用的主要推动因素。假设工程团队足够,性就使印制电路板毫无错误。与“制造”原型相关阶段的开发费用包括定义阶段(通常需要两周)、设计阶段(4 ~ 6 周)和印制电路板布局阶段(4 ~ 12 周)的费用。另外,设计师还必须考虑两周的零件采购时间、两周的组装时间以及4 ~ 6 周的测试时间。所有这些阶段合计为 18 ~ 30 周。然后,他们必须考虑其他费用:印制电路板的非经常性工程(NRE)成本一般是 3000美元 ~ 5000 美元,掩膜费用一般约为 1000 美元,小批量的启动装配费用是 2500 美元。

  零件采购和一些测试功能与设计过程是部分重叠的,但是原型定义、原理图输入、印制电路板布局和组装必须依次进行。你应该假设:获得首批组装完毕的部件你需要两周时间。这就意味着你将需要至少 16 周时间来完成自己的设计。如果假设承担任务的工程师费用是 100 美元/小时,那么工程时间的费用就是 6.4 万美元,非经常性工程成本至少为 5500  美元。

  这些数字代表了情况。完成自己的设计一般至少需要 4 ~ 6 个月的时间和 10 万美元。如果设计方案需要2块以上的引脚数量很大的 FPGA,那么布局时间就会接近 12 周。FPGA 成本在材料清单(BOM) 费用中占据非同寻常的份额。另外,如果设计方案需要 LVDS 和千兆比特串行接口,那么设计时间就会显著增加

上一篇:一种加快RFIC发射机设计速度的创新方法
下一篇:WinFX编程模型提高用户开发水平

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料