专注于射频工程师,天线工程师和电子硬件工程师的培养
首页 > 技术文库 > 硬件设计 > 可编程逻辑 > 用多片FPGA 进行ASIC 设计验证的分区和综合技术

用多片FPGA 进行ASIC 设计验证的分区和综合技术

时间:2020-12-13 点击:

WCDMA文章列表:WiMAX与HSDPA优势比较   
USB:浅谈USB闪存盘与PIC微控制器系统的连接
3G知识普及:3G研发历史本文将介绍,如何在专业的验证软件CerTIfy 的帮助下,实现快速有效的用多片FPGA 来进行ASIC 设计验证。
前言
在现在复杂的ASIC 设计中,校验(VerificaTIon)是最大的瓶颈。随着先进的半导体工艺技术不断前
进,随之带来的是ASIC 设计规模和设计复杂度的飞速增长,这使得传统的软件仿真工具已经无法完全解决验证的问题。而且随着越来越多的需要处理大量实时数据的应用(如视频)出现,验证技术就要求能够在接近实时频率的条件下进行验证。现在越来越多的ASIC 设计者自己设计FPGA 验证板来进行ASIC 设计验证。用FPGA 验证ASIC 的好处是可以使软件的开发调试和ASIC 的开发调试并行的进行。
ASIC 的设计者在用FPGA 做验证和调试的时候会面临很多挑战。一个最大的问题就是即使是:最大
容量的FPGA 和复杂的ASIC 相比还是太小。这意味着设计者必须把他们的ASIC 设计分割到几块FPGA 中。
在作分割和FPGA 综合的时候,没有工具帮他们做出好的分割决定,也很难确定验证板的参数和设计。这样设计者只能单调乏味的在分割、综合、板上实现几个步骤中重复,浪费大量的时间。
CerTIfy 是SYNPLICITY 公司的新一代设计软件,它就是针对用FPGA 做ASIC 验证的设计。CerTIfy
结合了RTL 多片分割和业界最好FPGA 综合技术。它是业界的第一个也是唯一一个针对使用多片FPGA 做ASIC 验证的设计工具。
SOC(片上系统)ASIC 的验证方法ASIC 设计者面临着一系列的压力。他们的设计要达到最高的集成度,并且要能满足最新的工艺技术,达到最大的容量。而且他们也不得不要考虑Time-To-Market 的时间,所以要尽快的得到功能完全准确、可以工作的芯片。由于推向市场时间的巨大压力,SOC 芯片还要有软件的部分,因此同样不容许因为芯片功能没有达到准确而导致拖延软件的开发和调试。软硬件的合作开发和调试是必须的。
EDA 工业就是为了满足对新工具和新方法的需要。高级的描述语言和高级的库极大的提高了设计者的生产力。越来越多的IP 核允许设计者使用增强功能的元件快速可靠的设计很大的设计。瓶颈来自于验证,因为ASIC 投产之前必须是正确的。对百万门级片上系统的ASIC 设计,每次投片的NRE 费用是巨大的。因此,在功能没有被验证之前不去投片是可以理解的。而且随着设计容量的增加,充分仿真需要测试向量的数量也增加的更快。所以现在的ASIC 设计周期中,验证占了50%强。预计将来两年的设计中,验证会达到70%。

对SOC 的设计者来说,有许多的验证方法。下图是一个比较:


传统的仿真技术已经远远不能满足现在复杂的ASIC 验证对速度的需要。软件仿真器和定制的软件模型非常普及,但仅仅它们已不能满足用户的需要。硬件加速器有比较好的性能,但是贵而且使用不方便,并且对于具有高速数据处理的一些应用,如MPEG 视频处理等,仍然不能达到所需的性能。而现在世面上更加昂贵而且更难于使用的硬件仿真器,也不能满足现在的ASIC 设计的性能需要。

所以现在ASIC 设计者更多的使用定制或者是可重构的验证环境来做系统验证。验证设计的流程如下
图所示:

