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

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

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

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

相关文章

解决docker目录内存不足扩容处理

当我们使用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是虚拟的,而是实实在在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往…

Spring Boot房屋租赁平台:现代化解决方案

1 绪论 1.1 研究背景 中国的科技的不断进步,计算机发展也慢慢的越来越成熟,人们对计算机也是越来越更加的依赖,科研、教育慢慢用于计算机进行管理。从第一台计算机的产生,到现在计算机已经发展到我们无法想象。给我们的生活改变很…

OpenHarmony标准系统mipi摄像头适配

OpenHarmony标准系统mipi摄像头适配 本文档以rk3568为例,讲述如何在OpenHarmony 标准系统rk设备上适配mipi摄像头。 开发环境 OpenHarmony标准系统4.1rrk3568设备摄像头ov5648,ov8858 文档约定:4.1r_3568为OpenHarmony标准系统源码根目录 1.适配准备:得…

DAMODEL丹摩智算平台实践CogVideoX

文章目录 前言 一、平台账号注册并登录 二、部署CogVideoX (一)简介 (二)部署 1. 创建实例 2. 配置环境和依赖 3.预制模型与配置文件 三、开始运行 总结 前言 该文章主要记录DAMODEL丹摩智算平台实践过程与心得体会&…

virtualbox中的网络模式,网络设置,固定IP

virtualbox关于网络设置的文档:https://www.virtualbox.org/manual/topics/networkingdetails.html#networkingdetails DHCP Dynamic Host Configuration Protocol:动态主机配置协议,是专门用来给网络中的节点分发IP地址,确保每…

如何开发数字药店与医保购药APP:技术架构与实现细节

本文将深入探讨数字药店与医保购药APP的技术架构及其实现细节,帮助开发者更好地理解该领域的技术需求。 一、技术架构概述 数字药店与医保购药APP的技术架构通常可以分为以下几个层次: 1.前端层: -用户界面 -用户体验 2.中间层&#xff…

尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

目录: 自动化持续集成 (1)环境准备 (2)初始化 Jenkins 插件和管理员用户 (3)工作流程 (4)配置 Jenkins 构建工具 自动化持续集成 互联网软件的开发和发布&#xf…

善康医药上市梦终止:持续亏损1.77亿现金流为负,预估值超50亿存疑

《港湾商业观察》施子夫 6月29日,深圳善康医药科技股份有限公司(以下简称,善康医药)披露第一轮审核问询函的回复意见。 9月24日,因善康医药及其保荐人国金证券股份有限公司撤回发行上市申请,上交所终止科…

微信小程序开发第八课

一 公告 1.1 微信小程序端 #js###const api require("../../config/settings.js") Page({data: {noticeList: [{title: 公告标题1,create_time: 2024-04-25,content: 公告内容描述1,公告内容描述1,公告内容描述1。, // 可以根据实际情况添加…

Spring 核心

Spring 核心 这篇文章,我们换个思路来学习,来践行一下以始为终,以面试题为引来重温一下Spring,毕竟孔子曾说,“温故而知新,可以为师矣。” ,可以通过这个链接看看有哪些常见的面试题 Spring 面…

架构师案例思路:架构设计(附真题)

目录 案例题目规则 架构设计案例分析 知识总纲(理解并背诵) 架构风格(理解并背诵) 质量属性(理解并背诵) 性能 可靠性 可用性 可修改性 功能性 可变性 互操作性 架构评估(理解并背诵) 具体架构风格(理解) 层次架构 两层C/S架构 三层C/S架构 B/S架构…

使用 Nuxt Kit 的构建器 API 来扩展配置

title: 使用 Nuxt Kit 的构建器 API 来扩展配置 date: 2024/9/24 updated: 2024/9/24 author: cmdragon excerpt: 摘要:本文详细介绍了如何使用 Nuxt Kit 的构建器 API 来扩展和定制 Nuxt 3 项目的 webpack 和 Vite 构建配置,包括扩展Webpack和Vite配置、添加自定义插件、…

简单学习 原码反码补码 学会了你才是真正的程序员了

一、简单介绍原码反码补码 首先我们需要知道的是原码反码补码是一个人为的行为,因为机器看的都是所谓的补码,这个反码只是作为补码的到原码也就是人能看懂的跳板,所以计算机无论是计算器里面的东西还是他底层运行的二进制代码都是补码&#x…

思科认证难考吗?思科认证备考方法与技巧分享

思科认证在IT行业具有广泛的认可度,表明持有者拥有专业的技术能力水平,对未来的升职加薪有很大帮助。但在考思科认证之前很多人都担心“思科认证难考吗”这个问题,实际上这主要看你考的认证等级,ccna、ccnp等。此外,考…

代码随想录算法day40 | 动态规划算法part13 | 647. 回文子串,516.最长回文子序列

647. 回文子串 动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。 力扣题目链接(opens new window) 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的…

2024/9/25 英语每日一段

“Banning phones or social media is something parents often do as a form of punishment, me included. But in doing so you make the phone even more important, taking on this totemic importance in your child’s eyes,” she says. Goodin says that young people …

基于springboot+vue超市管理系统

基于springbootvue超市管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本无人超市管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

CNN网络训练WISDM数据集:模型仿真及可视化分析

卷积神经网络(CNN)因其强大的特征提取能力和深度学习架构而备受推崇,CNN在处理图像数据时展现出的卓越性能,使其成为解决各种视觉识别任务的首选工具。WISDM数据集是一个广泛用于运动估计研究的基准数据集,它包含了多个…

腾讯邮箱上传附件卡、慢、无法上传问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2,看是否可以正常访问。(能打开下载就表示可以正常访问) 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…

(14)关于docker如何通过防火墙做策略限制

关于docker如何通过防火墙做策略限制 1、iptables相关问题 在Iptables防火墙中包含四种常见的表,分别是filter、nat、mangle、raw。 filter:负责过滤数据包。 filter表可以管理INPUT、OUTPUT、FORWARD链。 nat:用于网络地址转换。 nat表…