通过FPGA智能调试工具缩短验证时间

2016-10-20 17:00:03 来源:EEFOCUS
标签:

设计人员选择具有优秀调试能力的FPGA器件,可以缩短开发周期并降低成本,同时显著加快上市速度。

 

FPGA和SoC设计人员要克服许多挑战,才可以把产品投入生产。一般说来,他们首先要为自己的设计评估合适器件;然后,使用硬件描述语言(HDL)设计,布局布线器件,最后,在投入生产之前,还要对整个FPGA进行调试。

 

对于许多设计,特别是工业和嵌入式市场的设计来说,可以选择的FPGA实在多不胜数。在大多数情况下,决定选择哪家FPGA供应商取决于其相关的软件开发经验。虽然软件开发经验也应该是考虑因素,但是,更重要的因素应该是调试能力及为加速生产提供的支持。目前,阿尔特拉(Altera)、莱迪思(Lattice)、美高森美(Microsemi)和赛灵思(Xilinx)等供应商都提供许多FPGA调试工具,但是,设计人员对未来的FPGA设计策略进行评估时,应该考虑采用一种更智能的调试工具。

 

基础调试 – 逻辑分析仪

每个主要的FPGA供应商都提供逻辑分析仪作为调试工具。这是一种利用内部FPGA逻辑单元和嵌入式块存储器来实施功能的技术。设计人员可以规定监测哪种信号,并设置触发器来告诉逻辑分析仪何时开始采集数据。逻辑分析仪设置好后,设计人员必须重新按顺序运行综合和布局布线,将功能纳入到设计中。设计重新编译和重新编程后,设计人员便可以开始观察逻辑分析仪采集的逻辑信号。

 

需要注意的是,由于这些信号需要采样,它们采集的并非数据的实时性能。逻辑分析仪只能以允许其采集数据的速度运行,并将数据保存在内部存储器内。由于设计必须重新编译以插入逻辑分析仪,因此,这一过程实际上可能消除正在寻找的漏洞。虽然这看起来似乎不错,但是,不了解原问题是什么,意味着后面再执行合成和布局布线操作时,问题可能会再次产生和重新出现。

 

尽管如此,设计人员能够根据触发条件来查看信号状态,这样做确实可以帮助调试设计问题。采用逻辑分析仪是一个不断迭代的过程。设计人员查找发生的问题,进行更新,然后对设计进行重新编译,再审查新的结果,然后重复这个过程,直到发现漏洞。每个迭代和处理每个具体漏洞所需的时间都不同,由于逻辑分析仪的采样速度,因此不一定可以找到所有问题。

 

下一代调试工具

由于逻辑分析仪在调试方面的限制,业界设计了新一代调试工具,以加快FPGA和板的验证。有些EDA供应商在综合工具内集成了逻辑分析仪功能,缩短了漏洞查找迭代的时间,能够查看设计和使触发设置更简单。设计人员还可以更改设计,使其自动映射回到寄存器传送级(RTL)代码。为了节约内部FPGA资源,有些EDA工具可以采集多组信号,并将它们多路复用。在调试过程初期,我们不知道问题的实际源头时,这样做很有帮助。新思科技(Synopsys)在其identify逻辑分析仪和Synplify综合工具中已经实施了这些特点。尽管他们为调试过程提供了这些改进,但是,这些方法因需要重新编译,因而影响原始设计和减慢信号采集,所以受到限制。

 

实际上,对工程师有帮助的,除了逻辑分析仪,还有示波器。这种功能允许实时显示器件内部信号。用探头实时探测FPGA内的节点,强制赋予内部信号不同值,观察对设计的即时影响,也是十分理想的。此外,探测内部存储器的能力以及SERDES收发器探测点也是非常有用的。如果能够提供所有这些能力而不影响FPGA设计,将显著简化调试过程。

 

这种方法的一个实例是美高森美Libero SoC软件中的SmartDebug工具箱,该工具箱与公司的SmartFusion2、IGLOO2和RTG4 FPGA一起使用。这个工具箱使设计人员能够调试FPGA结构、存储块和SERDES,就好象它们正在使用示波器一样。采用这种智能调试,可以利用内置在FPGA结构中的专用探测点,显着加快和简化调试过程。不需要对设计进行重新编译就可以选择不同的探测点。增强的调试特点可访问任何逻辑元件,使设计人员能够实时检查输入和输出状态,不影响用户的FPGA设计。这些特点包括:

 

-现场探头:允许采用两个专用探头,经配置用于观察逻辑元件中任何输入或输出的探测点(图1)。然后,探头数据可发送到示波器或甚至重新引导回到FPGA结构,驱动内部逻辑分析仪。这些探测点是实时动态的。探测点可以通过软件在运行中更改,不需要把FPGA重新编译或重新编程。

 

