高密原型验证系统解决方案(下篇)

news2024/9/22 11:39:58

0 引言

我们在上篇中和大家探讨了用户在进行大规模 复杂 SoC 设计原型验证时在全局时钟及复位同步, 大规模设计分割以及高速接口与先进 Memory 控制 器 IP 验证等方面遇到的关键困难,并提出了相应的 解决方案帮助用户来克服这些困难。接下来我们会 和用户探讨在大规模复杂 SoC 设计原型验证时用户 常常会面临的大规模设计调试,系统部署与组网检 测以及多用户多平台管理的挑战, 并提出相应解决 方案,来帮助用户应对这些挑战,缩短 SoC 的原型验 证周期。

 

1 大规模复杂 SoC 设计原型验证中遇到的挑战

1.1 大规模设计调试挑战

大规模复杂 SoC 设计原型验证过程中,需要确 保设计中的故障是可调试的,最大程度减少开发过 程中的调试时间。当用户把设计下载到 FPGA 以后, 第一次运行总会遇到各种失败情况。原因有可能是 FPGA 原型组网不正确,设计本身有问题或者是设 计编译过程中引入的错误(如设计分割和管脚时分复用导致的时序错误)。用户需要一个好的测试方法 来确定硬件是否运行正确,所有设计中的功能模块是否功能正常。那么,就需要外部逻辑分析仪或内在 逻辑分析仪来侦测故障所在。目前,大多数用户都习 惯于使用 FPGA 厂商提供的 FPGA 内嵌逻辑分析仪 来进行 FPGA 原型验证系统上板测试阶段的调试。 然而用 FPGA 厂商内嵌逻辑分析仪进行大规模 SoC 原型验证系统的调试也存在着不少限制。比如:

1)内嵌逻辑分析仪的逻辑实现需要占用用户 的 FPGA 逻辑资源,当用户的 FPGA 逻辑资源比较 紧张时,内嵌逻辑分析仪的资源占用会影响用户设 计的布线及时序,导致用户设计无法完成布线或者 时序异常。

2)内嵌逻辑分析仪的调试数据存储需要占用 FPGA 的内部存储器资源。然后 FPGA 的内部存储 器资源十分有限,当用户需要进行深度调试数据存 储时,FPGA 的内部存储器资源就会不够用。

3)虽然某些 FPGA 厂商提供的内嵌逻辑分析 仪支持多 FPGA 级联调试,但是当待测试设计的触 发条件需要靠来自多颗 FPGA 的触发信号进行复杂 逻辑运算来实现时,FPGA 厂商内嵌逻辑分析仪无 法实现该功能。

4)当用户想要调试的信号不在内嵌逻辑分析 仪调试探针的信号列表的时候,用户往往需要重新 运行一次设计编译流程来修改内嵌逻辑分析仪的调 试探针信号。这类操作非常耗时,而且有可能因为设 计重新编译而造成设计的时序发生变化,导致原来出现的设计 bug 无法复现的情况。

5)内嵌逻辑分析仪的调试探针信号数量有限, 当用户想要看更多的调试探针信号,甚至是需要设 计寄存器及内部存储器全可视调试功能时,FPGA 厂商提供的内嵌逻辑分析仪无法支持。 由于 FPGA 厂商内嵌逻辑分析仪的以上限制, 用户需要有更强大灵活的系统级调试方案来满足大 规模复杂 SoC 设计在进行原型验证时的调试需求。

1.2 系统部署与组网检测挑战

由于大规模复杂 SoC 设计规模庞大,即便使用 业界最大规模的 FPGA,搭建一个大规模 SoC 设计原 型往往需要数十颗甚至是上百颗 FPGA,为了满足 如此复杂的原型验证系统搭建要求,用户需要解决 下面一些问题:

1)首先大规模原型验证系统组网的部署方案 就是一个问题。实验室的桌面一般只适合部署设计 规模为几台 FPGA 原型验证平台组成的原型验证系 统。当用户的设计规模上升到几十颗 FPGA 或更大 规模时,实验室桌面将无法满足用户的部署需求。需 要有专门的空间及易于扩展的环境来进行大规模及 大批量的原型验证系统的部署。此外,部署环境的供 电,散热,温度,湿度,防尘甚至安全性也需要有相应 解决方案。

