0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA原型调试环境局限性的解决方案分析

电子设计 来源:郭婷 作者:电子设计 2019-01-08 08:16 次阅读

采用基于现场可编程门阵列(FPGA)的原型的验证团队面临的最大挑战之一在于当原型系统未能发挥期望的性能时了解原型系统的内部行为。分析和调试这些设计的一个关键因素是难以观察内部信号

目前的顶级FPGA在容量和性能方面均提供巨大的能力。例如,Xilinx Virtex-5家族成员包含成千上万可以配置成逻辑、RAM或移位寄存器的逻辑单元。此外,这种可编程逻辑可与硬IP块搭配使用,如工作频率全部高达550MHz的兆位RAM以及数百个25×18乘法器/DSP功能。

这些可能还包含多个硬和/或软处理器内核和相关外围器件的设备可以用作ASIC和片上系统(SoC)元器件的功能强大的原型平台。

新工具、改进的方法以及更高的抽象级正在帮助工程师实践不同的宏架构和微架构,并帮助他们提高其总设计生产力。

对于验证而言,这些设计的绝对规模和复杂度再加上大幅增加的软件内容使得FPGA原型对于通过硬件加速提高验证吞吐能力以及提供一个早期的软件开发平台都是一个极具吸引力的选择方案。但是,成功的原型要求当设备无法按预期工作时对发生的状况和工程师必须调试的对象予以应有的考虑。

如上文所述,分析和调试原型设计的关键因素在于难以观察内部信号。问题在于可能有成千上万个这样的信号,但是这些信号可能仅通过设备上的有限个输入/输出(I/O)引脚暴露在外界。

此外,观察内部信号的操作会影响设计和验证。选择要监视的合适信号是一个并不琐细的任务,修改设计以观察这些信号会耗费工程和FPGA资源。同样,捕获、转出和记录要观察的信号值也要花时间。

访问和分析FPGA内部信号的任务复杂、繁琐而耗时,这取决于所用的方法。话虽如此,不过总过程也可以分成五个主要步骤:1. 确定一组要观察的信号;2. 修改设计,以观察所选的信号;3. 当FPGA在原位工作时观察并找回数据;4. 将找回的数据映射至最初的RTL表示法;5. 计算不在最初观察的信号组中的其它信号的数据。

本文首先讨论与执行这些活动有关的现有技术的局限性。然后介绍新兴的可视性增强技术;这种新的技术包括一组缩减的要观察的信号的自动交互选择以及填充“遗漏片段”(未观察到的信号值)的“数据扩展”技术。

传统技术的局限性

就像刚才提到的,采用传统技术定位、分析和调试FPGA中的问题可能极其繁琐和耗时。其中的原因可以简单地进行总结。

这个过程的第一步是决定哪些信号需要进行观察(捕获和转出)。但是要观察的信号量的增加会增加捕获信号所需的逻辑资源以及将其数据值传达给外界所用的时间。由于这些原因,因此可能只能在特定时间(即特定的验证运行)观察有限个信号。

这里的问题在于选择要监视的最佳信号是一个并不琐细的任务。例如,看起来是监视的最佳选择的寄存器可能实际上只能为设计的操作提供有限的可视性。相比之下,表面上无害的寄存器可能为设计提供极高的可视性。

一旦选定一组要监视的信号,必须对设计进行修改以便允许直接观察信号,或者允许捕获信号并将其转出到外界。广义上讲,这叫可调试性设计(Design-for-Debug,DFD)。在以前的技术案例中,设计可以通过多路复用器和控制逻辑进行扩展,多路复用器和控制逻辑可以用来通过主要输出引脚来将所选的内部信号呈现到外界。一般而言,这种技术实现往往是一种内部的专门技术,这些实现需要大量工作来有限地了解芯片内部正在发生的状况。

替代技术是采用内部逻辑分析仪(ILA)。这些分析仪可能是内部技术,但是FPGA供应商或专业的第三方供应商一般都提供这些分析仪(以及相应的配置应用)。每个ILA都是采用可配置逻辑单元和RAM区块的组合而构造的。ILA的控制逻辑被设计成允许特定的触发条件(或组合的触发条件)开始捕获一个或更多特定信号并将与这些信号相关的属性(如数据值和时间戳记)存储在片上内存中。在某个阶段,这些值必须被转出到外界。这种情况下的一般技术是采用芯片的JTAG端口

