在Vivado下如何判断芯片是多die芯片-关于SSI的多方面解答

news/2024/7/27 11:39:48

1. 什么是SSI芯片?
SSI是Stacked Silicon Interconnect的缩写。SSI芯片其实就是我们通常所说的多die芯片。其基本结构如下图所示。可以看到SSI芯片的基本单元是SLR(Super Logic Region),也就是我们所说的die。SLR之间通过Interposer“粘合”在一起。每个SLR可看做一片小规模FPGA。

 

2. 如何从芯片型号上判断FPGA是否是多die芯片?
在芯片选型手册上,有如下图所示说明,根据图中红色方框标记可判断该芯片是否是SSI芯片。

 

3. UltraScale和UltraScale+系列有哪些芯片是SSI芯片?
总的来说,UltraScale+大部分都是多die芯片,如下图所示。图中还可以看到每个芯片所包含的SLR的个数以及每个SLR的大小。SLR的大小以时钟区域(Clock Region)衡量,例如,VU5P有两个SLR,每个SLR的宽度为6,高度为5,所以共有6x5也就是30个Clock Region。同时,还可以看到每个SLR的大小是一致的。

 

图片来源:Table 19,ds890

4. 在Vivado下如何判断芯片是多die芯片?
只要获知芯片的具体型号,在Vivado Tcl Console中执行如下图所示命令即可获得该芯片所包含的SLR的个数。例如,对于XCVU5P,属性SLRS的返回值为2,说明该芯片有两个SLR,故其是多die芯片;而对于XCVU3P,返回值为1,说明该芯片只有一个SLR,故其是单die芯片。

 

5. 多die芯片的每个SLR地位一样吗?
多die芯片的每个SLR其结构基本是一致的,都包含CLB、Block RAM、DSP和GT等。但这些SLR的地位是不一样的。这其中只有一个SLR是Master SLR。通过如下图所示的命令可获取Master SLR(需要在打开的工程中或DCP中执行该命令)。通常SLR0为Master SLR。用于配置FPGA的电路、DNA_PORT和EFUSE_USER只存在于Master SLR中。

 

6. SLR之间是如何互连的?
这是多die芯片设计中的一个重要问题。SLR之间通过专用布线资源SLL(Super Long Line)互连。SLL的个数是有限的。以XCVU5P为例,可通过如下命令获取SLL的个数。这在设计初期是非常重要的。需要根据此数值评估跨die网线个数是否合理。跨die网线过多很可能造成布线拥塞,进而影响时序收敛。

 

7. 跨die时钟需要特殊处理吗?
对于SSI器件,Interposer上分布了专用的全局时钟走线,因此,对于跨die时钟并不需要特殊处理,同时该时钟也不会占用SLL。

8. Block RAM和DSP48能否跨die级联?
以DSP48为例,其有专门的级联端口,例如PCOUT/PCIN。因此,相邻的两个DSP48级联时,会使用专用的级联布线资源。但是,这种布线资源仅限于die内。类似地,Block RAM、Carry Chain等在die内可使用固有的级联布线资源。

9. 对于多die芯片,如何评估资源利用率?
器件选型阶段需要根据设计规模选择合适的芯片。这个阶段,需要根据整个设计的资源利用率确定芯片规模。一旦选定SSI器件,就要及早考虑模块划分,也就是如何将设计分配到每个die内,使每个die的资源利用率尽可能平衡,此时就要考虑每个die的资源利用率,避免出现某个die某一资源利用率过高以至于出现拥塞,而另一个die该资源利用率偏低的情形。这一工作要在设计初期完成,本质上就是要设计好合理的数据流,从而达到两个目的:每个die的资源利用率比较均衡;跨die网线个数合理。

原文链接:https://blog.csdn.net/Pieces_thinking/article/details/119305213


http://lihuaxi.xjx100.cn/news/839028.html

相关文章

拒绝盲目自学!完整Java学习路线图,全面对标阿里P5-P8职级实现弯道超车

前言 对于大部分的程序员来说,清晰地规划自己的职业发展并不是一件容易的事情。作为一个曾经底子比较差,从底层摸爬滚打多年走过来的程序员,在这里分享一下对我帮助很大的一份宝典,希望同行们能快速掌握这些技术,直接…

1月榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年1月飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站UP主。飞瓜…

你会用 TypeScript 的条件类型吗?

我们可以使用 TypeScript 中的条件类型来根据逻辑定义某些类型,就像是在编写代码那样。它采用的语法和我们在 JavaScript 中熟悉的三元运算符很像:condition ? ifConditionTrue : ifConditionFalse。我们来看看他是怎么工作的。 TypeScript 的条件类型…

glib实践:GAsyncQueue使用方法

前言 这是一个使用GAsyncQueue替代的sem_t的实验。 g_async_queue_pop 在GAsyncQueue *queue中数据为空时,阻塞线程,符合sem_wait的用法。 g_async_queue_push 可以用于平替sem_post。 g_async_queue_new 可以用于平替sem_init 一 函数介绍&#xff…

关于 ulimit 和file-max 对文件打开数限制实验

/proc/sys/vm/max_map_count 限制一个进程可以拥有的VMA(虚拟内存区域)的数量 /proc/sys/kernel/pid_max 系统最大进程数量脚本 创建文件脚本 i0 while [ $i -lt 100000 ] ; dotouch ./filedir/f_$io_file./filedir/f_$iecho "$o_file"echo "file$i" >…

Linux系统之cuda 11情况下如何配置pytorch 10.2

由于目前pytorch1.8.2只能支持到10.2的版本,但ubuntu最新的系统驱动直接支持了cuda 11.4, 并且cuda tooklit支持的默认下载也是11.0。1、确认NVIDIA驱动安装lspci|grep NVIDIA1. 需要先降低cuda tooklit的版本(卸载新版本)cuda-uninstaller in /usr/loca…

计算机组成原理:计算机系统的基本组成

文章目录计算机系统的基本组成背景知识计算机硬件计算机系统的基本组成 背景知识 冯诺依曼体系结构基本特点: (1)计算机由运算器、控制器、存储器、输人设备和输出设备五大部件组成。 (2)采用存储程序的方式,程序和数据存放在同一存储器中&#xff0…

测牛学堂:软件测试python进阶之变量深入理解

变量的深入学习 我们在平时开发过程中,了解到变量是存储数据的即可。但是其实他的底层原理还是比较复杂的。我们可以做一个简单的了解,对我们理解编程,或者以后解决bug,面试,都是有帮助的。 1我们在定义一个变量去存数…