美高森美标志

Microsemi 在线 FPGA 调试

Microsemi 在线 FPGA 调试产品

产品信息

规格

  • 设备类型:Microsemi SmartFusion2 SoC FPGA
  • 发布日期:2014 年 XNUMX 月
  • 调试功能:在线 FPGA 调试、嵌入式逻辑分析仪
  • 最大数据捕获频率:高达 100MHz

抽象的
FPGA 是嵌入式系统中强大的设计元素,具有许多设计优势tagFPGA 的设计复杂,存在许多需要调试的复杂设计问题。追踪定义错误、系统交互问题和系统时序错误等设计问题可能是一项挑战。FPGA 内置在线调试功能可以显著改善硬件调试,避免数小时的挫败感。本文介绍了几种不同的 FPGA 在线调试方法,指出了关键的权衡点,并通过一个示例amp该设计针对 Microsemi SmartFusion®2 SoC FPGA 设备,将展示如何使用新功能来加速调试和测试。

介绍

FPGA 是一种广泛使用且功能强大的设计元件,如今几乎应用于所有嵌入式系统。随着容量的增加、复杂片上功能模块和高级串行接口的加入,这些器件也可能会面临需要调试的复杂设计问题。在使用高级 FPGA 时,追踪诸如功能定义错误(在 FPGA 或系统级)、功能系统交互问题、系统时序问题以及 IC 之间的信号保真度问题(例如噪声、串扰或反射)等问题都会变得更加复杂。仿真无疑有助于识别许多设计问题,但许多现实世界中的交互只有在设计在硬件中实现后才会显现出来。为了简化这一过程,已经开发了几种用于调试复杂设计问题的不同技术。仔细理解每一种关键技术,包括各种优势tages和disadvantag在考虑哪种技术或技术组合适合特定设计时很有用。
前任ample FPGA 设计针对 Microsemi SmartFusion2 SoC FPGA 设备,可用于展示一些优势tages和disadvantag这些标准技术以及最新的在线调试功能。这个示例ample 将展示如何使用这些不同的技术来加速硬件调试期间硬件问题的识别和消除。

为什么 FPGA 调试是系统设计和开发的关键方面?
FPGA 有两种主要使用模式,使其有别于其他设计元素。FPGA 既可以用于量产产品,也可以用作开发工具,用于验证或制作生产设计概念的原型。作为量产工具时,FPGA 比基于 ASIC 或 CPU 的量产工具更加灵活。这对于尚未在硬件中实现的新设计尤为重要。它可以轻松创建和测试具有不同架构选项的设计,从而确定最佳设计。带有片上处理器的 FPGA(SoC FPGA)还可以在基于 CPU 的处理能力和基于 FPGA 的硬件辅助加速功能之间进行权衡。这些优势tages 可以大大减少新产品开发的设计、验证、测试和故障分析所需的时间。
当用于原型设计(例如用于量产ASIC)时,FPGA的灵活性是一个关键优势。即使实际运行的硬件平台并非全速运行,也能更轻松地获取详细的系统性能指标、吞吐量分析数据和架构概念验证结果。FPGA支持行业标准总线(例如PCIe®、千兆以太网、XAUI、USB、CAN等)的强化实现,简化了与这些接口相关的测试。最新的FPGA系列集成了片上ARM处理器(SoC FPGA),这使得使用嵌入式处理器进行原型设计变得轻而易举。之前开发的处理器代码可以移植到原型中,并在硬件设计工作的同时创建新的代码。

标准处理器与标准接口总线的结合,使得我们能够利用庞大的生态系统,包括可用的代码库、驱动程序、功能性 API、实时操作系统,甚至完整的操作系统,从而更快地创建工作原型。此外,一旦设计确定下来,FPGA 原型便可用于捕获大量反映实际系统数据的仿真测试集(包括激励和响应)。这些数据集对于创建 ASIC 或其他生产实现的最终仿真至关重要。该优势tag使用 FPGA 作为设计原型可以大大减少最终产品实施的设计、验证、测试和故障分析的时间。
在这两种常见的 FPGA 使用模型中,FPGA 作为设计目标的灵活性是一个关键优势tage. 这意味着许多设计变更和迭代将成为常态,因此快速调试设计错误的能力对于实现尽可能多的设计选项至关重要。如果没有高效的调试能力,许多优势将无法实现。tagFPGA 设计灵活性的降低会因所需的额外调试时间而降低。幸运的是,FPGA 还可以提供额外的硬件功能,从而显著简化实时调试。在了解这些功能之前,我们先来了解一下 FPGA 设计可能面临的最常见问题类型,以便我们掌握适当的背景知识,从而评估各种调试工具的效率及其相关的利弊。