设计你自己的ILA不仅耗时而且费力。事实上很难确定是自动调试设计的还是ILA在调试设计。甚至在使用FPGA供应商的经过验证的鲁棒ILA时,每次选定要监视的一组新的信号时仍然需要对设计进行重新编译。重新编译的工作可能要花几个小时,因此最好最大限度地减少需要执行这个任务的次数。

在设计修改和设计重新编译阶段之后,进行验证运行,并捕获来自内部信号的数据。为了让这些数据可用于下游调试工具,数据必须包含特定的属性。除了数据本身的逻辑值之外,数据必须包含信号的完整分层实例名以及每个数据转换的相对操作时间(时间戳记)。此外,转出数据的文件格式应为工业标准,如VCD或FSDB。

在专有解决方案案例中,有必要将这些属性添加到信号数据流和/或将内部格式转换成其对应的工业标准格式。幸运的是,FPGA供应商和专业供应商提供的ILA一般捕获必需的数据并使用工业标准格式。

从ILA收集的数据通常与FPGA的门级视图有关。但是设计工程师更熟悉设计的RTL表示法。因此,为了为调试过程提供便利,有必要将门级实例映射成RTL视图。这并不像听起来那样简单,因为大多数情况下,门级实例和RTL视图之间并没有一一对应关系。许多传统的内部解决方案都无法提供这种能力。

验证运行之后,访问和分析其它信号以对问题进行跟踪始终都是有必要的。当采用传统设计流程时,设计工程师必须返回上述五个步骤中的第一步。即,他们必须选择一组新的信号、修改设计并对其进行重新编译、执行新的验证运行、将新数据映射至RTL,然后分析结果。这个过程必须重复多次。

可视性增强技术

为了解决传统FPGA原型调试环境的局限性,出现了一种为设计的内部工作提供增强可视性的技术。为了达到完全的效果,可视性增强工具和技术必须应用于流程中的每一个步骤。

如上所述,过程中的第一步是确定哪些信号需要观察。根据系统展示的不正确输出,设计工程师通常对相关的一个或多个功能区块有“感觉”。例如,内存控制器和/或总线仲裁器区块。

作为单靠经验和实践的方法,你需要能够观察区块(通常为寄存器、内部内存定位和区块的主要输入/输出)内部大约15%的信号。这将在本小节后面讨论的自动数据扩展技术环境中提供95%~100%的可视性。

遗憾的是,资源限制不允许捕获所有这些信号。在这种情况下,选择为振动提供最佳碰撞的信号显然是更可取的。因此,可视性增强信号选择包括“影响能力”的概念,即每个信号影响的下游逻辑的量。为了确定调试所选区块所需的基本信号最小阵容,你将必须分析断言、RTL或门级网表代码,有时这三项都需要关注以*估影响能力。例如,为了调试断言故障,可视性增强信号选择将分析设计和所选的断言,以抽取调试每个断言所需的最小的一组信号。

此外,如果设计工程师对他们希望观察的一组信号进行了明确的定义(这样的选择可以在RTL和/或门级网表中进行),可视性增强信号选择工具将自动识别任何寄存器、内存元件以及观察指定的内部信号所必须捕获的主要I/O。

一旦选定一组要监视的信号,可视性增强环境将自动与FPGA和/或第三方工具供应商沟通,以通过增加适当的ILA来修改设计。在没有足够的资源捕获所有所需信号的情况下,可视性增强环境将以被认为具有更多上述影响能力的信号作为其选择的基础。

在执行验证运行时,可视性增强环境将自动记录和/或提供下游分析和调试环境所需的所有信息;该信息将包括逻辑值、信号的完整分层实例名以及数据转换的相对操作时间。此外,转出数据文件的格式将为工业标准格式,如VCD或FSDB。

正如上文指出的,从ILA收集的数据通常与FPGA的门级视图有关。为了了解这种门级逻辑中发生的状况,工程师必须使门级数据与设计的RTL表示法相互关联,甚至与系统级描述相互关联。

但是,由于合成和优化的原因,并非门级表示法中的每个信号均有RTL表示法的相应信号。为了解决这个问题,可视性增强环境必须以某种方式地方化信号相关性。其中一个方法是自动生成结构依赖图像并采用近似的图像匹配算法。这个方法模仿人类使用的过程,人类通常通过查看扇入区和扇出区中的寄存器来定位相应区域。

