当前位置: 首页 > news >正文

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

0 引言

随着当今 SoC 设计规模的快速膨胀,仅仅靠几 颗当代最先进的 FPGA 已经无法满足原型验证的需求。简单的增加系统的容量,会遇到系统时钟复位同 步,设计分割以及高速接口和先进 Memory控制器 IP 验证等多重困难。此时,一个商用成熟的能解决 以上多重挑战的通用高密原型验证系统方案显得十 分有必要。 本文主要分析了用户在进行大规模 SoC 设计原 型验证过程中在全局时钟及复位同步,大规模设计 分割以及高速接口和先进 Memory 控制器 IP 验证等 方面遇到的困难,并提出了相应的解决方案来帮助 用户来克服这些困难。

 

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

1.1 全局时钟及复位方案挑战

全局时钟和复位的解决方案是构建一个大规模复杂 SoC 原型验证系统首先要考虑的问题。 SoC 原型验证系统需要保证系统的全局时钟和复位能够 同步的送到原型验证系统的每一个 FPGA 节点,这 是大规模 SoC 原型验证系统能够正常工作的先决条 件。随着用户的 SoC 设计规模的增大,对原型验证系统的全局时钟和复位的同步方案的要求也会变得复 杂。

1. 如果用户的设计规模用单台FPGA 原型验证平台就可以容纳,那么原型验证系统的全局时钟和 复位同步的实现难度会比较简单,只需要实现单台 平台上的多颗 FPGA 的时钟复位同步即可。

2. 如果用户的设计规模再大一些,需要用多台 FPGA 原型验证平台组成一套验证系统,那么原型 验证系统的全局时钟和复位同步的实现难度就会高 一些,需要实现多台验证平台上的多颗 FPGA 的时 钟复位同步。

3. 如果用户的设计规模进一步扩大,需要用数十台甚至上百台 FPGA 原型验证平台才能组成一套 验证系统,那么原型验证系统的全局时钟和复位的 同步的实现会变得十分复杂,需要用时钟复位模块 级联的方式实现大量平台上的多颗 FPGA 的时钟复 位同步。

1.2 大规模设计分割挑战

由于大规模复杂 SoC 设计规模庞大,把设计映 射到多个 FPGA 组成的网络(也称设计分割)是大规 模原型系统实现过程中必不可少的重要环节。然而 大规模设计分割也给用户的原型验证带来了不少的难题:

1. 首先要解决的是设计综合时间长的问题。一个设计规模达到几亿门甚至数十亿门的大规模 SoC 设计,如果采用整个设计先综合,再分割的方式,设 计综合的时间会非常的漫长,一次综合流程就要花 费数天甚至数周的时间。遇见设计规模特别大的设 计,甚至会出现编译软件或服务器崩溃的情况。显 然,面对大规模 SoC 设计用户需要采用并行编译的 方式。

2. 其次,当设计原始的 SoC 设计分割到多颗 FPGA 中,原型设计的全局时钟树处理也是一个难 题。用户的 SoC 设计全局时钟树往往很复杂,需要怎 样处理来保证复杂的全局时钟树在每颗 FPGA 上同 步的实现?

3. 将一个大规模 SoC 设计分割到多颗 FPGA 时,FPGA 之间的互连信号往往有成千上万根,FPGA 的 IO 管脚数远远无法满足互连信号数的需求。 人工写互连接口 Wrapper 设计,进行 FPGA 之间互 连信号的管脚复用是吃力不讨好的工作。需要有自 动化的管脚复用的方案帮用户减轻负担,提高效率。

1.3 高速接口和先进 Memory 控制器 IP 验证挑战

