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

    关注

    1625

    文章

    21663

    浏览量

    601673
  • asic
    +关注

    关注

    34

    文章

    1193

    浏览量

    120303
  • 存储器
    +关注

    关注

    38

    文章

    7447

    浏览量

    163584
收藏 人收藏

    评论

    相关推荐

    ASIC集成电路与FPGA的区别

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

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

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

    FPGAASIC的优缺点比较

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

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

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

    ASIC IP核移植到FPGA——更新概念并推动改变以完成充满挑战的任务!

    本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文
    的头像 发表于 08-10 17:13 795次阅读
    将<b class='flag-5'>ASIC</b> IP核移植到<b class='flag-5'>FPGA</b><b class='flag-5'>上</b>——更新概念并推动改变以完成充满挑战的任务!

    FPGA 高级设计:时序分析和收敛

    FPGA/ASIC 时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序
    发表于 06-17 17:07

    逻辑分析仪的使用说明

    逻辑分析仪是一种用于捕获、显示和分析数字系统(如计算机、微处理器、数字电路等)中信号时序关系的电子测试仪器。它通过对被测系统输入和输出信号
    的头像 发表于 05-16 15:37 2314次阅读

    FPGA与SRIO调试步骤

     FPGA(现场可编程门阵列)和DSP(数字信号处理器)之间通过SRIO接口进行调试通常需要以下步骤。
    的头像 发表于 04-19 11:48 1304次阅读

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

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

    fpgaasic在概念上有什么区别

    FPGA(现场可编程门阵列)和ASIC(应用特定集成电路)在概念存在明显的区别。
    的头像 发表于 03-27 14:12 840次阅读

    FPGA与AISC的差异

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

    到底什么是ASICFPGA

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

    什么是FPGA原型验证?FPGA原型设计的好处是什么?

    FPGA原型设计是一种成熟的技术,用于通过将RTL移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(ASIC),专用标准产品(ASSP)和
    发表于 01-12 16:13 1120次阅读

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

    对于FPGA调试,主要以Intel FPGA为例,在win10 Quartus ii 17.0环境下进行仿真和调试,开发板类型EP4CE15
    的头像 发表于 01-12 09:34 2358次阅读
    浅析<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 518次阅读
    如何用内部<b class='flag-5'>逻辑</b><b class='flag-5'>分析</b>仪<b class='flag-5'>调试</b><b class='flag-5'>FPGA</b>?