基于FPGA的原型验证, 'Why', 'What' 以及 'How' - 第1部分

2011.11.09 | Ashok Kulkarni | AE Director, North America

在深入研究基于FPGA的原型验证之前,我们需要回答"为什么要进行原型验证"。所有的设计,无论是SoC、ASIC还是ASSP(此后SoC还被假定为 ASIC和ASSP)都需要被验证(功能和时序验证),以确保在使用硅之前实现模型与期望的设计性能相匹配。而且,大多数SoC的软件内容不同。因此,尽早使用硅前硬件平台进行软件开发是至关重要的。现代的SoC设计不断增加门密度、成本和复杂性。第一次获得硅是绝对必要的 – 否则重新设计硅的成本可能高达数百万美元,许多市场机会对企业来说是毁灭性的。为了满足验证挑战和对硅前硬件平台的需要,已开发出许多技术 – 但这仅可以满足功能验证的需要。

从广义上讲,您可以把它们分类为基于软件的技术 – 使用RTL仿真器和硬件辅助技术 – 硬件加速仿真和基于FPGA的原型验证。

在基于仿真的方法中,被测试设计(DUT)和测试台(TB)在RTL仿真器内运行。这种方法有许多优点,例如低成本、易于设置和使用、仿真设计的任何部分完全可见。有充分的可控性和可观察性,能够使用断点和暂停来观察设计性能,如同使用软件调试器。但这种方式也有以下缺点:

  • 低性能(当在高端工作台上运行时,一般在20-30 Hz频率范围内)。不可能全面彻底地验证测试套件的所有场景,因此仅适合于最初的模块级验证。
  • 缺少将设计与实时接口衔接、了解真实系统环境中的性能的能力。
  • 在这些设计上开发任何软件是不切实际的。

这是硬件辅助验证开始起作用的地方。硬件加速是将DUT映射到硬件(通常是一系列的FPGA或定制处理器)、将TB位于软件仿真器中的一种方法。仿真器性能提高至10x~100x,但是受DUT/TB活动率的限制,通过实现基于事务级TB,可以在某种程度上增加DUT/TB活动率。而且,在硬件加速中,DUT被隔离验证并且未在系统环境中验证。由于硬件加速器的成本较高,并且其尺寸较大、性能较低,所以用它来创建软件开发所必需的多个系统是不切实际的。

                                图1:SoC/ASIC产品开发阶段

另一方面,它的仿真速度可以更快(仿真器速度超过1000x),并且可提供优良的调试性能,但是其尺寸较大,不便于携带。而且,仿真器的成本较高,因此,在经济上,用它创建硬件和软件开发者所需要的多个系统是不切实际的。

基于FPGA的原型验证可以解决大多数上述局限。FPGA原型验证是否是一种新的方法?不是。我的首个原型验证项目是在1994年进行的。它以Xilinx XC4000系列为基础,并且在单个原型验证板上有6个XC4040 FPGA。令我好奇的是,如今最大的Virtex 6 FPGA装置比该系列最大的装置XC4085XL密集了120多倍!因此回避不了这样的问题:什么使原型验证成为真正可行的选择?我们将在下一篇博客"第 2部分:基于FPGA的原型验证 – 真正可行的选择"中进行探讨。