大规模复杂 SoC 设计原型验证时一些高速接 口,如 PCIe Gen3/Gen4 接口,对应的 PCIe 控制器 IP 在 FPGA 里跑的速度都很低,无法对接外部实际 PCIe 主机或者设备。另外,一些先进的 Memory 控制 器 IP, 如 DDR5, LPDDR4/5, HBM2/3 缺少 FPGA 厂 商提供的 PHY 解决方案,无法在 FPGA 原型验证系 统中运行起来。遇到这些棘手的问题,有些用户甚至 选择放弃这些高速接口及 Memory IP 在原型验证系 统中的验证,但也因此会给用户的 SoC 设计原型验 证带来风险。

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

为了满足大规模 SoC 设计在原型验证系统领域 的复杂需求,用户迫切需要有一系列面向大规模SoC 设计的高密原型验证系统的软硬件通用解决方 案来帮助用户在系统时钟复位同步,设计分割及高 速接口及先进 Memory 控制器 IP 验证等方面取得重 要突破,使得用户能够解决大规模 SoC 原型验证面 临的关键困难,降低项目风险。

2.1 大规模设计全局时钟及复位解决方案

一个通用的高密原型验证系统需要能做到根据 用户的 SoC 设计规模灵活的提供适合的全局时钟及 复位方案。

1. 如果用户的设计规模用单台 FPGA 原型验证 平台就可以容纳,用户的全局时钟复位方案则只需 要保证单个 FPGA 原型验证平台的全局时钟和复位 可以同步的送到单台平台的每颗 FPGA 上即可。在 这种需求背景下我们可以考虑用下面的方案来设计 全局时钟及复位的功能:

● 单台 FPGA 原型验证平台的全局时钟和复 位的设定和操作需要能够通过软件远程实现,以方 便用户使用。

● 在单台 FPGA 原型验证平台上可实现多个 可编程全局时钟,使得用户可以根据设计需求灵活 的设置所需的全局时钟频率。

● 可编程的全局时钟和全局复位通过 1 推多 的驱动芯片以及等长的板级走线来保证全局时钟和 全局复位同步的传送到每一颗用户 FPGA。 除了以上满足单个原型验证平台的全局时钟和 复位基本需求之外,我们还需要考虑到将来当用户 设计规模进一步扩大时,现有的全局时钟和复位方 案的可扩展性:

● 单台 FPGA 原型验证平台除了使用本平台 的本地时钟复位源之外,也可以接受来自外部的时 钟复位源,以支持全局时钟复位的输入级联扩展。本 地的时钟复位源和外部时钟复位源可以在软件的控 制下通过选择器来切换。

● 单台 FPGA 原型验证平台的每一个用户 FPGA 输出的时钟复位源以及外部输入的时钟复位源可以在软件的控制下通过多路选择器来输出到该 FPGA 原型验证平台的外部时钟复位输出口,以支 持全局时钟复位的输出级联扩展。 图 1 就是一个具有可扩展性的基于单台 FPGA 原型验证平台的全局时钟同步系统架构图(全局复 位系统也可采用类似的架构来实现)

图一: 单个原型验证平台的全局时钟同步系统

2.如果用户的设计规模需要用多台FPGA原型验证平台来组成一套验证系统,就需要一种能实现多个FPGA原型验证平台上的FPGA时钟复位同步的解决方案。

比较常用的一种支持多台FPGA原型验证平台的FPGA时钟复位同步的方案是采用一个外置的全局时钟复位模块(CLKM)将全局时钟和复位通过等长的时钟线缆同步的送到多个FPGA原型验证平台(FPP)。FPP通过外部时钟输入接口接收外部送来的全局时钟复位源再同步的传送到FPP上的每一颗FPGA。其全局时钟复位同步系统组网如下图所示:

图二: 基于全局时钟模块的多个FPP全局时钟同步系统

这个方案的优点是单套FPP的全局时钟复位方案的实现简单,直接采用图一中的全局时钟复位方案接入CLKM送来的外部时钟复位源即可完成多台FPP的全局时钟复位同步。

但是由于CLKM上的时钟驱动芯片的驱动能力有限,配套的高性能时钟线缆长度最长也只有1米左右,这样的全局时钟复位同步系统只适合支持设计规模小于十台FPP的系统。对于更大规模的原型验证系统,则需要更加复杂的解决方案。

