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

    关注

    1656

    文章

    22292

    浏览量

    630434
  • asic
    +关注

    关注

    34

    文章

    1269

    浏览量

    124066
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    这款自研ASIC芯片完成量产流,并通过多项测试验证

    电子发烧友网综合报道 近日,山石网科通信技术股份有限公司(以下简称“山石网科”)发布公告称,公司自主研发的ASIC安全专用芯片已完成量产流及全面测试验证,各项功能与性能指标均达到设计要求
    的头像 发表于 12-02 08:34 7415次阅读

    【干货分享】在M-K1HSE开发板使用SecureCRT工具进行调试

    SecureCRT是一款支持SSH协议的终端仿真软件,可通过串口或网口对开发板系统信息进行查看、对开发板系统进行调试等。
    的头像 发表于 08-12 08:07 1157次阅读
    【干货分享】在M-K1HSE开发板<b class='flag-5'>上</b>使用SecureCRT工具<b class='flag-5'>进行</b><b class='flag-5'>调试</b>

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

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

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

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设
    的头像 发表于 06-09 09:32 3155次阅读
    <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 2005次阅读
    <b class='flag-5'>FPGA</b>远程烧写bit文件和<b class='flag-5'>调试</b>ILA指南

    实用电子电路设计(全6本)——数字逻辑电路的ASIC设计

    由于资料内存过大,分开上传,有需要的朋友可以去主页搜索下载哦~ 本文以实现高速高可靠性的数字系统设计为目标,以完全同步式电路为基础,从技术实现的角度介绍ASIC逻辑电路设计技术。内容包括:逻辑
    发表于 05-15 15:22

    FPGA芯片的概念和结构

    FPGA(Field Programmable Gate Array,现场可编程门阵列),是一种可在出厂后由用户根据实际需求进行编程配置的集成电路。与专用集成电路(如ASIC)不同,FPGA
    的头像 发表于 05-12 09:30 2415次阅读

    MCUFlash

        MCUFlash是微控制器内部集成的非易失性存储器,主要用于存储程序代码、常量数据及系统配置信息。其核心特性与功能如下: 一、定义与类型‌ Flash采用浮栅晶体管技术
    的头像 发表于 05-06 14:26 870次阅读

    使用BCU和标准逻辑分析仪Saleae进行功率测量时不匹配怎么解决?

    我正在尝试使用基于主机的 BCU 实用程序在 iMX93EVK 板执行功率测量。 我正在尝试验证”SOC 功率“通过比较”组 SOC 电源“,并将其与从标准逻辑分析仪收集的数据(”萨
    发表于 04-04 08:07

    FPGA设计调试流程

    调试,即Debug,有一定开发经验的人一定会明确这是设计中最复杂最磨人的部分。对于一个庞大复杂的FPGA工程而言,出现问题的概率极大,这时如果没有一个清晰的Debug思路,调试过程只能是像无头苍蝇一样四处乱撞。
    的头像 发表于 03-04 11:02 1661次阅读
    <b class='flag-5'>FPGA</b>设计<b class='flag-5'>调试</b>流程

    现代中端FPGA的主要亮点

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

    CPLD 与 ASIC 的比较

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

    ASIC和GPU的原理和优势

    芯片”。 准确来说,除了它俩,计算芯片还包括大家更熟悉的CPU,以及FPGA。 行业里,通常会把半导体芯片分为数字芯片和模拟芯片。其中,数字芯片的市场规模占比较大,达到70%左右。 数字芯片,还可以进一步细分,分为:逻辑芯片、存储芯片以及微控制单元(MCU)。CPU、GP
    的头像 发表于 01-06 13:58 3100次阅读
    <b class='flag-5'>ASIC</b>和GPU的原理和优势

    在板卡对ADC12DJ3200芯片进行调试,SDO口一直是高电平,为什么?

    在板卡对ADC12DJ3200芯片进行调试,该AD的电均正常,但是用FPGA对其SPI接口调试
    发表于 12-20 13:09

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Circuit,专用集成电路)设计是一个复杂的过程,涉及到逻辑设计、综合、布局布线、物理验证等多个环节。在这个过程中,Verilog被用来描述数字电路的行为和结构,进而实现ASIC的设计。 具体来说
    的头像 发表于 12-17 09:52 1460次阅读