-有源探头:这种特点允许动态异步读取或写入触发器或探测点。这种能力使用户能够快速从内部观察逻辑输出或通过写入探测点,快速实验逻辑将受到怎样的影响。可将任何数量的信号强制赋予到规定值,正如现场探头一样,不需要把FPGA重新编译或重新编程。

 

-探头插入:这用于在设计中插入其它探头,将信号输出到FPGA封装引脚,以对设计进行评估和调试。这种特点确实需要增加布局布线,从而在I/O增加信号,但并不一定需要完整的重新编译。

 

图1 现场探头使用实例(来源:美高森美)

 

FPGA设计人员把30%或更多的时间通常花在调试上。根据项目的规模和状态,甚至需要更多的调试时间。由于调试涉及许多迭代周期,可观察性和可控性有限,经常要重新运行布局布线,时序收敛和重新编程,因此调试是非常痛苦的工作。与仅使用传统插入逻辑分析仪相比,智能调试工具使得工程师能够更快地对他们的FPGA设计进行验证。这些工具使得设计人员在整个设计中可以实时观察信号和控制信号状态,显着提高了调试速度。

 

最近,据一名客户报告,他们采用内部逻辑分析仪花了一周时间来试图调试一个问题。但在采用智能调试工具代替后,工程师仅仅在两个小时内就找出了问题。最终追踪到,这个问题来自与工程师采用逻辑分析仪时观察的一个完全不同的设计模块。然后工程师利用有源探头特点强制赋予不同的数值,确保电路适当响应的方式,进一步改善了设计。

 

对FPGA设计人员来说,增强调试能力是影响重大。最新的解决方案能够显著缩短调试验证时间,为FPGA提供无与伦比的可观察性和可控性。结果使得,在选择器件时更重视FPGA调试能力的设计人员,可以缩短开发周期,降低成本,同时显著加快上市速度。

 

作者:美高森美FPGA/SoC营销总监Ted Marena

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
如何实现SoC全生命周期的监测?

SoC的设计越来越复杂,上市时间、软硬件集成、系统级验证、系统性能、异构、网络安全/功能安全等都是设计人员需要考虑的因素。流片前,设计师能通过仿真软件进行验证,但是流片过程中很多意想不到的结果,需要在流片后仍能被准确的检测出来。

为SoC和电子系统提供全生命周期的高速分析和监测,要怎样的IP才能办到

SoC的设计越来越复杂,上市时间、软硬件集成、系统级验证、系统性能、异构、网络安全/功能安全等都是设计人员需要考虑的因素。流片前,设计师能通过仿真软件进行验证,但是流片过程中很多意想不到的结果,需要在流片后仍能被准确的检测出来。

你对ARM了解多少?

全世界100多家公司购买了ARM授权,包括三星,Freescale、NXP Semiconductors、STMicroelectronics、Texas Instruments ,Toshiba,Analog Device,atmel,microsemi...具体参看ARM官网

今年最受手机厂商欢迎的处理器有哪些?
今年最受手机厂商欢迎的处理器有哪些?

2018年即将结束,今年的新机比去年至少多了一个量级,且发布节奏越来越快。同时,和手机密切相关的SoC也在今年迎来了一次大幅更新。例如相比2017年的明星处理器们,今年的芯片大多加入了AI特性。

说出来你可能不信,你的手机配置打不过谷歌眼镜
说出来你可能不信,你的手机配置打不过谷歌眼镜

曾几何时,在智能可穿戴设备大红大紫的时候,谷歌眼镜被视为明星产品受到科技行业的追捧,并寄望这款产品能够带动智能眼镜市场发展,最终比肩智能手表等产品。

更多资讯
简单几步让你看懂单片机时序图

操作时序永远是使用任何一片IC芯片的最主要的内容,看懂时序图,再操控这个芯片就非常容易了。而提取芯片器件手册上有用的信息是使用芯片的最基本步骤。

如何将单片机的波特率作为形参的函数

不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是通讯成功的基本保障。

代码分享教你如何使用msp430单片机延时函数

今天看示例程序中出现了__delay_cycles()这个函数,在查找msp430x54x.h这个头文件的时候,发现这个头文件中没有该函数的声明,原来这个函数已经在IAR这个编译器中集成,这里总结一下__delay_cycles();这个函数的具体用法

如何控制51单片机液晶实现计时器的功能?

要想实现人机交互,显示装置是不可缺少的。前面讲到了如何利用单片机控制数码管的显示,这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。

Linux编程时遇到Oops提示该如何排查?

各位工程师在Linux下开发程序时,有没有遇到由于系统中存在某些小故障而跳出了“Oops”提示的情况,此时你是如何排查故障?一行行的查看代码吗?其实不用那么复杂,本文将为你介绍一种高效的Linux编程的故障排除方法。