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

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

3天内不再提示

通过片上仪器和逻辑分析轻松进行FPGA和ASIC调试

星星科技指导员 来源:嵌入式计算设计 作者:Brad Quinton 2022-06-19 07:40 次阅读

ASICFPGA 变得非常复杂,特别是对于涉及多核的片上系统 (SoC) 设计。这种复杂性带来了更长、更繁琐的调试和验证周期。不幸的是,当出现故障或出错时,在高度集成的设计中访问测试点几乎是不可能的。除非您想在运行多个原型时花费数周时间在黑暗中拍摄随机错误,否则片上仪器不再是可选的;这是一个重要的必备品。图 1 显示了使用片上仪器的调试过程概览。

图 1:仪器和调试周期对于检测 FPGA 原型中的错误至关重要。

pYYBAGKsTI6AXPmbAAOuJQUoFSs336.png

虽然有多种方法可以将仪器添加到 FPGA,但使用仪器网络的分布式方法正在成为首选方法,因为它最大限度地增加了潜在观察点的数量,同时最大限度地减少了硅面积或查找表的使用要求。对高效调试同样重要的是深度跟踪捕获,以了解系统的各个部分如何随着时间的推移进行交互。最后,设计人员必须能够观察多个器件和时钟域的交互,包括片上和片外,所有这些都是完全时间相关的,以获得真正的系统级视角。

总而言之,包括灵活和完整的观察点访问、深度跟踪捕获和系统级视图在内的创新有可能将 FPGA 和 ASIC 调试的游戏规则从漫长而艰巨的过程转变为快速而高效的过程。

调试挑战

在回顾实现嵌入式仪器的不同方法之前,首先了解为什么仪器是必要的会很有帮助。最大的原因仅仅是每个系统中不断增长的功能。

虽然过去有很多探测点(设备上的外部 I/O)可供选择,但现在无法观察到发生了什么,因为在大多数情况下,关键接口现在都在设备内部。与五年前相比,当前一代 FPGA 的并行运行功能数量增加了 100 倍,而外部输出的数量却保持不变。从试图调试意外行为的开发人员的角度来看,现代芯片只不过是一个大黑匣子。

似乎这还不够,虽然模拟器的功能继续以线性方式提高,但并行功能的每一次增加都会增加潜在组合的指数级增长。由于仿真一次运行在一种组合上,因此不可能涵盖硅前仿真运行中的所有功能。

由于无法充分模拟硅前所有可能的排列,导致在设计完成之前进行基于 FPGA 的原型设计。特别是在原型级别,访问观察点对于快速有效地调试功能问题非常有帮助。

另一个调试挑战是硅上嵌入式软件的出现。越来越多的 FPGA 和 ASIC 设计包括一个或多个处理器内核。此类系统可能包括软件、固件、嵌入式处理器、GPU、内存控制器和其他高速外围设备的复杂组合。这种增加的功能集成与更快的内部时钟速度和复杂的高速 I/O 相结合,使开发人员比以往任何时候都更难提供功能齐全且经过充分验证的系统。

片上信号捕捉

当系统涉及多个芯片和组件时,很容易移动逻辑分析仪探头以查看不同的信号组合。即使转向片上仪器,灵活地将虚拟逻辑分析仪探头移动到不同信号点的需求仍然保持不变。由于设计人员无法预测给定芯片的每个变量或潜在应用,因此可用的信号捕获点越多越好。

传统的 ASIC 方法使用具有共享选择信号的多路复用器网络(每个多路复用器级别一个)并提供 n/m 个不同的信号组合,其中 n 是探测点的数量,m 是同时查看的信号数量(调试总线宽度)。这是最严格但最简单的选项,因为它利用了简单的多路复用器。为了有效,这种方法需要大量的前期时间来创建与每个可能的调试场景相对应的信号组,并且一旦捕获点起作用,设计人员就只能查看同一组中的信号。此过程要求高、耗时且极不可能捕获所有调试场景。

另一个极端是创建一个完整的交叉开关多路复用器,以提供完全的信号灵活性,这需要 m 个大小为 n:1 的多路复用器。相对于面积而言,这可能会很快变得昂贵,这使得这种方法对于除了最小的情况之外的所有情况都是不切实际的。

中间立场是要么增加多路复用器结构内的选择信号数量,要么创建多个具有不同信号排序的重复组。共享选择多路复用器和带有附加选择信号的多路复用器都在许多本土方法中实现。虽然共享选择多路复用方案可以处理常见和预期的调试场景,但它们仍然没有达到理想的完整覆盖范围。因此,它们不适合解决意外问题,并且通常会导致实现效率低下,因为信号会重复连接到多个多路复用器。

