通过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 )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
通过单片机控制数据流对FPGA进行编程配置

基于FPGA基本数据流的下载控制方式,利用遗传算法,通过单片机控制数据流的方式对FPGA进行编程配置,实现自身重构,使系统具有自适应、自组织和自修复的特性。

想解决AI SoC互连挑战?只有靠“它”了

某家AI SoC设计公司在进行前端设计(逻辑设计)时,第一步进行功能设计,即将SoC划分为若干功能模块,并决定实现这些功能将要使用的IP核。

升级固件写FLASH如何避免让FPGA发生意外?
升级固件写FLASH如何避免让FPGA发生意外?

FPGA配置两种模式:主动配置和被动配置方式,采用主动配置下,我们就需要一片FLASH来存储FPGA固件,那么我们在升级固件写FLASH的过程中如何避免因意外情况发生导致升级失败而使FPGA变砖呢?下面就由笔者带领大家来挖山掘石、一探究竟。

美高森美使能太比特OTN交换卡以实现灵活的光网络

美高森美公司 (Microsemi Corporation) — Microchip Technology Inc. (纽约纳斯达克交易所代号: MCHP) 全资子公司 — 宣布其屡获殊荣的DIGI系列的最新成员DIGI-G5实现了三倍容量的分组光传输平台,同时每端口功率消耗降低50%。

美高森美与中国电信合作优化OTN技术以启动5G时代

Microchip Technology Inc. (纽约纳斯达克交易所代号: MCHP) 全资子公司 — 宣布与中国电信北京研究院合作制定和开发下一代光传输解决方案以期满足5G承载的严格要求。

更多资讯
搞懂数据分析中因变量和自变量之间的关系

回归模型有多种,一般在数据分析中用的比较常用的有线性回归和逻辑回归。其描述的是一组因变量和自变量之间的关系,通过特定的方程来模拟。这么做的目的也是为了预测,但有时也不是全部为了预测,只是为了解释一种现象,因果关系。

树莓派 3B 接MPU6050方法 以及ROS应用
树莓派 3B 接MPU6050方法 以及ROS应用

主要是ROS应用,不多说了,可能要你自己重新编译工作空间的话,可以选择性的只编译这个包就行了。

典型的SDSoC设计开发的几个步骤
典型的SDSoC设计开发的几个步骤

类比到FPGA SoC的应用开发中,用户最关注的部分往往是算法的最终实现和算法模块的优化——包括IP或是软件功能块——SDSoC的设计理念正是让用户能够更加专注于这些核心问题,其他问题SDSoC帮你搞掂。从这个意义上看,SDSoC在“简单”的背后确实不简单。

HDL仿真器基于事件的仿真算法
HDL仿真器基于事件的仿真算法

目前,HDL仿真器主要有三种实现算法(机制):基于时间的算法(Time-Based)、基于事件的算法(Event-Based,EBS)和基于周期的算法(Cycle-Based,CBS)。

当FPGA越来越像SoC,FPGA跟ASIC还有啥区别
当FPGA越来越像SoC,FPGA跟ASIC还有啥区别

随着处理器被添加到传统FPGA中,可编程性被添加到ASIC中,FPGA和ASIC的分界线日益模糊。

Moore8直播课堂
电路方案