调试 FPGA 设计时的常见问题

随着现代 FPGA 功能不断扩展,随之而来的复杂性也随之增加,使得创建无错误设计变得更加困难。事实上,据估计,调试可能占据嵌入式系统设计周期的 50% 以上。随着上市时间压力不断压缩开发周期,初始系统的硬件调试被搁置一旁——人们常常认为验证(本身占了很大比例)tag(在开发计划中),将在初始系统启动之前捕获所有错误。让我们来看看几种常见的系统问题,以便更好地理解典型设计在初始系统启动期间将面临的挑战。

由于设计人员误解了特定要求,功能定义错误可能更加难以发现,因此即使仔细查看设计细节,错误也可能被忽略。例如amp一个常见的函数定义错误的例子是状态机转换没有最终达到正确的状态。错误也可能出现在系统界面中,作为交互问题。例如,界面延迟ample,可能被错误指定,导致意外的缓冲区溢出或下溢情况。
系统级时序问题是另一个非常常见的设计错误来源。尤其是在未仔细考虑同步或跨时序域效应的情况下,异步事件是常见的错误来源。高速运行时,这类错误可能非常棘手,而且出现的频率可能很低,或许仅在特定数据模式出现时才会出现。许多常见的时序违规都属于此类,而且通常非常难以模拟,甚至无法模拟。

时序违规也可能是集成电路之间信号保真度低的结果,尤其是在每个电路都有多个电源轨的系统中。低信号保真度会导致信号噪声、串扰、反射、过载和电磁干扰 (EMI) 问题,这些问题通常表现为时序违规。电源问题,例如瞬变(尤其是在系统启动或关机期间)、负载变化和高功耗应力,也可能导致神秘错误,这些错误通常很难追溯到电源。即使设计完全正确,电路板制造问题也可能导致错误。例如,焊点缺陷和连接器连接不当amp例如,这可能是误差的来源,甚至可能与温度或电路板位置有关。使用先进的 FPGA 封装技术会使探测印刷电路板上的信号变得困难,因此,仅仅获取所需信号就常常成问题。许多设计问题通常不会立即导致错误,而是会在整个设计中蔓延,直到错误真正显现出来。追溯初始错误的根本原因通常是一项令人沮丧、困难且耗时的任务。

例如amp例如,转换表中的单个位错误可能要经过多个周期才会导致错误。本文稍后将讨论一些使用专用在线调试硬件的工具,旨在使这些“错误搜寻”更快、更容易。在详细介绍这些工具之前,让我们先了解一下一种流行的基于软件的调试技术模拟,以便更好地理解其优势。tages和disadvantag使用模拟进行调试。

使用模拟进行调试
通常在设计仿真中,设计内部和外部的所有实际组件都以软件进程的形式进行数学建模,并在标准CPU上按顺序执行。对设计施加各种刺激,并根据仿真设计的输出检查预期输出,是发现最明显设计错误的简单方法。下图1显示了一个典型的仿真运行窗口。其明显的优势tag仿真与基于硬件的调试的区别在于,仿真可以在软件中进行——无需实际的基于硬件的设计和测试平台。仿真可以快速捕获许多设计错误,特别是与规格错误、对接口要求的误解、功能错误以及许多其他“严重”类型的错误相关的错误,这些错误可以通过简单的激励向量轻松检测到。

Microsemi 在线 FPGA 调试 (1)

当设计人员拥有丰富的激励组合,且最终输出结果众所周知时,仿真尤为有效。在这些情况下,仿真可以对设计进行几乎详尽的测试。遗憾的是,大多数设计都无法轻松获得全面的测试套件,而创建测试套件的过程可能非常耗时。对于基于 FPGA 的大型设计,创建覆盖 100% 设计的测试套件几乎是不可能的,必须使用捷径来尝试覆盖设计的关键元素。仿真的另一个难点在于,它并非“真实世界”的实现,无法捕捉异步事件、实时系统交互或时序违规。最后,仿真过程可能非常缓慢,如果需要多次迭代,仿真很快就会成为开发过程中最耗时、通常也是成本最高的部分。