3.当用户的设计规模进一步增大,需要用数十台甚至更多的FPP平台来组成一套验证系统,此时就需要用级联的方式来实现大量平台上的多颗FPGA的时钟复位同步。这种情况下,用户可以使用多个CLKM采用Master/Slave的方式级联以支持更大规模系统的时钟复位同步。设为Master的CLKM产生全局时钟和复位,通过等长的时钟线缆下发给多个下级Slave CLKM。再由下级Slave CLKM下发全局时钟和复位给多个下游FPP。其中Master CLKM的时钟复位源既可以来自于本身的可编程时钟芯片也可以来自于任意一个FPP输出的反馈时钟。下面是用CLKM进行全局时钟复位级联的拓扑结构图:

图三: 基于全局时钟模块级联的全局时钟同步系统

这个方案通过分层级联的方式,可以实现几十个甚至上百台FPP的全局时钟组网,为几十亿门级的超大规模原型验证系统的全局时钟复位架构提供了解决方案。这个方案的技术难点是,由于每个CLKM上用到的1推多时钟驱动芯片的延迟会有微小的偏差,通过CLKM的分层级联会带来时钟延迟的偏差积累,会导致最后送到每个FPGA的全局时钟同步产生不可忽视的偏差进而造成用户的超大规模原型系统无法完成全局时钟同步。为了解决这个问题,我们可以在Master/Slave CLKM模块之间增加反馈时钟线及带时钟相位反馈校准的PLL芯片以实现多级CLK模块之间的时钟相位校准。

当用户有了支持全局时钟模块级联及时钟相位校准的通用解决方案,即使用户的设计规模不断的的扩大,我们也可以通过分层的方式,对用户的全局时钟进行分级校准,以保证超大规模原型系统能够实现全局时钟及复位的同步。

2.2 大规模设计分割方案

设计分割往往是大规模复杂 SoC 设计用户在进 行原型验证系统验证时遇到的最大的挑战。要做好 设计分割需要处理好大规模设计并行编译,全局时 钟树复制,自动化管脚复用,系统时钟约束以及系统 时序分析等多方技术难点。

2.2.1 大规模设计综合

一个设计规模达到几亿门甚至数十亿门的 SoC 设计,如果将整个设计映射在 FPGA 里做设计综合, 综合的时间往往要长达数天甚至数周,这对于在原 型验证阶段经常需要修改代码,重新综合设计的用 户是无法接受的。显然,面对大规模 SoC 设计用户需 要采用将整个设计分块并行综合的方式来进行。

a)一种方式是在大规模 SoC 设计的顶层 RTL 下例化子模块黑盒。将设计规模较大,综合时间较长 的一些子模块黑盒化,这样可以大大缩短黑盒化之 后的顶层设计的综合时间。同时,被设为黑盒的多个 设计子模块也可以被分发到多个服务器上进行并行 的综合。

● 这种方式的优点是使用效果明显,门槛低。 用户无需使用特别的软件和技术,只需要工程师花 一些时间将选定的子模块设置为黑盒进行并行编译,就可以大大缩短整个大规模设计的综合时间。

● 缺点是用户需要对大规模 SoC 设计的子模 块资源占用情况比较了解,清楚哪些模块适合设为 黑盒进行并行综合,哪些不需要。另外,用户手动修 改代码设置子模块黑盒是一个费时费力的工作,一不小心就会出错。

● 一些自动化的分割软件,能够帮助用户将选 定的子模块自动设成黑盒,从而达到事半功倍的效 果,省去了工程师手动修改代码进行子模块黑盒化 的繁琐工作,避免了人工修改代码出错的情况发生。 自动化的分割软件支持 LSF/SLURM 功能,能帮助用 户高效的在多个 HPC 上进行多个子模块的并行综 合。