或许可视性增强最重要的方面在于其动态数据扩展能力。但是这种能力依赖于所有上述要点,特别是可视性增强信号选择。选择要观察的信号的宗旨就是为了便于自动数据扩展。

以下是数据扩展的思路。通常,设计工程师可能希望显示和分析不在被捕获的信号组中的信号。较可取的做法是插入遗漏的数据,而不倾向于修改设计和执行新的验证运行。因此,可视性增强环境将通过数据扩展来填充捕获数据中遗漏的间隙。

特别地,这种数据扩展可以填充位于信号被捕获的寄存器之间的组合逻辑区块内部的信号。为了最大限度地提高性能,只对进行试验的逻辑进行动态的数据扩展,而不是对所有设计逻辑进行静态的数据扩展。传统设计环境与其可视性增强环境的对比如表所示。

FPGA原型调试环境局限性的解决方案分析

可视性增强技术可以极大地加快定位、隔离和了解基于FPGA的原型中的错误症状原因的过程(类似的技术可以应用于基于FPGA的仿真和软件仿真中)。

在一般的设计中,寄存器约占信号的20%。采用可视性增强技术允许设计工程师将这些信号作为确定余下80%信号的值的基础,这相当于可视性提高了大约五倍。而据使用这种技术的用户报告,调试时间减少了四倍。换言之,在不使用可视性增强技术的情况下调试所用的每一个小时在使用该技术之后都可以缩短至仅15分钟。

就未来而言,可视性增强环境提供的数据扩展能力为将内部FPGA信号数据与一般只在软件仿真环境下考虑的先进调试技术搭配使用提供了基础。例如,如果设备包含复杂的内部总线,扩展的数据可能会在事务级被查看,从而使了解设备的操作更加容易。在调试器环境中谨慎地集成数据扩展技术可以同时缩短验证运行时间和最终的捕获数据文件大小。这种环境将实现自动化向导调试以及先进的分析和跟踪能力。

本文小结

使用基于FPGA的原型的设计和验证团队所面临的最大挑战之一是当系统未能按期望执行时了解系统的内部行为。可视性增强验证和调试环境通过以下方式解决了这个问题:帮助选择要观察的信号;与其它工具配合工作(和协商),从而对设计进行修改以捕获所选的信号;捕获所有驱动下游工具必需的数据和属性;使用先进的技术在系统、RTL和门级视图之间自动映射;执行数据扩展以填充未被捕获的信号的值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222176
  • FPGA
    +关注

    关注

    1603

    文章

    21326

    浏览量

    593235
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
收藏 人收藏

    评论

    相关推荐

    高光谱成像技术如何改善现有遥感技术的局限性?

    应运而生。高光谱成像技术通过获取地物在数百甚至上千个窄波段的光谱信息,能够提供更加丰富、细致的地物特征,从而为地球观测和资源管理提供了全新的解决方案。本文将探讨高光谱成像技术如何改善现有遥感技术的局限性,并
    的头像 发表于 02-21 10:52 168次阅读
    高光谱成像技术如何改善现有遥感技术的<b class='flag-5'>局限性</b>?

    原型平台是做什么的?proFPGA验证环境介绍

    proFPGA是mentor的FPGA原型验证平台,当然mentor被西门子收购之后,现在叫西门子EDA。
    的头像 发表于 01-22 09:21 657次阅读
    <b class='flag-5'>原型</b>平台是做什么的?pro<b class='flag-5'>FPGA</b>验证<b class='flag-5'>环境</b>介绍

    浅析FPGA调试-内嵌逻辑分析仪(SignalTap)原理及实例

    对于FPGA调试,主要以Intel FPGA为例,在win10 Quartus ii 17.0环境下进行仿真和调试,开发板类型EP4CE15
    的头像 发表于 01-12 09:34 894次阅读
    浅析<b class='flag-5'>FPGA</b>的<b class='flag-5'>调试</b>-内嵌逻辑<b class='flag-5'>分析</b>仪(SignalTap)原理及实例

    碳化硅二极管的优点和局限性分析

    的优点和局限性进行详尽、详实、细致的分析。 1. 优点: 1.1 高温稳定性:碳化硅具有极高的热稳定性,其耐高温性能优于硅材料。碳化硅二极管的正常工作温度可达到200-300°C,甚至更高。这使得碳化硅二极管特别适用于高温环境
    的头像 发表于 12-21 11:31 577次阅读

    如何用内部逻辑分析调试FPGA

    1 推动FPGA调试技术改变的原因 进行硬件设计的功能调试时,FPGA的再编程能力是关键的优点。CPLD和FPGA早期使用时,如果发现设计不
    的头像 发表于 12-20 13:35 193次阅读
    如何用内部逻辑<b class='flag-5'>分析</b>仪<b class='flag-5'>调试</b><b class='flag-5'>FPGA</b>?

    增强型Howland电流源(EHCS)电路的局限性及改进

    电子发烧友网站提供《增强型Howland电流源(EHCS)电路的局限性及改进.pdf》资料免费下载
    发表于 11-23 16:10 8次下载
    增强型Howland电流源(EHCS)电路的<b class='flag-5'>局限性</b>及改进

    基于单一LLM的情感分析方法的局限性

    LLM的发展为情感分析任务带来的新的解决方案。有研究人员使用LLM,在上下文学习(in-context learning, ICL)的范式下,仅使用少量的训练示例就能够实现与监督学习策略旗鼓相当的性能表现。
    的头像 发表于 11-23 11:14 389次阅读
    基于单一LLM的情感<b class='flag-5'>分析</b>方法的<b class='flag-5'>局限性</b>

    基于CAN总线系统的时间动态:CAN与CANopen的实时能力与局限性

    前言Preface在前文中,我们探讨了具有实时能力的嵌入式通信系统的基本要求——平衡实时响应、安全性和保障。本篇文章将重点介绍CAN与CANopen的实时能力和局限性。前文回顾虹科干货|平衡速度
    的头像 发表于 11-01 08:04 844次阅读
    基于CAN总线系统的时间动态:CAN与CANopen的实时能力与<b class='flag-5'>局限性</b>

    千兆光模块存在哪些局限性

    千兆光模块,作为网络设备中常用的一个配件,在实际应用中,由于其存在一定的局限性,可能会对网络传输速度、信号接收等方面产生影响。本文将就千兆光模块的局限性进行探讨,并提供一些可能的解决方案
    的头像 发表于 10-16 12:10 343次阅读

    基于FPGA原型设计的SoC开发

    所有形式的原型都为验证硬件设计和验证软件提供了强大的方法,模型或多或少地模仿了目标环境。基于FPGA原型设计在项目的关键后期阶段尤其有益。用户有几个
    发表于 10-11 12:39 315次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b>设计的SoC开发

    保护接地的作用及局限性

    一、保护接地的作用及其局限性 为了保障人身安全,避免发生触电事故,将电气设备在正常情况下不带电的金属部分与接地装置作良好的电气连接,称为保护接地,简称接地。 1、保护接地的作用 1)降低人体接触
    的头像 发表于 10-10 10:28 1203次阅读
    保护接地的作用及<b class='flag-5'>局限性</b>

    如何用宽带消色差和偏振不敏感的超透镜提高图像质量?

    光的精确控制是光学成像、传感和通信的关键要求。用于此目的的传统镜头有局限性,需要更精确和紧凑的解决方案
    的头像 发表于 07-27 09:52 728次阅读
    如何用宽带消色差和偏振不敏感的超透镜提高图像质量?

    离散小波变换的FPGA实现(一)

    在正式进入小波变换之前,我们不妨来讨论一下傅里叶变换的局限性和为什么我们需要引入小波变换。
    发表于 06-27 11:30 767次阅读
    离散小波变换的<b class='flag-5'>FPGA</b>实现(一)

    RT1176 mcu上SAI1/2/3接口的局限性是什么?

    您能否帮助理解 RT1176 mcu 上 SAI1/2/3 接口的局限性? 在参考手册中,我看到以下内容: [i]\"SAI-1 用于多声道音频接口,最多支持 8 声道音频 [i]输入或
    发表于 06-08 08:29

    多片FPGA原型验证系统互连拓扑分析

    多片FPGA原型验证系统的性能和容量通常受到FPGA间连接的限制。FPGA中有大量的资源,但IO引脚的数量受封装技术的限制,通常只有1000个左右的用户IO引脚。
    发表于 05-23 17:12 1245次阅读
    多片<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b>验证系统互连拓扑<b class='flag-5'>分析</b>