作为一种替代方案(或者更确切地说,作为模拟的补充),FPGA 设计人员发现他们可以在 FPGA 设计中添加调试硬件,以便观察和控制器件内的关键信号。这些技术最初是作为临时方法开发的,但已逐渐发展成为一种标准的硬件调试策略。这种在线调试功能的使用提供了显著的优势tag基于 FPGA 的设计,下一节将探讨三种最常见的策略及其各种优势tages和disadvantag西。

FPGA 的常见在线调试方法
在 FPGA 中实现在线调试功能的最常见技术是使用嵌入式逻辑分析仪、外部测试设备或嵌入 FPGA 结构中的专用信号探针硬件。嵌入式逻辑分析仪通常使用 FPGA 结构实现,并插入到设计中。JTAG 端口用于访问分析仪,捕获的数据可以在PC上显示。使用外部测试设备时,需要修改被测FPGA设计,以便将选定的内部FPGA信号路由到输出引脚。然后可以通过外部测试设备观察这些引脚。使用专用信号探针硬件时,可以实时读取各种内部信号。某些探针实现甚至可以用于写入寄存器或内存位置,从而进一步增强调试能力。让我们更详细地了解一下这种优势tages和disadvantag每种技术,然后看一个例子amp设计来了解这些不同的方法如何影响整体调试时间。

在线 FPGA 调试嵌入式逻辑分析仪
嵌入式逻辑分析仪的概念直接源于 FPGA 首次投入使用时设计人员实现的临时在线调试功能。嵌入式逻辑分析仪增加了新功能,并消除了设计人员自行开发分析仪的需求。大多数 FPGA 都提供这些功能,第三方也提供标准分析仪(Synopsys 的 Identify® 就是其中一种流行的示例)。ample) 可以轻松与更高级别的工具交互以进一步提高生产力。

逻辑分析仪功能被插入到设计中,使用 FPGA 结构和嵌入式存储器块作为跟踪缓冲器,如图 2 所示。此外,还创建了触发资源,以便轻松选择和捕获复杂的信号交互。访问分析仪进行控制和数据传输通常通过标准 JTAG 端口简化了接口要求。捕获的数据可以通过常见的 view软件,通常镜像逻辑模拟器波形输出 view风格。

Microsemi 在线 FPGA 调试 (2)

优势tag这种方法的优点是不需要使用额外的 FPGA I/O 引脚,只需要标准 JTAG 信号。嵌入式逻辑分析仪IP核通常相对便宜,在某些情况下可以作为现有FPGA综合或仿真工具的选项。在某些情况下,如果更方便的话,嵌入式逻辑分析仪还可以在未使用的I/O上提供额外的输出。缺点之一是tag这种方法的缺点是需要大量的 FPGA 资源。特别是,如果使用跟踪缓冲器,这将减少可用的块存储器数量。如果需要较宽的缓冲器,这也需要牺牲存储器深度(因为使用较宽的存储器会导致较浅的存储器深度)——这是一个很大的缺点。tag例如,在使用较小器件时。这项技术最大的缺点或许在于,每次调整探针位置时,都需要重新编译和编程设计。使用大型器件时,此过程可能会耗费大量时间。由于信号探针在设计中的放置方式,关联信号时序关系可能较为困难。此外,信号探针之间的延迟不一致,因此时序关系难以比较。在比较异步信号或来自不同时域的信号时,这尤其困难。

在线 FPGA 调试 – 外部测试设备
当外部逻辑分析仪已可用于系统测试时,将在线调试代码与外部测试设备结合使用是自然而然的发展。通过创建一些简单的调试代码来识别和选择内部测试信号并将其应用于 FPGA I/O(如图 3 所示),可以利用分析仪的高级功能(例如大型跟踪缓冲区、复杂的触发序列以及多个 view选项)来创建简单而强大的调试环境。更复杂的电路内功能(用于高级触发选项)可以最大限度地减少所需的输出数量。例如amp例如,如果需要外部引脚,那么在宽总线上选择特定地址可能会受到限制。
使用内部 FPGA 逻辑可以显著降低 I/O 需求,甚至可以查找特定的地址模式(例如调用和返回序列)来调试更复杂的问题。如果提供通用的用户界面,则可以简化学习曲线并提高生产力。

