Vivado IPI 为 Aurora 设计开放 FPGA 共享资源
依照赛灵思应用指南 1168,“针对 Vivado IP Integrator 打包定制 AXI IP”(XAPP1168) 对设计进行打包,并在 IPI 中使用子模块。
Aurora 的共享逻辑特性不仅可让用户在多个实例中共享资源,而且还能在相同 GT Quad 封装中使用 GT 通道,无需编辑 GT common、PLL、时钟以及相关模块。唯一的约束是“共享”内核的线路速率应该相同(允许存在谐波,只要您能接受其对时钟资源的影响即可)。
典型的共享逻辑设计在一个 Guad 中包含一个主机以及一个或多个从机实例。与大多数其它通信 IP 不同,Aurora不仅限于单个 Guad 共享。Aurora 内核的共享逻辑定义可扩展用于任意数量的受支持信道。
下面的一些实例展示了 Aurora 共享逻辑特性的应用情况。
多个单信道设计
单部 FPGA 中的多个单信道设计与多信道设计的不同之处在于前者需要通道绑定。我们可以直观地看到多个单信道设计所需的资源会在系统级线性增加。让我们考虑不同情况,并了解共享逻辑特性如何在每种情况下起作用。
我们首先从包含四条单信道的设计开始。通过实例化四个单信道 Aurora 内核,您可直接构建这类设计。如果我们实际执行该实现方案,会发现每个 Aurora 设计都有一个 GT common 实例;因此,该设计的布局和资源利用会遍及四个 GT Guad。这种方法消耗太多资源,不一定总是可行。
表 1–Kintex-7 FPGA KC705 评估套件上的时钟和 GT 资源利用率
为实现更好的布局以及在功耗和资源方面精心优化的解决方案,所选的四个 GT 应来自同一个 GT Guad。
如果没有共享逻辑特性,而是通过手动处理所生成的设计来满足该要求,需要花费很大精力。要想有效使用共享逻辑特性,您需要生成一个主机模式的 Aurora 内核以及其它三个从机模式的 Aurora 内核,如图 2 所示。另外,还有一些其它的系统级考虑因素,例如主机内核控制了进入从机内核的时钟,所以需要对内核复位。只有用相同的线路速率配置 Aurora 内核,才能立即实现这种配置和资源优化。表 2 定量地说明了在系统中为四个单信道设计使用共享逻辑特性所能实现的优势。
图 2–使用一个主机 Aurora 内核(左)和三个从机的共享逻辑设计
占用 12 个 GT 通道的设计
对于 7 系列 FPGA 而言,基于南北时钟的要求是如果从中间 Guad 中选择单个参考时钟源,其最多可服务 12 个 GT 通道。
让我们考虑下这种使用情况,其需要 12 个单信道设计使用尽可能少的时钟资源。
如果您将图 2 所示的“一个主机加三个从机”配置进行延伸,便可节省时钟资源。如果将这种 1+3 配置延伸为三个 Guad,那么设计一共需要六个差分时钟资源。不过,如果您选择让其中两个主机设计接受一个单端 INIT_CLK 和一个 GT 参考时钟,那么还能节省更多资源。这样我们可将该系统的差分时钟输入从六个减少至两个,从而节省 IBUFDS/IBUFDS_GTE2 资源需求(参见表 3)。设计中的 IBUFDS_GTE2 资源节省实际上还意味着可以节省外部时钟资源以及设计管脚。
表 2–在包含四条单信道的设计中使用共享逻辑所实现的资源利用率优势
此外,还可针对 MMCM 进行类似的优化。
表 3–在包含 12 条单信道的设计中使用共享逻辑功能所实现的资源优势
3X4 信道设计
假设需要 3 个四信道设计,如果没有共享逻辑特性,您可能要创建 3 个主机模式的四信道 Aurora 内核,然后对生成的设计进行手动处理,以获得最佳的时钟资源利用率。如果您能直接实现同样的结果呢?您可按图 3 所示对一个主机内核和两个从机内核进行定制,以实现此目的。
而更大尺寸(16 个或以上)的单信道 Aurora 设计就更加需要共享逻辑。有时候甚至需要 48 个单信道独立双工链路。允许的 Aurora单信道链路数量仅受所选器件的可用 GT 资源数量限制。在这种情况下,如果不有效利用共享逻辑特性,很难实现这类系统设计。
该设计覆盖 12 个 Guad,因此需要 2*12 个差分时钟资源,
- Xilinx Zynq使用HLS实现OpenCV的开发流程(03-13)
- 用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式视觉应用开发(03-06)
- Xilinx FPGA/Zynq设计中使用HLS实现OpenCV的开发流程 (02-26)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)