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

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.rhkb.cn/news/426404.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF扫描版文字识别OCR

PDF扫描版文字识别OCR 最近需要有对PDF扫描版进行文字可识别的需求,这里介绍一款工具挺好用的 这是一款开源的OCR工具 github地址 https://github.com/hiroi-sora/Umi-OCR 主要功能及特点 免费:本项目所有代码开源,完全免费。方便&#…

二叉树的广度优先遍历和题目

二叉树广度优先遍历利用队列 。 typedef char BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode; typedef BTNode* QDataType;// 链式结构:表示队列 typedef struct QueueNode {…

如何使用宝塔面板安装中间件

如何快速安装中间件,宝塔镇河妖非常简单。 使用 SSH 连接工具,如堡塔SSH终端连接到您的 Linux 服务器后,挂载磁盘,根据系统执行相应命令开始安装(大约2分钟完成面板安装): Centos安装脚本 yum…

视频去重剪辑软件哪个好用?这3款工具值得一试!

很多人都喜欢在视频平台上分享自己的剪辑作品。随着视频数量的激增,视频去重成为了一个不可忽视的问题。无论是为了遵守版权法规,还是为了提升内容的独特性和吸引力,选择一款好用的视频去重剪辑软件都显得尤为重要。本文将推荐几款优秀的视频…

YOLOv8 OBB win10+ visual 2022移植部署

前言 想做一个目标旋转角度检测的工程,但是网上多少python的,或者linux的。在win10 visual 2022移植部署,记录一下。 参考 这篇文章没有C win10 环境下的部署教程,我相对于是对此做了补充。 1、下载工程 https://github.com/sh…

21章 规则集和映射

1.同20章 线性表、栈、队列和优先队列的第10题。 2.同20章 线性表、栈、队列和优先队列的第1题。 3.修改程序清单21-7中的程序。如果关键字在注释或者字符串中,则不进行统计。将Java文件名从命令行传递。 import java.io.*; import java.util.Arrays; import jav…

DeDeCMS靶场漏洞复现

打开靶场地址 姿势一:通过文件管理器上传webshell 1.登录后台 dedecms默认的后台登录地址为/dede 2.在附加管理里的文件式管理器中有文件上传 3.上传木马文件 4.访问木马文件 并连接 姿势二:修改模板文件获取webshell 1.点击模板里面的默认模板管理 …

SHL笔试测评系统题库考什么?如何通过综合测评|附性格测试104道

嘿,各位求职小伙伴们!我是职小豚,今天就来带大家深入了解神秘又充满挑战的 SHL 笔试测评系统。 一、SHL 人才测评系统介绍 SHL 呀,那可是人才测评领域的超级大明星!就像一个智慧的魔法师,用各种神奇的题目…

c++11标准(2)右值引用的衍生产物

欢迎来到博主的专栏&#xff1a;c杂谈 博主ID&#xff1a;代码小豪 文章目录 万能引用模板右值引用到底是左值还是右值完美转发 万能引用模板 当c11推出右值引用之后&#xff0c;我们所写的模板函数可以写成这样&#xff1a; template<class T> T&& Universal_…

[000-01-008].第08节:Sentinel 环境搭建

1.Sentinel的构成&#xff1a; 核心库-后台默认的端口是8719控制台-前台默认的是8080端口 2.2.搭建Sentinel环境&#xff1a; a.下载Sentinel&#xff1a; 1.sentinel官方提供了UI控制台&#xff0c;方便我们对系统做限流设置。可以在GitHub下载 b.下载后运行Sentinel&#…

【virtuoso】AMS数模混合仿真

一、新建Verilog文件 1.1 新建functional 文件 1.2 编写Verilog文件 module phv (ckv ,rst_n ,phv_n );input ckv ;input rst_n ;output reg [10:0] phv_n;always (posedge ckv) beginif(rst_n)phv_n < 11b0;elsephv_n <…

【C++】多态的认识和理解

个人主页 文章目录 ⭐一、多态的概念&#x1f384;二、多态的定义及实现1.多态的构成2.实现多态的条件3.虚函数的概念4.虚函数的重写和覆盖5.析构函数的重写6.协变7.override和 final关键字8.重载、重写/覆盖、隐藏这三者的区别 &#x1f3e0;三、纯虚函数和抽象类的关系&#…

纯血鸿蒙NEXT常用的几个官方网站

一、官方文档 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/Readme-CN.md刚入门查看最多的就是UI开发模块&#xff0c;首先要熟悉组件使用 二、官方API参考 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/development-i…

JVM 调优篇7 调优案例2-元空间的优化解决

一 元空间 1.1 功能概述 方法区&#xff08;Method Area&#xff09;与 Java 堆一样&#xff0c;是各个线程共享的内存区域&#xff0c;它用于存储已被虚拟机加载的类信息、常量、即时编译器编译后的代码等数据。虽然Java 虚拟机规范把方法区描述为堆的一个逻辑部分&#xf…

【操作系统】二、进程管理:4.死锁(银行家算法、系统安全状态、静态分配策略、资源有序分配法)

五、死锁 文章目录 五、死锁1.产生1.1产生情况1.2产生的4个必要条件 2.处理方式2.1预防死锁2.1.1破坏互斥条件2.1.2破坏请求和保持条件2.1.3破坏不可抢占条件2.1.4破坏循环等待条件 2.2避免死锁2.2.1系统安全状态❗2.2.2银行家算法 2.3检测死锁2.4解除死锁 死锁&#xff1a;资源…

ubuntu安装wordpress(基于LNMP环境)

参考链接 Ubuntu安装LNMP 安装步骤 环境需要LNMP环境&#xff0c;如果没有安装可以参考ZATA—LNMP简单安装 在mysql中设置wordpress所用的用户名和密码 #1. 登录mysql mysql -uroot -p #2. 创建wordpress数据库 create database wordpress; #3. 创建新用户user&#xff0c;…

使用Java实现一个简单的B树

1.B树简介 B树是一个搜索树&#xff0c;数据结构可以抽象成如二叉树一样的树&#xff0c;不过它有平衡、有序、多路的特点。 平衡&#xff1a;所有叶子节点都在同一层。有序&#xff1a;任一元素的左子树都小于它&#xff0c;右子树都大于它。多路&#xff1a;B树的每个节点最多…

【Linux】文件权限与类型全解:你的文件安全指南

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件权限与类型全解&#xff1a;你的文件安全指南 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题…

激光雷达点云处理—学习随记

一、激光雷达基本概念 激光雷达&#xff08;Light Detection and Ranging&#xff0c;LiDAR&#xff09;&#xff0c;是一种发射激光&#xff08;可见光-近红外&#xff09;于被瞄准物体表面并记录反射光被信号接收器接收到的时间以测定距离的方法。激光雷达通过以下公式确定物…

基于springboot酒店管理系统

酒店管理系统 552酒店管理系统 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;…