Microsemi 在线 FPGA 调试 (3)

优势tag这种方法的优势在于它充分利用了外部测试设备的成本,因此无需增加工具成本。一些调试电路IP核可从设备制造商或FPGA制造商处获得,成本可能非常低,甚至免费。实现信号选择逻辑所需的FPGA资源非常少,而且由于跟踪功能是使用外部逻辑分析仪完成的,因此无需块存储器。由于选择逻辑成本低廉,因此也可以支持具有宽触发范围的大量通道。逻辑分析仪可以在时序模式和状态模式下工作,这有助于隔离一些时序问题。
不利因素tag这种方法的缺点包括需要购买逻辑分析仪(如果项目尚未配备)。这个缺点tag在许多情况下,e 可能足以阻止这种方法。不过请注意,一些低成本的逻辑分析仪选项正在涌现,它们使用 PC 或平板电脑作为显示设备,这使得此选项对于简单的调试需求而言更具成本效益。
FPGA 引脚消耗量可能是另一个缺点tag如果需要观察宽总线,则需要对电路板布局进行深入规划,并添加调试连接器。这项要求在设计初期通常难以预测,而且会带来不必要的复杂性。与嵌入式逻辑分析仪方法类似,外部测试策略要求每次进行新实验时都重新编译和编程设计。

常见的缺点tag这两种技术存在诸多弊端——片上资源的使用(这也会影响设计的时序性能并产生额外的调试要求)、需要重新编译和重新编程设计(这可能会使调试时间延长数小时甚至数天)、需要提前规划以确定可能的测试场景,以及使用额外的芯片I/O资源,这些因素共同导致了对一种避免这些缺点的方法的需求。一种解决方案是在某些器件的FPGA结构中添加专用调试逻辑。最终,使用硬件探针进行在线调试成为可能。

在线 FPGA 调试 – 硬件探针
使用硬件探针可显著简化 FPGA 的在线调试技术。该技术在 SmartFusion2®SoC FPGA 和 IGLOO®2 FPGA 器件上以实时探针 (Live Probe) 功能实现,在 FPGA 结构中添加专用探针线路,以观察任何逻辑元件寄存器位的输出。如图 4 中的框图所示,硬件探针可在两个探针通道 A 和 B 中使用。

Microsemi 在线 FPGA 调试 (3)

选定的寄存器输出(探测点),例如图底部所示的输出点,路由至两个探测通道上方,如果选择,可以应用于 A 通道或 B 通道。这些实时通道信号随后可以发送到设备上专用的探针 A 和探针 B 引脚。探针 A 和探针 B 信号也可以内部路由至嵌入式逻辑分析仪。

需要注意的是,探针的时序特性规律性良好,各个探针点之间的偏差可以忽略不计,这使得比较实时信号的时序特性变得更加容易。数据采集频率高达 100MHz,适用于大多数目标设计。
或许最重要的是,探测点的位置并非在设计实现过程中选择(而是在设计运行于 FPGA 时通过专用硬件选择),因此只需将选择数据发送到器件即可快速更改。无需重新编译和编程设计。
为了进一步简化实时探针功能的使用,相关的调试软件工具可以通过自动生成的调试访问所有探针信号位置 file如图 5 所示,您可以从信号列表中选择信号名称并将其应用于所需通道。即使在设计运行时也可以完成此操作,因此设计中的探测活动无缝且高效。

Microsemi 在线 FPGA 调试 (5)

在许多情况下,硬件探测功能(如 Live Probe)可以与前面描述的嵌入式逻辑分析仪和外部测试技术结合使用。

如图 6 所示,实时探针 (Live Probe) 功能可以“动态”选择信号,从而快速轻松地更改观察信号,而无需重新编译设计。外部逻辑分析仪或示波器可以轻松观察探测信号,如图右上部分所示,位于专用探针输出引脚上。或者(或者甚至可以作为补充)内部逻辑分析仪(如图所示的 ILA 识别模块)也可用于观察探针引脚。ILA 可以捕获探针信号并在波形窗口中观察。无需重新编译目标设计即可更改探针位置。
请注意,触发和跟踪的附加功能可用于增强探测功能,从而可以轻松发现甚至复杂的设计问题。

Microsemi 在线 FPGA 调试 (6)

SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 器件还提供额外的硬件调试功能。其中一项功能称为“有源探针”,可以动态异步地读取或写入任何逻辑元件寄存器位。写入的值会持续一个时钟周期,因此可以继续正常运行,这使其成为一种非常有价值的调试工具。如果需要快速观察内部信号(例如,只是为了检查信号是否处于活动状态或所需状态,例如复位信号),或者需要通过写入探测点来快速测试逻辑功能,则“有源探针”尤其有用。
(也许通过快速设置输入值来启动状态机转换以隔离控制流问题)。

Microsemi 提供的另一项调试功能是内存调试 (Memory Debug)。此功能允许设计人员动态异步地读取或写入选定的 FPGA 结构 SRAM 块。如调试工具的屏幕截图(图 7)所示,选择“内存块”选项卡后,用户可以选择要读取的内存,执行内存快照捕获,修改内存值,然后将值写回设备。这对于检查或设置用于计算型暂存器的通信端口数据缓冲区,甚至对于嵌入式 CPU 执行的代码都非常有用。当能够如此快速地观察和控制内存时,调试复杂的数据相关错误会变得更快、更容易。

Microsemi 在线 FPGA 调试 (7)

设计调试完成后,可能需要关闭硬件调试功能以保护敏感信息。攻击者可以利用这些功能读取关键信息或更改系统设置,从而轻松访问系统的敏感部分。Microsemi 新增了一些功能,允许设计人员在调试完成后保护设备安全。例如,amp例如,可以锁定对实时探针和有源探针的访问,以完全禁用该功能,避免潜在的攻击(这甚至消除了探针活动在电源电流中产生任何模式的可能性,这些模式可能被用来间接尝试观察探针数据)。或者,可以锁定对设计中选定部分的访问,以防止仅访问这些部分。如果只需要保护设计的一部分,而其余部分仍可进行现场测试或错误分析,这将非常方便。

在线调试比较表
现在,详细的重新view 三种主要的在线硬件调试技术已经描述完毕,如图 8 所示,我们创建了一个总结图表,详细说明了各种优势。tages和disadvantag每种方法的 es。记住,有些技术可以结合使用(例如,Live Probe 和内部逻辑分析仪 (ILA),例如 Synopsys identify)。amp从图中可以看出,每种技术的主要优势和劣势。在可用的探针总数方面(红色圆圈),电路内硬件调试功能(Live Probe、Active Probe 和 Memory Debug,统称为 SmartDebug)与其他技术相比最弱;在捕获速度方面(外部测试设备可以更快),也比最佳技术(黄色圆圈)更弱。
与其他技术相比,基于 ILA 的技术(例如 Synopsys Identity)在考虑 FPGA 资源需求时最为薄弱。基于外部测试设备的技术在诸多方面也最为薄弱,其中成本、设计时序影响以及探针移动开销(由于需要重新编译设计)最为繁重。或许最佳解决方案是将 SmartDebug 与其他技术相结合,这样可以弥补 SmartDebug 通道数量不足的缺点,并降低探针移动的不利影响。tag其他技术的效果也同样降低了。

Microsemi 在线 FPGA 调试 (8)

信号分类
一些最常见的信号类型之间可以进行有效的区分,这有助于规划调试方法。例如amp例如,除了系统启动期间之外不会发生变化的信号(例如系统复位、模块复位或初始化寄存器)可归类为静态信号。访问这类信号最有效的方法是使用易于观察和控制信号的工具,而无需较长的重新编译周期。主动探针是调试静态信号的绝佳工具。同样,变化较频繁但绝大多数时间保持静态的信号可归类为伪静态信号,使用主动探针进行调试也是最有效的。频繁变化的信号(例如时钟信号)可归类为动态信号,不易通过主动探针访问。实时探针是观察这些信号的更好选择。

简单调试用例

现在我们对各种在线调试选项有了更好的了解,让我们来看一个简单的设计示例amp来看看这些技术的效果如何。图 9 展示了 SmartFusion2 SoC FPGA 器件中的一个简单 FPGA 设计。微控制器子系统 (MSS) 由 CoreSF2Reset 软核 IP 模块复位。该模块的输入包括上电复位、用户结构复位和外部复位。输出包括用户结构复位、MSS 复位和 M3 复位。错误症状是,即使器件成功退出 POR 状态,I/O 上也没有任何活动。图中还展示了三种不同的调试方法:蓝色框(标记为 ETE)表示外部测试设备方法;绿色框(标记为 ILA)表示内部逻辑分析仪方法;橙色框(标记为 AP)表示有源探针方法。我们假设该错误的潜在根本原因是对 CoreSF2Reset 软核 IP 模块的复位输入设置不当。