2)用于大规模原型验证系统组网的互连线缆 长度也是一个难题。普通的基于铜线传输的线缆长 度有限,最长只有 1 米左右,仅能用于同一台或者物 理距离靠近的两台原型验证平台组网,无法适用于 物理距离较远的原型验证平台组网的需求场景。而 大规模 SoC 设计往往有多台甚至数十台原型验证平 台组成,如何实现距离较远的原型验证平台组网?

3)在大规模 SoC 原型系统组网完成之后,用户 怎么样对复杂庞大的组网进行检测也是一个难题。 有时候一套复杂的原型验证系统仅仅因为一根线缆 没有插紧就可能导致整套原型验证系统工作不稳定,而这种问题,往往要耗费用户大量的时间排查出来。

1.3 多用户多平台管理挑战

大规模复杂 SoC 设计原型验证项目团队往往包 含有硬件,逻辑,软件,测试等多组成员,这些项目组 的多组成员有时会分散在不同的地区甚至是国家, 各组成员需要能够方便的通过远程访问大量原型验 证平台的方式来协同工作,并合理分配原型验证平 台访问时间窗口以充分利用原型验证平台资源。对 多个用户多个平台进行原型验证平台资源管理和调 度是一个复杂的工程。需要有一个完善的多用户多 平台的远程管理机制把这些资源有效的管理并且将 资源合理分配给团队的各个成员,避免资源冲突,提 高整个团队的工作效率,降低项目风险。

2 面向大规模复杂 SoC 设计的高密原型验证解决方案

为了应对大规模复杂 SoC 设计在原型验证系统 在设计调试,系统部署与组网检测以及多用户多平 台管理等方面的挑战,用户需要有成熟通用的高密 原型验证解决方案来帮助用户节省项目成本,提高 生产力,并缩短整个 SoC 原型验证的周期。

2.1 大规模设计调试方案

大规模设计调试是原型验证领域的一个难题, 当高密原型验证用户的待验证 SoC 设计下载到 FPGA 原型验证系统无法正常运行的时候,用户需要 有效的调试方案来排查故障的原因。

2.1.1 使用FPGA厂商提供的 ILA 进行多FPGA级联调试

目前,大多数用户都习惯于使用 FPGA 厂商提 供的 FPGA 内嵌逻辑分析仪(ILA)来进行 FPGA 原 型验证系统上的单颗 FPGA 调试。使用 FPGA 厂商 内嵌逻辑分析仪的好处是成本低,仅需配置一个 FPGA JTAG 线缆。调试环境的设置也相对传统逻辑 分析仪相对简单很多。但对于高密原型验证用户来 说,常常会面临的问题是跨 FPGA 的调试需求。由于高密原型验证系统的规模庞大,需要调试的多个模 块往往会分散在几颗不同的 FPGA 中。需要有 cross-trigger 的功能,在 1 颗 FPGA 里的调试模块的 trigger 被触发之后,能同时抓取多颗 FPGA 里调试 模块的 trace 数据。一些 FPGA 厂商提供的 ILA 可以 实现同一个 FPGA 内不同时钟域,不同 FPGA 之间 的 ILA 内核之间的交叉触发。

2.1.2 多 FPGA 并发深度调试方案

虽然高密原型验证用户可以用 FPGA 厂商提供 的 ILA 进行多 FPGA 的级联调试,但是也存在着前 述的用户逻辑资源占用,存储深度,Probe 数量及多 FPGA 的 trigger 信号触发的使用场景限制。为了满 足用户以上的高密原型验证系统调试场景需求,用 户需要有更强大的调试方案支持对大型 SoC 设计进 行全系统的调试,利用最少的 FPGA 资源,完成多颗 FPGA 的并行深度调试。理想的多 FPGA 并发深度 调试方案具有如下特点:

● 利用最少的用户 FPGA 资源,以避免对其设 计的影响。

● 支持用户设置大量的静态探针信号,以便设 计调试。