通过利用多级无序网络(通常称为集中器网络),可以找到更优雅、更高效的解决方案。这种新方法有效地创建了一个观测网络,并且正在商业化。使用独特的网络架构和互补的路由算法,观察网络提供了完整交叉开关多路复用器的信号灵活性,而在大多数情况下,只需要共享简单多路复用器的裸片面积。表 1 显示了使用不同方法计算的信号可见度的比较。

表 1:观察网络提供与多路复用器相同级别的信号可见性,同时需要相似或更少的裸片面积。

poYBAGKsTIeAGhKzAAE5D8kEM5Y537.png

通过观察网络,设计人员可以使用自动化工具以寄存器传输语言 (RTL) 实现片上信号捕获探针。在设计阶段,无需担心不同的信号组合或排序,因为每种组合都可用。结果是一个随信号数量线性增长的观察网络。这种方法将确定路由的复杂性从芯片转移到软件中。在产生显着的面积/性能改进的同时,观测网络需要复杂的算法来确定路由,因此如果没有商业软件来控制信号选择,就很难使用它。

在观察点可见性方面,网络方法比简单多路复用器的优势有多大?以这个例子为例,其中探测了 256 个信号 (n),同时可见 32 个信号 (m):

简单多路复用器:信号组合数(可见性)= 256/32 = 32

观测网络:信号组合数(可见度)= 2^256 = 1.2 x 10^77

相差76个数量级。虽然第一种方法具有高度限制性,但观察网络方法提供了任何可能的信号组合。以大致相同的成本,观测网络提供了巨大的优势,其灵活性更高。

最大化捕捉深度

对于跨越硬件和软件的调试挑战,捕获长迹线的能力对于追踪在数千或数百万个时钟周期内出现的问题至关重要。在硅后和 FPGA 上,深度捕获对于了解整个系统的工作方式至关重要,因为许多无法验证的错误需要很长时间才能出现。此外,大多数软件驱动的功能跨越数十万到数百万个时钟周期。

传统的仪器方法在从观测探头接收到的信息时,使用内部 RAM 中的一个条目来捕获每个时钟周期捕获的数据。使用这种方法很难或不可能一次捕获超过几千个时钟周期而不会对内部存储器资源造成不可接受的压力。出于这个原因,现在开始使用压缩技术来提高捕获深度。

然而,大多数众所周知的压缩算法都不太适合跟踪压缩,它们是为视觉媒体和通信应用开发的。一起使用多种压缩技术的专用跟踪压缩层,每一种都专门针对常见的跟踪数据模式进行定制,现在已经上市。对于大多数实际应用,这可提供 10-1,000 倍的深度,而不会损失分辨率。

高效的系统范围调试

更高效的 FPGA 和 ASIC 调试的最后一个难题是时间相关的系统范围视图,它跨越多个并行运行的时钟域。当问题需要跨多个检测区域进行关联时,设计人员正在考虑获取单个轨迹然后手动关联事件的耗时过程。例如,基于 FPGA 的原型设计平台上的平均 ASIC 原型由跨四到八个 FPGA 的每个 FPGA 两到三个时钟域组成。这意味着设计人员将需要单独调试 8 到 24 个时钟域。一次跟踪这 24 个域中的每一个并手动将结果拼凑在一起既耗时又容易出错。

一种更有效的方法是使用逻辑分析仪软件从在多个时钟域和跨多个设备运行的独立仪器中生成时间相关视图,如图 2 所示。专用调试软件可以从芯片的每个仪器区域收集数据,反转压缩算法,然后对齐捕获的数据以生成系统范围的时间相关视图。这导致单一的跟踪捕获和调试方案,既节省时间又提供许多功能单元和时钟域的同时硬件调试。此过程通常会揭示在构建设备时从未考虑过的紧急系统行为。

图 2:时间相关视图加速系统级调试。

poYBAGKsTH6AKZLxAAR1FLEVuxg911.png

创新应对意外

随着复杂性的增加和对探测点的访问受限,ASIC 和 FPGA 验证和调试变得乏味且耗时。随着越来越多的功能集成到每个芯片中,对探测点的物理访问变得不可能。接下来的挑战是整合足够的片上观察点,不仅可以处理预期的调试场景,还可以处理意外的调试场景。

即使是最复杂的设计,也能更快、更有效地验证和调试的一项关键创新是观察网络。与观察信号的传统共享选择多路复用器方法相比,观察网络可提供更多具有相似芯片面积要求的信号组合。