Microsemi 在线 FPGA 调试 (9)

现在让我们看一下前面描述的三种在线方法的调试过程。

外部测试设备
使用这种方法时,假设测试设备可用,且未被优先级更高的项目使用。此外,提前规划也很重要,这样才能留出一些可用的 FPGA I/O,并方便地连接到测试设备。例如,在 PCB 上预留一个接头ample 会非常有帮助,可以最大限度地减少在探测过程中识别和连接“可能的嫌疑人”或潜在引脚短路所花费的时间。我们需要重新编译设计以选择我们想要调查的信号。希望我们不会像“剥洋葱”一样需要选择其他信号进行进一步调查,因为最初的调查往往只会导致更多问题。无论如何,重新编译和重新编程过程可能会花费大量时间,如果导致时序违规,则需要重新设计(我们都很熟悉解决时序收敛问题是多么令人沮丧,尤其是在您为了查找设计错误而进行设计更改时——整个过程可能需要几分钟到几小时)!同样重要的是要记住,如果设计中没有空闲的用户 I/O,则无法实现此方法。此外,此方法在结构上对设计具有侵入性——与时序相关的错误可能会在迭代之间消失或重新出现。

内部逻辑分析仪
使用此方法,必须使用结构资源将 ILA 插入设计中,然后重新编译。请注意,如果 ILA 已实例化,我们想要研究的信号可能尚未被检测,这也需要重新编译。此过程可能会更改原始设计并违反时序约束。如果满足时序要求,则需要重新编程并重新初始化设计。如果重新编译时间较长且需要多次编译,整个过程可能需要几分钟甚至几小时。这种方法在结构上具有侵入性,可能会导致与使用上述方法时所述的类似问题。

有源探头
使用这种方法,有源探头可以指向各种复位信号的来源,所有这些信号都来自寄存器输出(这在任何良好的数字设计实践中都很常见)。从下图 10 所示的有源探头菜单中,一次选择一个信号。选定的信号值可以读取并显示在有源探头数据窗口中。任何错误断言都很容易识别。此测试可以立即完成,无需重新编译和编程器件,并且在结构或程序上都无侵入性。整个过程只需几秒钟。此方法还可以创建可控性(异步更改值),这是其他两种方法无法实现的。在这个特定的例子中amp例如,可以轻松探测寄存器发出的复位信号并发现其处于活动状态。

通过异步操作产生复位信号的寄存器,可以实现复位信号的瞬时切换。

Microsemi 在线 FPGA 调试 (10)

更复杂的调试用例
上述设计非常简单,可以作为使用所述设计技术的介绍,但更复杂的示例amp可能更能说明问题。很多时候,我们感兴趣的信号并不是像我们简单的例子中那样的静态信号ample,但它是动态的。常见的动态信号是中间时钟,可能用于定时串行接口的握手。图 11 显示了这样的设计,其中用户软 IP 核,在本例中是连接到系统 APB 总线的自定义串行接口。错误症状是用户自定义串行接口上​​没有活动,并且当 APB 总线主控器发出事务以访问串行接口时,它会进入异常状态,指示握手不正确。这些情况似乎排除了静态原因,例如不正确的复位信号,因为事务状态机似乎没有以预期的速率运行,从而导致异常。根本原因被认为是用户 IP 核内的时钟频率发生器。

如果它没有以正确的频率运行,就会产生所描述的错误。

Microsemi 在线 FPGA 调试 (11)

在这种情况下,用实时探测 (Live Probe) 替代主动探测 (Active Probe) 方法可能是更好的策略。如上图橙色 LP 框所示,使用 JTAG 信号用于探头源选择。

外部测试设备
对于这种情况,方法与前面描述的简单示例非常相似amp例如,用户时钟信号被引出到测试点(最好是在接头上),需要进行耗时的重新编译。引出一个参考信号(例如一个系统时钟)可能也会有所帮助,该信号用于为用户IP提供时钟作为比较信号。我们将再次面临重新编译和重新编程的需求,因此整个过程可能会花费大量时间。