b)另一种方式是使用基于 RTL 分割工具对大 规模 SoC 设计进行 RTL 级分割。RTL 分割工具对读 入的大规模 SoC 设计进行设计分析和资源估算,再 基于设计分析和资源估算的结果对用户的大规模 SoC 设计进行分层分割,将基于 RTL 的大规模 SoC 分割为以目标 FPGA 为顶层的多个 RTL 模块。RTL 分割完成之后,用户可以调用综合工具对分割后的 FPGA 顶层 RTL 模块进行并行综合,因而大大缩短 整个设计的综合时间。

● 这种方式和第一种方式相比的优点是采用 成熟的 RTL 分割工具,帮助用户先完成设计的 RTL 级切割。减少了用户手动进行设计分割和设置黑盒 的时间,工作量与风险。

● 不足之处在于基于 RTL 级分割的资源估算 的精准度以及 RTL 模块的切割边界的优化效果不 如网表级分割。 c)一些自动化的分割软件,能够将 RTL 级分割 和网表级分割的优点结合起来以帮助用户在节省综 合时间的同时取得更好的设计分割结果:

● 在第一阶段使用 RTL 级分割技术将用户的 设计初步分割到多个 FPGA,再将分割后的多个 FPGA 顶层 RTL 设计并行综合,以帮助用户节省大 量的综合时间。

● 在第二阶段使用网表级分割技术将初步分 割的模块进行基于时序驱动的二次优化,使得分割 模块间的资源分配更加合理,切割边界更加精准,以 帮助用户取得更合理高效的设计分割结果。

……

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

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

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

相关文章:

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

0 引言 随着当今 SoC 设计规模的快速膨胀,仅仅靠几 颗当代最先进的 FPGA 已经无法满足原型验证的需求。简单的增加系统的容量,会遇到系统时钟复位同 步,设计分割以及高速接口和先进 Memory控制器 IP 验证等多重困难。此时,一个商用…...

新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)

Triaxis 旋转和线性位置传感器IC: MLX90372GVS-ACE-103 MLX90372GVS-ACE-108 MLX90372GVS-ACE-301 MLX90372GVS-ACE-200 MLX90372GVS-ACE-208 MLX90372GVS-ACE-303 MLX90372GVS-ACE-300 MLX90372GVS-ACE-350 MLX90372GVS-ACE-100 MLX90372GVS-ACE-101 MLX90372GVS-…...

JAVA毕业设计178—基于Java+Springboot+vue的智能家具管理系统(源代码+数据库+万字论文)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的智能家具管理系统(源代码数据库万字论文)178 一、系统介绍 本项目前后端分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户&#xff1…...

掌握 Python 异步上下文管理器

在现代编程中,异步编程已成为处理并发任务的重要手段,特别是在 I/O 密集型应用中。Python 的 asyncio 库提供了强大的工具来编写异步代码。在异步编程中,上下文管理器(context manager)扮演着资源管理的关键角色。本文…...

当你问AI“有点烦”

感到烦躁是很正常的情绪反应,生活中总会有各种各样的压力和挑战让我们感到不安或不舒服。以下是一些建议,希望能帮助你缓解烦躁的情绪: 深呼吸:尝试进行几次深呼吸,这有助于放松身体和减缓心跳,让你的思维从…...

音视频入门基础:AAC专题(3)——AAC的ADTS格式简介

音视频入门基础:AAC专题系列文章: 音视频入门基础:AAC专题(1)——AAC官方文档下载 音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件 音视频入门基础:AAC…...

高可用web集群面经:集群搭建、nginx+keepalived高可用、prometheus+zabbix监控、nfs+dns