支持更高效调试方案的其他创新包括使用高级压缩算法来提高片上存储器捕获深度,以及逻辑分析仪软件的出现,该软件可以生成跨越多个设备和片外仪器的时间相关的系统范围视图。

审核编辑:郭婷

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

    关注

    1602

    文章

    21317

    浏览量

    593154
  • asic
    +关注

    关注

    34

    文章

    1156

    浏览量

    119261
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161978
收藏 人收藏

    评论

    相关推荐

    基于FPGA设计频率计方案介绍分享

    的综合与布局,快速的烧录至 FPGA进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器
    发表于 03-31 16:22

    FPGA与AISC的差异

    扩展性较好,可以通过增加芯片数量或使用更大容量的芯片来满足更高的性能需求。而ASIC的可扩展性相对较差,需要重新设计和制造。 验证和调试FPGA的验证和
    发表于 02-22 09:54

    到底什么是ASICFPGA

    。 用户使用FPGA时,可以通过硬件描述语言(Verilog或VHDL),完成的电路设计,然后对FPGA进行“编程”(烧写),将设计加载到FPGA
    发表于 01-23 19:08

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

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

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

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

    需要了解的FPGA基础知识

    可编程器件门电路数有限的缺点。简而言之,FPGA就是一个可以通过编程来改变内部结构的芯片。 二、FPGA的基本结构 FPGA可编程的特性决定了其实现数字
    发表于 11-20 18:56

    集成逻辑分析仪(ILA)的使用方法

    在日常FPGA开发过程中,逻辑代码设计完成后,为了验证代码逻辑的正确性,优先使用逻辑仿真(modesim)进行验证。仿真验证
    的头像 发表于 10-01 17:08 1833次阅读
    集成<b class='flag-5'>逻辑</b><b class='flag-5'>分析</b>仪(ILA)的使用方法

    FPGAASIC的优劣势 FPGAASIC的应用场景及前景

      FPGAASIC是数字电路中常见的实现方式,因此人们经常会想要了解哪种芯片在未来的发展中更具有前途。然而,这取决于具体的应用场景和需求。在本文中,我们将探讨FPGAASIC的优
    发表于 08-14 16:40 1195次阅读

    FPGAASIC的区别与联系

      FPGAASIC作为数字电路的常见实现方式,其联系和区别备受关注。本文将从FPGAASIC的基本概念入手,深入研究它们的区别与联系,以帮助读者更好地理解两者的应用场景和选择方法
    发表于 08-14 16:38 1841次阅读

    调试FPGA时,TD软件是否支持内部逻辑分析功能?

    调试FPGA时,TD软件是否支持内部逻辑分析(抓波形)功能?
    发表于 08-11 10:32

    如何对传统的非DFX设计进行调试呢?

    对传统的非DFX设计进行调试时,一个重要环节是插入ILA(Integrated Logic Analyzer,集成逻辑分析仪)。
    的头像 发表于 08-10 09:07 615次阅读
    如何对传统的非DFX设计<b class='flag-5'>进行</b><b class='flag-5'>调试</b>呢?

    FPGA学习之vivado逻辑分析仪的使用

    其中待测设计就是我们整个的逻辑设计模块,在线逻辑分析仪也同样是在FPGA设计中。通过一个或多个探针来采集希望观察的信号。然后
    发表于 07-25 09:52 561次阅读
    <b class='flag-5'>FPGA</b>学习之vivado<b class='flag-5'>逻辑</b><b class='flag-5'>分析</b>仪的使用

    使用逻辑分析仪Acute TravelLogic Analyzer进行SPI NAND驱动开发调试

    使用逻辑分析仪Acute TravelLogic Analyzer进行SPI NAND驱动开发调试
    的头像 发表于 06-08 11:13 3282次阅读
    使用<b class='flag-5'>逻辑</b><b class='flag-5'>分析</b>仪Acute TravelLogic Analyzer<b class='flag-5'>进行</b>SPI NAND驱动开发<b class='flag-5'>调试</b>

    利用FPGA开发板进行ASIC原型开发的技巧

    ASIC设计在尺寸和复杂性上不断增加,现代FPGA的容量和性能的新进展意味着这些设计中的2/3能够使用单个FPGA进行建模。然而,这些设计中仍然保留有1/3(那就是说,所有
    的头像 发表于 06-04 16:50 733次阅读

    FPGA资料

    的,随着使用量增加,FPGA 方案在成本的优势逐渐减少,超过某一使用量后,由于大量流产生了规模经济,因此 ASIC 方案在成本更有优
    发表于 05-30 20:40