内部逻辑分析仪
这种情况与简单的情况非常相似amp例如,必须插入 ILA,或定义所需信号,并执行重新编译和重新编程周期。所有前面描述的问题仍然会导致显著的调试周期时间。然而,还有一个额外的复杂性。驱动 ILA 的时钟需要同步,理想情况下,其速度要比从用户软 IP 核观察到的时钟快得多。如果这些时钟是异步的,或者没有正确的时序关系,数据捕获将变得不可预测,并可能成为调试过程中混乱的根源。
请注意,如果用户软 IP 时钟不是在片上生成的(也许是从串行接口恢复的),设计人员可能需要添加时钟模块,以使用额外的资源生成更快的 ILA 时钟,并可能造成时序违规。

实时探针
使用这种方法,实时探针可以快速指向用户时钟源以及来自寄存器的任何其他时钟源,从而追踪错误的根本原因。实时探针将实时显示所选信号输出,因此更容易确定信号之间的任何时序关系。整个过程只需几秒钟。

串行接口的其他调试功能
还需要指出的是,SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 设备中还有许多额外的调试功能,可用于串行接口,就像上例中提到的那样amp错误更为复杂的设计。例如,SERDES 调试ample 为专用高速串行接口提供特定的调试功能。SERDES 调试功能包括 PMA 测试支持(例如 PRBS 模式生成和环回测试)、支持多种 SERDES 测试配置以及寄存器级重新配置,从而避免使用完整的设计流程进行配置更改,以及显示已配置协议、SERDES 配置寄存器和 Lane 配置寄存器的文本报告。这些功能使 SERDES 调试更加轻松,并且可以与 Live Probe 和 Active Probe 结合使用,进一步加快复杂电路的调试速度。
前面介绍的内存调试工具也可以与 SERDES 调试结合使用,以加快测试速度。由于可以使用内存调试快速轻松地检查和更改内存缓冲区,因此可以快速创建“测试数据包”并观察环回或系统间通信的结果。设计人员可以利用这些功能,从而最大限度地减少对专用“测试工具”的需求,因为这些工具会占用额外的 FPGA 架构,并可能影响芯片时序。

结论
本文详细介绍了几种实现 FPGA 和 SoC FPGA 在线调试的不同方法——使用集成逻辑分析仪、使用外部测试设备以及使用集成在 FPGA 结构中的专用探测电路。事实证明,添加专用探测电路(例如美高森美在 SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 器件上提供的有源探测和实时探测)可以显著加快和简化调试过程。快速修改内部信号选择(无需执行非常耗时的重新编译和重新编程周期)以及探测内部信号(无需使用 FPGA 结构并避免可能引入的时序违规)的能力已被证明是主要优势。tag调试 FPGA 设计时的关键步骤。此外,本文还介绍了多种方法的使用,这些方法可以协同工作,提供更全面的调试功能。最后,本文介绍了两个示例amp给出了调试用例来说明所述方法之间的权衡。

了解更多

  1. IGLOO2 FPGA
  2. SmartFusion2 SoC FPGA

美高森美公司(纳斯达克代码:MSCC)为通信、国防与安全、航空航天和工业市场提供全面的半导体和系统解决方案组合。 产品包括高性能和抗辐射模拟混合信号集成电路、FPGA、SoC 和 ASIC; 电源管理产品; 计时和同步设备以及精确的时间解决方案,为时间设定了世界标准; 语音处理设备; 射频解决方案; 分立元件; 安全技术和可扩展的反 tamper 产品;以太网供电 IC 和中跨;以及定制设计能力和服务。美高森美总部位于加州阿利索维耶荷,全球拥有约 3,400 名员工。了解更多信息,请访问 www.microsemi.com.

© 2014 美高森美公司。 版权所有。 Microsemi 和 Microsemi 徽标是 Microsemi Corporation 的商标。 所有其他商标和服务标志均为其各自所有者的财产。

美高森美公司总部

常问问题

  • 问:该设备的最大数据捕获频率是多少?
    答:该设备支持高达 100MHz 的数据捕获,适合大多数目标设计。
  • 问:使用探测电路进行调试时,是否需要重新编译设计?
    答:否,探测点位置可以快速改变,而无需重新编译设计或重新编程。

文件/资源

Microsemi 在线 FPGA 调试 [pdf] 指示
在线 FPGA 调试、FPGA 调试、调试

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *