Xcell在线杂志
  Xcell 杂志存档
   
  给Xcell投稿
  在Xcell杂志做广告
  免费订阅
   
  合作伙伴黄页
  参考页面
  联系我们

    

主页 : 技术文档 : Xcell在线杂志 : 文章
硬件/软件协同验证



作者:Ross Nelson,Seamless FPGA产品经理,Mentor Graphics公司
ross_nelson@mentor.com (7/15/05)


透彻解析您的软件与硬件 - 并在进程中实现更快的设计反复。
文章的英文版PDF链接
文章英文版PDF 275 KB


您可能经历过这样的情况:聪明、探知性的工作,让您为您的基于嵌入式处理器的设计,对HDL稍加改动。 现在,您需要运行综合、布局和布线和查缺补漏……您突然意识到再过一天才能看到结果。

大器件使您可以将整个系统放入FPGA中,但是,某些复杂的系统,只有有限的可见性和需要一整天的周转时间,这样就会浪费您几周的宝贵时间来调试。

硬件/软件协同验证被成功地应用到复杂的ASIC设计中,已有多年历史了。 现在,Mentor Graphics为FPGA设计者提供了Seamless FPGA,它将逻辑仿真器和软件调试器的调试能力组合起来。 Seamless FPGA协验证使您可以从设计迭代循环中去掉综合与布局和布线,同时,实现比逻辑仿真快1,000倍的性能增益。

缩短设计迭代循环
由于可以买到开发板,所以很多FPGA设计者将它们用在高度迭代的设计循环中。 不巧的是,开发板占用每个设计迭代中的大部分系统开销。 该系统开销以逻辑综合的形式出现,接着是布局和布线。 尽管这些步骤对最终设计是必需的,但您可以通过将仿真指向验证平台将这些费时的步骤从高度迭代的设计调试循环中去掉。

将仿真作为验证引擎,仅有的系统开销存在于编辑HDL和验证之间,可以较快地编译您的HDL。 可以很容易地计算出您节省下来的、可以用于下一个嵌入式FPGA设计的时间:您的上一个FPGA设计中,运行了多少次布局和布线? 每次运行时,布局和布线占用了您多长的PC时间?

的确,仿真比开发板的实时运行速度慢。 Seamless FPGA提供了一些创新的方法,大大提高了您的嵌入式软件仿真的速度。 典型系统中,速度提高了几个数量级。

提高了硬件和软件的可见性
为了调试您的FPGA设计,您需要完全、清晰的可见性。 您需要知道硬件中在发生什么,以及软件在做什么。 您需要能够改变一个寄存器或将一个信号变到不同的状态。 有时,您需要能够使时间停止,仔细检查一下。 您具备的可见性越多,您就会越快发现问题或证明您已经订正了错误。

硬件可见性
探究FPGA的内部或者仅仅是FPGA的引脚都是一项挑战。 Xilinx®推出的ChipScope™ Pro分析仪可以提供帮助,不过,在逻辑仿真器中(除了查看每个信号),您也可以改变它们的值。 从您的源HDL开始,您可以一步一步地运行代码,查看变量或使时间停止。 因为详细的、即时和无异议的可见性的缘故,要打败逻辑仿真很难。

软件可见性
逻辑仿真中的软件可见性是需要强调的另一个因素。 运行功能齐全的处理器模型使您可以执行软件,但是,如果仅仅给出波型,要知道处理器的R3中是什么,几乎是不可能的。

协验证提供与软件调试器相连的、增强型处理器模型。 在Mentor Graphics XRAY调试器中,您可以查看并改变任何量:从寄存器到存储器、堆栈和变量。 XRAY还为源代码查看提供符号调试。 您可以在源代码级或汇编级一步一步地运行代码,并使用断点来停止执行或运行功能强大的宏。

如果您使用Accelerated Technology Nucleus的实时操作系统(RTOS),您可以查看任务状态、邮箱、队列、管道、信号、事件、信号量和存储器组合。

比单独使用逻辑仿真快得多
逻辑仿真中,在标准处理器模型上运行大量软件是不现实的,运行时间也太长。 但是,运行该软件是现有的最有效的验证策略之一。 运行诊断、器件驱动器、板支持包(BSP)代码,启动RTOS以及运行低级应用代码的好处是巨大的。 通过按软件使用硬件的步骤运行硬件、对硬件进行验证的方法,是十分有效的。 同样地,在实际构建板之前,需根据实际设计对软件进行测试(包括仿真中包括的任何外部板级元件)。

挑战常常在于需要运行足够的软件以启动系统,并做一些有价值的事情。 通过利用一个简单的观察结论——大多数仿真时间花在了使相同的处理器-存储器通道重新生效上了——协验证可以加速运行时间。 虽然您需要测试您的存储器子系统,并尝试几十种边界情形,但每次从存储器取出指令时,您无需重复这些相同的测试。 同样,您需要验证处理器能够将一个数值压入堆栈,并从堆栈中弹出准确的结果,但是,每次调用软件功能时重复这个测试是不必要的。