● 允许用户对于其整个 SoC 全系统的调试。支 持同时对多颗 FPGA 进行并行调试,也可以进行级联,通过 cross-trigger 功能实现更多 FPGA 的级联调试。

● 支持高速的调试数据采样率以及高容量的 波形存储空间。

● 支持以太网接口传输调试数据至 Host PC 进 行分析。

● 支持复杂的内嵌逻辑分析仪触发条件设置。

● 支持动态探针及状态保存恢复功能。

a)为了减少用户 FPGA 资源利用,多 FPGA 并 行调试方案把调试所需的逻辑资源及存储资源和 用户的 FPGA 资源隔离开来,使用一个单独的多 FPGA 深度调试模块来实现调试方案所需的逻辑资 源和存储资源。为了传输用户 FPGA 侧的大量静态 探针调试数据,又不过多占用用户 FPGA 的宝贵普通 I/O 资源,Debug FPGA 和用户 FPGA 之间可以用 Transceiver 来进行通信,以满足高带宽调试数据的 传输需求。同时 Debug FPGA 的 Transceiver 数量需 要尽可能的多,以支持多颗用户 FPGA 并发调试需 求。更多系统并发调试则可以通过 trigger in, trigger out 级联来支持。为了支持海量用户 Debug 数据的存储,需要有外部的大容量,高带宽 DRAM 存储器。

……

本文简介:随着 SoC 设计规模的快速膨胀,越来越多的用户在做大规模 SoC 原型验证时会遇到全局时钟复位同步,大规模设计分割,高速接口及先进 Memory 控制器 IP 验证等关键困难。针对这些困难,一些领先的原型验证系统方案提供商,如国微思尔芯,提供了一系列成熟可重用的通用高密原型验证系统产品和解决方案来解决这些困难,以帮助客户完成大规模复杂 SoC 的原型验证,降低项目风险。

站内下载链接:数字芯片设计与验证需要哪些参考资料白皮书?-思尔芯 | S2C

欲了解思尔芯更多信息,请点击:https://www.s2ceda.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2154975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV运动分析和目标跟踪(2)累积操作函数accumulateSquare()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将源图像的平方加到累积器图像中。 该函数将输入图像 src 或其选定区域提升到2的幂次方,然后加到累积器 dst 中: dst ( …

计算机毕业设计之:基于微信小程序的共享充电桩系统的设计与实现

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

通信工程学习:什么是TLS传输层安全协议

TLS:传输层安全协议 TLS(Transport Layer Security)传输层安全协议是一种用于在两个通信应用程序之间提供保密性、数据完整性以及真实性的安全协议。它是SSL(Secure Sockets Layer)协议的后继者,继承并增强…

通信工程学习:什么是TMN电信管理网

TMN:电信管理网 TMN,全称Telecommunications Management Network,即电信管理网,是为保持电信网正常运行和提供服务,对它进行有效的管理所建立的软硬件系统和组织体系的总称,是现代电信网运行的支撑系统之一…

2024/9/22 leetcode 128题 283题

目录 128.最长连续序列 题目描述 题目链接 解题思路与代码 题目2 题目描述 题目链接 解题思路与代码 128.最长连续序列 题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请…

秩一的等价转化

Lemma 2. For a positive semi-definite Hermitian matrix A ∈ C M M \mathbf{A}\in\mathbb{C}^{M\times M} A∈CMM, the condition Rank ( A ) 1 \left(\mathbf{A}\right)1 (A)1 is equivalent to t h e following conditions the\textit{ following conditions} the fol…

使用GPU 加速 Polars:高效解决大规模数据问题

Polars 最近新开发了一个可以支持 GPU 加速计算的执行引擎。这个引擎可以对超过 100GB 的数据进行交互式操作能。本文将详细讨论 Polars 中DF的概念、GPU 加速如何与 Polars DF协同工作,以及使用新的 CUDA 驱动执行引擎可能带来的性能提升。 Polars 核心概念 Polar…

最新 idea 2024 入门使用详细教程

IntelliJ IDEA:这是一款由JetBrains公司开发的Java集成开发环境(Integrated Development Environment),被广泛认为是目前Java开发者最好的集成开发工具之一。它支持Java、Groovy、Kotlin等多种编程语言,并且提供了丰富…

语言RPA流程组件介绍--获取网页信息

🚩【组件功能】:获取浏览器中显示网页的网页标题、源代码、网址、编码等信息 配置预览 配置说明 获取 网页源代码/标题/网址/编码 iframe 支持T或# 若获取的信息是框架iframe中的信息,需要手动填写框架名称,框架使用方法:框架…

[数据结构与算法·C++] 笔记 1.4 算法复杂性分析

1.4 算法复杂性分析 算法的渐进分析 数据规模 n 逐步增大时, f(n)的增长趋势当 n 增大到一定值以后,计算公式中影响最大的就是 n 的幂次最高的项其他的常数项和低幂次项都可以忽略 大O表示法 函数f,g定义域为自然数,值域非负实数集定义: …

[数据结构与算法·C++] 笔记 1.5类与对象

类与对象 类的概念 一个东西满足这个类的特征 -> 这个东西是这个类的一个实例 -> 实例化共同特点(变量)->构成数据结构归纳行为(函数)->操作数据结构(抽象)可理解为在结构体中加入函数 类的定义 看上去像“带函数的结构体” class Rectangle { public:int w, h;…

会声会影2025视频剪辑教学

会声会影2025是一款超级受欢迎的视频播放软件,用于剪辑和编辑各种类型的视频素材。软件具有直观的用户界面,使得即使对于初学者来说也能轻松上手。该软件提供了各种创意工具,可以帮助用户实现他们的创意想法。用户可以裁剪、合并和重新排列视…

【C++】类和对象(下)相关练习

1. 求123...n 题目要求和,但是像循环,递归,求和公式这样的方法都不让用,这种情况下我们最先想到的就是static成员变量的使用。我们每创建一个类对象就会调用一下构造函数,加上static修饰后出局部作用域不会销毁&#x…

【Java集合】深入了解ArrayList实现原理

概述 1.数据存储是基于动态数组实现的,默认初始容量为10。 2.添加数据时,首先需要检查元素个数是否超过数组容量,如果超过了则需要对数组进行扩容(1.5倍);插入数据时,需要将从插入点 k 开始到数…

【FPGA】编程方式

FPGA编程方式 1 什么是PLD?2 什么是颗粒度?3 可编程逻辑器件的编程方式有哪些?3.1 SRAM 编程技术3.2 Flash/EEPROM 编程技术3.3 反熔丝编程技术3.4 编程技术比较 参考资料 1 什么是PLD? 可编程逻辑器件 英文全称为:pr…

使用 Terminator 的广播功能,其他窗口中输入的字母会加倍重复

现象 比如我在窗口中输入的是 ls -l,那么其他广播中的其他窗口输入的则会变成 llss --ll。 看大神们的分析,造成这个的原因可能是由于 ibus 中的一个 bug。而不是 Terminator 软件的问题。而且总会在新的 ibus 版本中出现问题,所以作者已经放…

构建与优化自定义进程池

1. 什么是进程池? 简单来说,进程池就是预先创建固定数量的工作进程,通过设计任务队列或调度算法来分配任务给空闲的进程 —— 实现“负载均衡”。 2. 进程池框架设计 枚举错误返回值: enum {UsageError 1,ArgError,PipeError };…

SpringBoot环境配置(Spring Boot Profile)

一、介绍 在Spring Boot中,spring.profiles 配置用于定义不同环境下的配置文件。这使得应用可以在不同的环境中使用不同的配置,比如开发环境、测试环境和生产环境等。这种方式可以避免在代码中硬编码配置信息,并且能够更灵活地管理应用的环境…

Linux之实战命令02:shred应用实例(三十六)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

12年计算机408考研-计算机网络

【题33】在TCP/IP体系结构中,直接为ICMP提供服务的协议是(B) A. PPP B.IP C.UDP D. TCP ICMP报文协议处与网际层,PPP协议处于数据链路层,TCP和UDP都是运输层协议。 他们都由IP直接提供服务。 【题…