综合/分割的瓶颈用FPGA 作原型验证提供了很多好处,但同时也带来了新的难题。把整个设计分割到多片FPGA 中经常会花费很长周期,从而也延迟了整个的开发周期。图2 显示了定制的原型验证传统的设计流程。在流程中综合和分割是分开的,互不关联。综合的时候不会考虑到设计如何分割到多片的FPGA 中,因此,不会达到所希望的速度。分割的方法也不会反馈,不会对利用率和系统性能带来影响。因此,设计者会在分割和综合之间反复多次。每次的反复都会浪费时间,结果增加了验证的时间,降低了生产力。当对源代码改动的时候,这个过程有可能再会重复多次。更大的问题是仔细认真作出的分割不会在对多个FPGA 综合的时候用到而优化系统性能。这有可能降低验证的性能,还会迫使你使用更多更大的更昂贵的器件。
所以要真正解决问题,就需要把FPGA 分割和综合结合起来,并且在RTL 级就完成分割。结合Certify软件就能做到这样。这避免了反复的浪费时间,加快了原型验证,缩短了验证的开发周期,使产品更快的推向市场。
Certify 是建立在Synplify 综合技术上的,Synplify 的核心算法包括了适合每种FPGA 特殊结构的综合算法,它的时序驱动的综合算法使设计可以达到尽可能高的系统速度。
这种综合算法的内核被扩展到了运用独特的分割驱动综合算法的Certify 中。有了这种方法,综合过程就基于一个确定的分割。在多片FPGA 之间的时间预算自动的被包含在分割驱动的综合算法中。
这个方法是Certify 解决方案的核心,提高了验证的性能,并使得设计者可以在几乎相当于实时的速度中对其设计进行验证。
Certify 的综合引擎,基于已经验证的Synplify 技术,可以处理超过100 万门的设计。它同样有能力进行快速综合。工作在450MHZ,1G 内存的PC 平台上的综合测试,Cerity 综合分割100 万门的设计到几个FPGA 器件中不多于9 小时。
Certify 用户接口
Certify 提供了简单易用的图形用户界面(如图3),用户可以快速的产生合理的分割,并可以估计验
证的速度和效率。Certify 利用成功的HDL 分析器,自动由HDL 代码产生RTL 图,并将二者都在窗口显示。
其他的窗口显示系统验证板和FPGA 的图形说明。
Certify 中要首先要估计设计中每个模块的面积和I/O 数。这个估计是通过调用估计模式下的综合引擎
实现的;估计的结果作为RTL 块图的标注显示。



用户通过从RTL 图中选择块并把他们拖曳到目标FPGA 器件中实现分割。Certify 直接为每个器件提供I/O 和面积利用率的百分比的反馈信息。这就使用户可以完全控制分配及分割结果的快速反馈。然后设计者可以利用这个信息把选中的模块分配到最合适的FPGA 中去,同时又保证分割的结果对面积和I/O 利用而言是合理的。
当分配完成后,Certify 利用物理分割信息驱动综合算法。这些选择会影响电路的实现。因此当把片内
和片外的延迟及板子上的延迟时计算在内时,时序中的关键路径能够被优化。
不改变RTL 源代码而进行逻辑复制
为了增加验证性能并将FPGA 之间的互连最少,Certify 让设计者不改变HDL 源代码而复制逻辑。例如在图4-a 中,解码器的16 位输出驱动三片FPGA 中的逻辑。板子上的总线布线会导致系统速度降低,会产生版图设计的问题并需要大量的利用珍贵的I/O 资源。
相反的,在图4b 中,解码器可以被复制在三个FPGA 中的每一个。尽管这样做会增加总的芯片面积,却减少了板子之间的互联并大大的减少了I/O 的需求。在Certify 中,这个复制可以通过简单的在RTLCertify 用户接口Certify 提供了简单易用的图形用户界面(如图3),用户可以快速的产生合理的分割,并可以估计验证的速度和效率。Certify 利用成功的HDL 分析器,自动由HDL 代码产生RTL 图,并将二者都在窗口显示。其他的窗口显示系统验证板和FPGA 的图形说明。
Certify 中要首先要估计设计中每个模块的面积和I/O 数。这个估计是通过调用估计模式下的综合引擎
实现的;估计的结果作为RTL 块图的标注显示。


