通过ProtoLink Probe Visualizer加速基于FPGA原型板的验证
2011-08-13SpringSoftInc
SpringSoft Inc.茅 华
系统级芯片 (SoC)设计在尺寸和复杂度方面持续增长。与此同时,市场窗口正在缩小,并且当前电子市场对上市时间压力极其敏感。所有的这一切促成了对SoC设计和验证组件的极大需求。目前,业界广泛认同的一点就是,验证在整个SoC开发周期中占据了大约70%的时间。因此,任何可以降低验证成本、加速验证运行和在开发周期更早期推动验证的产品都能引发业内人士极大兴趣。
很多公司正在转向一种具有性能和低成本优势的、基于FPGA的原型方法,它通过应用软件实现关键设计模块或整个系统的系统级验证。但是,原型设计通常被延迟或仅限于开发周期的后期,因为它们本身很难设置,并缺乏充分为设计侦错所需的能见度。
SpingSoft的ProtoLinkTMProbe Visualizer推出了一种创新而实惠的软件驱动方法,可显著提升设计能见度,并简化对现成的和定制设计的FPGA原型板的侦错。它结合了获得专利的互联创新和专有的软件自动化,以及业界领先的VerdiTMHDL侦错平台,通过在SoC设计和验证组件上进行更快、更早期的介入,缩短了验证周期并将投资回报最大化。
传统的基于FPGA的原型验证流程
典型的基于FPGA板的原型流程开始于手动分区,在预先设定的模块边界基础上,将用于设计的寄存器传输级(RTL)代码分到多个FPGA上。每个预先分区的RTL模块通过FPGA设置过程对设计进行综合及布局布线,并将生成的配置文件(或多个用于多FPGA的文件)下载到原型板上的FPGA(或FPGA组)中。然后该设计(若在单元级验证情况下则为其中的某些部分)就按照由真实输入/输出信号所驱动的电路内仿真模式运行,如图1所示。还可用硬件逻辑分析仪捕捉真实的I/O信号,用于后续分析。
图1 基于FPGA原型板环境运行在一种芯片内模式中时的高层级重现
快速的运行性能和相对低的成本是这种基于FPGA原型验证流程的主要优势,它可以在多个用户、项目和站点上进行部署。但是,在FPGA设计上实现最佳性能和非常有限的能见度需要足够的设置时间,这使得原型板侦错很难进行,并且在开发周期的早期使用也不切实际。基于FPGA原型板的典型侦错过程如图2所示。依据潜在的bug数量,侦错过程可能需要几天到几周的时间,从而大大降低了用于快速早期SoC验证的原型板的价值。
图2 基于FPGA原型板的典型侦错过程
因此,一些设计团队选择推迟原型板的介入,直到一个更加稳定的RTL设计出现时为止。但是,这也相应推迟了软件/硬件的相互验证,而这正是当前SoC设计流程的一个重要部分。虽然通过软件仿真对RTL设计进行更多的测试可以减少bug数量,但是对原型板上碰到的每个剩余bug进行侦错的过程必然是痛苦而漫长的。
另外一些设计团队选择使用硬件辅助仿真,可比软件仿真提供更快的性能,并具有相似的侦错功能。但是比原型板更贵更慢,并且不支持大范围部署。底线是为缩短侦错周期,需要在更多周期内看到更多信号,这对成功部署基于FPGA的原型验证流程是至关重要的。
ProtoLinkTMProbe Visualizer简介
ProtoLink Probe Visualizer解决了易用性和能见度问题,它可在多个周期内探测数千个信号,用一个快速探测ECO流程就能很容易地添加/改变可视信号,并且从RTL设计阶段早期开始一直到最后实施,都能简化原型板侦错。
该款Probe Visualizer由一个集成套件构成,其中包括软件、硬件和专有IP,可以执行FPGA安装、仪器探测和接口任务。获得专利的互联技术将基于FPGA的原型板和标准的工程工作站连系起来,在传统的电路内仿真模式下运行Probe Visualizer。
硬件部分由ProtoLink硬件接口套件组成,其中包括一个用在工作站的定制PCIe卡,以及用于连接原型板的ProtoLink接口卡,如图3所示。基于FPGA的原型板通常装备有用于连接外部器件的J-Connectors,或者用于连接硬件逻辑分析仪的Mictor连接器。接口卡可被连接到JConnectors或Mictor连接器。通过ProtoLink互连技术,用户采用相同的J-Connector也能实现对不同原型板的配置,从而促进了向更快、更大或更新原型板的过渡。
图3 包含定制PCIe和接口卡的ProtoLink Probe Visualizer的硬件部分
Probe Visualizer的IP部分以小占位IP块的形式呈现,可以在安装过程中自动配置到原型板上的每个FPGA,从而以时分复用的形式来提取出已经探测过的信号。
Probe Visualizer软件实现了预先分区的FPGA安装流程自动化,以配置和预先选定的探测信号为基础插入所需的IP来检测设计。在运行时,该软件在定制PCIe卡、ProtoLink接口卡和FPGA内部的软IP单元之间控制着专有的通信协议,以设置事件/触发条件、增加/改变探测信号,并将探测信号上传到SpringSoft的符合业界标准的快速信号数据库FSDB(Fast Signal Database),进而采用Verdi自动侦错系统进行侦错。如果需要确定最少的信号组,该软件可以通过SpringSoft的SilotiTM能见度增强系统进行部署,以达到最佳设计。
Probe Visualizer同时支持同步和异步采样,可确保在数百万的时钟周期内都能捕捉到来自成数千个信号的探测数据,并可将这些数据保存到ProtoLink接口卡上的Probe存储器中,而不需要原型板上的FPGA存储资源。
与Verdi Debug无缝集成
Probe Visualizer采用了与Verdi侦错软件同样的编译技术,仅需一个单独的设计编译程序就能使带有Probe Visualizer软件的Verdi系统具有先进可视性、自动跟踪和分析功能。在首次安装过程中,通过使用Probe Visualizer和 Verdi系统共享的设计知识数据库,门级信号能自动关联到与其相对应的RTL中。这样,信号值就能以工程师们最熟悉的RTL信号源代码形式呈现,从而可降低侦错难度,提升运行速度。
侦错过程是一个发现、跟踪和分析信号,以确定意外设计行为发生的根本原因的直观过程。第一组可视信号应当能够为侦错提供一个良好的起点,而往往不需要额外的探测信号。传统原型流程通常导致冗长的重复编译和循环侦错。
为了规避这个问题,Probe Visualizer提供了一种快速Probe ECO功能,那些需要观测的信号可以很容易地被改变或增加,而无需重新编译整个设计。工程师可以很容易地将基于RTL的新增探测信号从Verdi环境拖拽到Probe Visualizer中。系统在设计知识数据库内部找到相关的EDIF信号,随后在嵌入的FPGA的布局布线文件上直接执行快速部分布线,从而显著降低侦错周转时间和在很短的时间框架内确保多个侦错会话。一个集成的修订管理系统持续跟踪探测ECO,因此Probe Visualizer用户能够迅速地跟踪到侦错过程中所需的特定ECO配置。工程师们能够在多个FPGA上指定触发条件和浏览波形,就好像它们是一个FPGA一样,从而更好地分析设计行为并找到产生bug的根本原因。这种能力尤其重要,因为一些形式或状态是由现实世界的刺激或固件所造成的,只有当一个已知的状态运行很长的周期后才能获得。如果没有Probe Visualizer,及时地对这样一种情况进行侦错所需的实时能见度几乎不可能实现。
以另一种情况为例,来自FPGA1的信号驱动着FPGA2里的逻辑元素,生成所需的输出信号。如果输出信号被认定为是错误的,它们就会在Verdi环境中被追溯回FPGA2,并采用 Probe ECO来发现FPGA2里的额外信号。这些信号随后被进一步追溯到FPGA1,再次通过Probe ECO来发现FPGA1里的额外信号,并识别造成这种问题的根本原因。采用ProtoLink Probe Visualizer的典型侦错过程如图4所示。
图4 采用ProtoLink Probe Visualizer进行基于FPGA的原型板典型侦错过程
原型验证新范式
随着FPGA的容量越来越大和性能越来越好,FPGA原型验证作为一种切实可行的高性价比方法为设计者广泛接受,用于关键设计模块或完全集成SoC设计的系统级验证。但是,实施复杂性和各种侦错困难阻碍了原型部署给原型开发商和SoC设计团队产生了巨大的验证负担。
SpingSoft的Probe Visualizer通过采用直观和基于软件的方法,改变了原型验证的范式,可以提供丰富、实时的设计能见度,并通过板上Verdi侦错功能,将原型侦错时间降低到传统方法的一半,从而实现了侦错生产力和整体验证效率的提升,使得各企业能够在SoC开发过程更早期部署基于FPGA的原型,并且快速过渡到装备有最新和最强大FPGA技术的下一代原型板。