高可用web集群面经:集群搭建、nginxkeepalived高可用、prometheuszabbix监控、nfsdns 高可用web集群面经飞书在线链接🔗: (https://h03yz7idw7.feishu.cn/wiki/Ucj1wWZCGiqR68kripMcC2CLnvd)...

vue3+ts+supermap iclient3d for cesium功能集合

会把各项功能链接放在这 1.vue3配置supermap iclient3d for cesium vue3中使用supermap icilent3d for cesium_npm 引入supermapgis-CSDN博客 2.功能 2.1加载天地图,加载地形,夸大地形 supermap icilent3d for cesium加载地形并夸大地形-CSDN博客 …...

【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题

问题现象 配置https之后 IE打不开登陆页面 Uclient没有问题。 jvm控制台 显示如下 basic: 已调整小应用程序大小且已将其添加到父容器中 basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 170755 us, pluginInit dt 722531 us, TotalTime: 89328…...

ROS 设置dhcp option 6 多个地址格式

ROS routeOS 手工设置 dhcp 服务 option 6 多个dns 地址格式。字符串方式...

Python 二级考试

易错点 电脑基础知识 定义学生关系模式如下:Student (S#, Sn, Ssex,class,monitorS#)(其属性分别为学号、学生名、性别、班级和班长学号) 在关系模式中,如果…...

Linux笔记---简单指令

1. 使用的环境 博主使用的是华为云服务器xshell终端的方式学习的,因为据说这样的方式比较接近以后的工作环境。 其中云服务器安装的是Ubuntu操作系统(以Linux为内核,适合新手学习Linux的一个版本) 这里的云服务器不一定使用华为的,但是我在…...

软考无损连接判断

如何判断是否为无损连接,要看能否还原回最开始的关系模式 最开始的关系模式 U{A,B,C} 函数连接 F{A -> B},这个函数连接的意思就是A可以推导出B 首先从P1开始判断,{ AB,BC } C不能通过函数依赖推导出来…...

微服务-- Sentinel的使用

目录 Sentinel:微服务的哨兵 生态系统景观 sentinel与spring cloud Hystrix 对比 Sentinel 主要分为两部分 Sentinel安装与使用 Sentinel的控制规则 流控规则 流控规则的属性说明 新增流控规则 关联流控模式 SentinelResource注解的使用 SentinelResou…...

TS React 项目中使用TypeScript

在 React 项目中使用 TS 创建新项目 在现有项目中添加 TS 创建新项目 命令:npx create-react-app my-app --template typescript 说明:在命令行中,添加 --template typescript 表示创建支持 TS 的项目 项目目录的变化: 在项目…...

【JavaEE】IP协议 应用层协议

🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 🕶️一.IP地址 IP协议(Internet Protocol)是TCP/IP协议族中最核心的协议之一,它定义了数据包在网络中传输的标准…...

CRM如何助力科技服务机构突破业务瓶颈?

在当今知识经济时代,科技服务机构面临着复杂的业务环境和多样化的客户需求。客户管理系统(CRM)在这个领域的应用正逐渐成为机构提升运营效率、优化客户服务的关键。 科技服务行业的业务特点 知识产权代理行业具有高度的专业性和复杂性。其业…...

牛啊,GitHub 代理加速图文教程

大家好,众所周知,GitHub 在国内访问速度堪忧,经常出现访问不了的情况,如果我们去 clone 代码,网速非常差。今天教大家如何给 GitHub 进行加速。 要用到我开发的开源项目 Cloudflare Workers Proxy,它是一个…...

基于扣子(Coze)打造第一个智能体——个性化对话机器人

文章目录 一,智能体体验二,动手打造一个自己的智能体1,主页点击创建机器人1.1 创建一个新的机器人1.2 修订Bot基础信息1.3 工具编排信息修订人设和回复逻辑、增补开场白等 2,使用插件优化机器人3,使用工作流优化机器人…...

算法-深度拷贝链表(138)

深度拷贝一个链表可以分以下几个步骤: 步骤 1:插入新节点 目标:在每个节点后面插入一个复制的节点。步骤: 遍历整个链表。对于每个节点 current,创建一个新节点 newNode,其值为 current.val。将 newNode …...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...