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
    +关注

    关注

    1646

    文章

    22097

    浏览量

    620797
  • asic
    +关注

    关注

    34

    文章

    1251

    浏览量

    122771
  • 存储器
    +关注

    关注

    39

    文章

    7663

    浏览量

    168427
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    西门子桌面级原型验证系统Veloce proFPGA介绍

    子,工程师可以从 proFPGA Uno 系统开始进行 IP 或子系统 (SoC) 的开发,然后将其重复用于完整的 SoC 和专用集成电路 (A
    的头像 发表于 06-30 13:53 ?1193次阅读

    FPGA调试方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设
    的头像 发表于 06-09 09:32 ?1773次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>调试</b>方式之VIO/ILA的使用

    FPGA远程烧写bit文件和调试ILA指南

    FPGA 开发过程中,烧写bit文件和使用ILA进行调试是再常见不过的操作。但如果 FPGA 板卡被放在机房,或者通过PCIe插在服务器
    的头像 发表于 06-05 16:41 ?1101次阅读
    <b class='flag-5'>FPGA</b>远程烧写bit文件和<b class='flag-5'>调试</b>ILA指南

    现代中端FPGA的主要亮点

    FPGA 通常按照逻辑容量进行分类,这种方式固然简单,但未能充分体现现代 FPGA 作为可更改的
    的头像 发表于 01-23 13:52 ?788次阅读

    CPLD 与 ASIC 的比较

    可编程的逻辑器件,它允许设计者在制造后对逻辑功能进行配置。CPLD通常由多个可配置的逻辑块(Logic Blocks)和可编程互连(Interconnect)组成,这些
    的头像 发表于 01-23 10:04 ?825次阅读

    通过FPGA的产生SPI控制器访问PCB若干DAC8734,有的成功有的失败,为什么?

    你好,我的设计中有通过FPGA的产生SPI控制器访问PCB若干DAC8734,但是只有部分成功,部分访问失败。个人觉得是芯片内部问题,希望TI专家能帮忙定位一下。下图是时序图:
    发表于 12-05 08:29

    利用EVM对ADS1299进行内部产生方波的测试,如何才能从逻辑分析获得正确的输出?

    我利用EVM对ADS1299进行内部产生方波的测试,同时在ADS1299上接着逻辑分析仪,可是从逻辑分析仪获得的数据跟EVM获得的数据不一样
    发表于 12-05 07:17

    FPGAASIC的区别 FPGA性能优化技巧

    FPGAASIC的区别 FPGA(现场可编程门阵列)和ASIC(专用集成电路)是两种不同的集成电路技术,它们在多个方面存在显著的区别: FPGA
    的头像 发表于 12-02 09:51 ?1186次阅读

    ASIC集成电路与FPGA的区别

    根据特定的需求从头开始设计和制造,设计和制造过程是一次性的。 一旦制造完成,其功能就固定了,不可更改。 分为全定制和半定制,全定制灵活性好但开发效率低下,半定制则较为方便且可靠。 FPGA 由通用的逻辑单元组成,这些单元可以通过
    的头像 发表于 11-20 15:02 ?1374次阅读

    FPGAASIC在大模型推理加速中的应用

    随着现在AI的快速发展,使用FPGAASIC进行推理加速的研究也越来越多,从目前的市场来说,有些公司已经有了专门做推理的ASIC,像Groq的LPU,专门针对大语言模型的推理做了优化
    的头像 发表于 10-29 14:12 ?2191次阅读
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>ASIC</b>在大模型推理加速中的应用

    FPGAASIC的优缺点比较

    适应各种应用场景。这意味着用户可以根据需要,通过编程来更改FPGA的功能,而无需更改硬件设计。 设计周期短 :与ASIC相比,FPGA的设计、验证和生产周期更短。这主要是因为
    的头像 发表于 10-25 09:24 ?1836次阅读

    如何在服务器上调试本地FPGA板卡

    联合开发或者跑多策略工程的时候,一般都使用多核的服务器进行FPGA设计。这个时候如果板卡在本地电脑应该怎么进行调试呢?
    的头像 发表于 10-24 18:05 ?826次阅读
    如何在服务器上<b class='flag-5'>调试</b>本地<b class='flag-5'>FPGA</b>板卡

    【AG32开发板体验连载】简易逻辑分析

    逻辑分析仪,具体如下: 完成开发环境的搭建 基于VS Code进行MCU编程及测试 基于Quartus完成FPGA功能的测试 完成FPGA
    发表于 10-04 21:50

    FPGA做深度学习能走多远?

    需重新设计和制造芯片,这样可以大大缩短产品的迭代周期,降低开发成本和风险。 ? 成本效益:相对于专用的 ASIC 芯片,FPGA 的开发和调试周期相对较短,可以更快地进行模型迭代和优化
    发表于 09-27 20:53

    浅谈逻辑分析仪的技术原理和应用领域

    逻辑分析仪是一种专门用于数字系统测试和分析的电子仪器,它通过实时捕获和显示数字信号的逻辑电平状态
    发表于 09-12 15:04