访问硬件外设通常会在逻辑仿真中产生总线周期,但是,可以卸载取指令出和堆栈操作,以便加速执行。 通过规定逻辑仿真中运行的总线周期和不运行的总线周期,Seamless FPGA使您可以进行性能折衷。 您可以在仿真过程中的任何时间改变这些技术要求。 您可以在复位过程中保持整个周期准确的性能,然后,切断取指令出和堆栈访问以启动RTOS。

通过逻辑仿真器访问存储器,需要花费几个硬件时钟周期。 每个时钟周期需要在逻辑仿真器中进行大量的工作,因为拖动您的FPGA中的所有其它逻辑。 使用“后门”直接访问存储器内容,代替在逻辑仿真器中运行总线周期,可以使访问快几个数量级。

加速是很显著的。 例如,下面的数据来自一个使用在Xilinx Virtex™-II Pro FPGA上运行Nucleus的PowerPC™的、典型的设计配置。 在逻辑仿真中单独启动Nucleus RTOS,需要12小时13分钟。 采用上述技术,同样的任务只需6秒种就可以完成,快了7330倍。

使用这项技术,通过后门进入Xilinx块RAM存储器模型或其它存储器器件,Seamless FPGA可以连续查看存储器内容。 因此,如果您的DMA控制器将某些东西放入处理器稍后执行存储器中,它仍会工作正常。 如果处理器产生一个很大的数据包,指示硬件利用DMA来传送它的话,那就不会有数据的不连贯。

识别处理器总线瓶颈
您的FPGA平台的性能受设计的存储器结构的影响很大。 什么应该定位到高速缓冲存储器中,而不是块RAM或外部存储器中? 瓶颈在哪里? 其它的总线主控使处理器不饱满吗? 类似这样的问题是很重要的,不过,没有来自您的硬件/软件应用的实际数据,要得到答案是很困难的

Seamless FPGA从仿真中收集性能数据,并在系统配之表中用图形显示(图1),使您可以识别:

  • 哪些功能占用了大多数CPU时间
  • 意外的暂停或突发事件
  • 高速缓存效率和存储器热点
  • 功能级的代码执行和持续时间
  • 总线利用和总线主控冲突
简便易用和集成
Seamless FPGA容易使用和设置。 使用您输入到Xilinx Platform Studio (XPS)中的信息,Seamless FPGA自动配置自身,以协验证您的设计。 您可能已经知道如何使用ModelSim,Seamless FPGA不改变所有的功能和用户界面。 XRAY软件调试器使用很多相同的菜单图标,进行步进、跨越和运行之类的操作。

要设置Seamless FPGA,只需要选择File > Import from Xilinx Platform Studio and specify your XPS project file.(文件>从Xilinx Platform Studio输入并规定您的XPS项目文件)。 输入过程完成所有的设置步骤,大约1分钟后,开始调用ModelSim和XRAY调试器。 如果您的设计中有两个或两个以上的Xilinx处理器,您就会有附加的软件调试器窗口,每个处理器一个。

一旦调用了ModelSim和XRAY(图2),您就可以验证设计了。 在ModelSim中,输入任何需要的激励命令,一般是复位和时钟,以及任何特定设计激励。- 然后,点击“run.”(“运行”)。在XRAY中,点击 “go”(“开始”)或 “step”(“步进”),通过您的嵌入式代码开始一步步前进。 缺省条件下,所有的总线周期都发送到硬件仿真。

为了提高软件的执行速度,提供了三种图标选择。 这些图标的名称是“优化”,因为它们通过后门,命令Seamless FPGA访问存储器内容,无需在每个总线周期运行逻辑仿真器,提高了软件执行的速率。 第一个按钮命令所有的取指令周期使用后门。 第二个按钮使您可以使用后门、规定地址范围的数量。 当使用后门进行访问时,您可以选择利用软件在锁定阶段继续进行逻辑仿真或去掉这个要求。

可以在仿真过程的任何时间快速地改变优化设置。 这样,您可以快速运行到软件中的某个点,然后,使所有的总线周期进行详细的准确验证。

结论
由于大型FPGA设计都使用了嵌入式处理器,所以不可能在几周内完成整个设计。 这些设计是非常复杂的;不巧的是,设计中您必须找到并订正的错误也很复杂,您必须订正它们以便在规定的时间内得到一个高效的系统。

您的FPGA中的软件内容可以使系统成本更低、配置性更高、功能更强。 但是,软件不是单独执行的,它与硬件有接口,而硬件软件接口常常涉及到软硬件两者的开发规则和设计队伍。

Seamless FPGA使用有效的软件和硬件调试环境,填补了硬件/软件之间的空白,该环境提供了有效地找到错误和性能瓶颈的可见性。 并且一旦订正了错误,您就可以快速找到订正处并进行验证,无需等待您的计算机在布局和布线过程中摸索几个小时,才能得到结果。

立即尝试在您的设计中使用Seamless FPGA。 欲获得30天的免费评估板软件,请访问www.seamlessfpga.com。 其中包含的设计实例和快速入门指南将使您很快熟悉其用法。 了解更多信息,请发送电子邮件至seamless_fpga@mentor.com。

带图形可打印PDF英文版本的文章。 PDF标识 (7/15/05) 275 KB

 
职位招聘 本地活动及在线座谈 本地新闻稿 投资者关系 反馈 法律声明 网站地图
© 1994-2008 Xilinx, Inc. All Rights Reserved.