用户通过从RTL 图中选择块并把他们拖曳到目标FPGA 器件中实现分割。Certify 直接为每个器件提供I/O 和面积利用率的百分比的反馈信息。这就使用户可以完全控制分配及分割结果的快速反馈。
Certify 包含了强有力的“what-if”分析,用户可以通过它快速分析分割对面积和I/O 的影响。通过在设计模块上点鼠标右键调用“what-if”分析。利用选中的模块和所有以前分割的模块之间的互连情况,Certify 计算把选中的模块到分配到验证板上每个FPGA 时对面积和I/O 的影响,并把这个信息反馈给用户。然后设计者可以利用这个信息把选中的模块分配到最合适的FPGA 中去,同时又保证分割的结果对面积和I/O 利用而言是合理的。
当分配完成后,Certify 利用物理分割信息驱动综合算法。这些选择会影响电路的实现。因此当把片内
和片外的延迟及板子上的延迟时计算在内时,时序中的关键路径能够被优化。不改变RTL 源代码而进行逻辑复制为了增加验证性能并将FPGA 之间的互连最少,Certify 让设计者不改变HDL 源代码而复制逻辑。例如解码器的16 位输出驱动三片FPGA 中的逻辑。板子上的总线布线会导致系统速度降低,会产生版图设计的问题并需要大量的利用珍贵的I/O 资源。相反的,在图4b 中,解码器可以被复制在三个FPGA 中的每一个。尽管这样做会增加总的芯片面积,却减少了板子之间的互联并大大的减少了I/O 的需求。在Certify 中,这个复制可以通过简单的在RTL视Figure 3
用户通过从RTL 图中选择块并把他们拖曳到目标FPGA 器件中实现分割。Certify 直接为每个器件提供I/O 和面积利用率的百分比的反馈信息。这就使用户可以完全控制分配及分割结果的快速反馈。
Certify 包含了强有力的“what-if”分析,用户可以通过它快速分析分割对面积和I/O 的影响。通过在设计模块上点鼠标右键调用“what-if”分析。利用选中的模块和所有以前分割的模块之间的互连情况,Certify 计算把选中的模块到分配到验证板上每个FPGA 时对面积和I/O 的影响,并把这个信息反馈给用户。
然后设计者可以利用这个信息把选中的模块分配到最合适的FPGA 中去,同时又保证分割的结果对面积和I/O 利用而言是合理的。
当分配完成后,Certify 利用物理分割信息驱动综合算法。这些选择会影响电路的实现。因此当把片内
和片外的延迟及板子上的延迟时计算在内时,时序中的关键路径能够被优化。
不改变RTL 源代码而进行逻辑复制
为了增加验证性能并将FPGA 之间的互连最少,Certify 让设计者不改变HDL 源代码而复制逻辑。例如在图4-a 中,解码器的16 位输出驱动三片FPGA 中的逻辑。板子上的总线布线会导致系统速度降低,会产生版图设计的问题并需要大量的利用珍贵的I/O 资源。
相反的,在图4b 中,解码器可以被复制在三个FPGA 中的每一个。尽管这样做会增加总的芯片面积,
却减少了板子之间的互联并大大的减少了I/O 的需求。在Certify 中,这个复制可以通过简单的在RTL 视图中拖曳解码器到版图视图中的每个FPGA 中去实现。
由于原型的主要目的是对ASIC 进行验证,仅仅因为验证的目的设计者是很不愿意改变HDL 源代码的。事实上,很多机构中,验证小组被严格的禁止对源代码进行改动。利用传统的综合和分割建立原型是不可能不改变源代码而在FPGA 中复制逻辑的。这就导致了效率低的-有时是不可行的原型验证。只有Certify可以使设计者不改变源代码而复制逻辑,只需要把目标从RTL 视图中拖曳到目标器件就可以了。
不改变RTL 源代码而建立探测点传统的综合和分割的方法中,说明一个要被输出到FPGA 边界作为探测点的信号,需要改变HDL 源代码。只有Certify 可以使设计者不改变HDL 代码而指定探测点,只要把信号拖曳到和FPGA 关联的管脚分配表上即可。
重复的设计流程验证的一个主要目的是快速的找到并修改原设计中的错误。为了支持重复的验证-调试-修改-验证-调试这样的周期,验证的工具必须最佳化。Certify 是这个设计流程的最佳工具。除了为设计中的每个FPGA 建立门级网表,Certify 也为每个FPGA 输出HDL 源代码。修复设计中bug 的重复过程通常被限制到设计中为数不多的模块中去。通过Certify,只有需要重新实现的FPGA 才会被影响,这样就减少了增加设计改变所需要的时间。
关于IP 核ASIC 设计,特别是被认为是芯片上系统的一个明显趋势是设计的重用性,即那些不论是自己生产还是买回来的IP 核。Certify 可以容易的使用它们。
如果有RTL 代码,就可以放入设计过程中去,并在一个或多个FPGA 上验证。另一种方法是把它当作FPGA外面的东西放入到系统中。Certify 中,这将被认为是一个黑盒子。这个器件在版图中被定义,然后在分割过程中被例化。同样的方法可以例化标准的功能模块例如UART 和存贮器。
灵活选择实现方式Certify 的输出为测试板产生一个顶层的网表,为每个FPGA 产生一个可以进行布局布线的优化网表,这就使得使用者可以定义一个定制验证板,并通过布线互联器件例如I-Cube 建立验证板。它也可以被用于流行的来自Aptix 的产品System Explorer 的输入。System Explorer 把Certify 创立的网表作为输入,在验证板上放置器件,配置可编程的板子之间的互联,然后调用FPGA 布局布线工具执行每个器件。
Certify 支持FPGA 供应商最流行的FPGA 器件。在Certify 的第一个发行版本中支持的有Altera 的Flex10k,Apex,ApexII,Xilinx 4k 以及Xilinx Virtex 系列。利用Certify 可以用最流行的FPGA 器件以及几乎所有的验证板为用户提供了最灵活的实现方案选择。
Certify 将RTL 多片分割和FPGA 综合技术结合起来,是第一个也是唯一的着眼于ASIC 验证和利用多片FPGA 进行验证的综合产品。Certify 的独特的分割驱动综合方法使得设计者达到最快的验证速度。Certify大大简化了ASIC 验证,减少了验证开发时间,并使其快速市场化。

CopyRight © 2009-2021,易迪拓培训 All Rights Reserved,沪ICP备05048810-2号 版权所有

网站地图

Top