Vivado IPI 为 Aurora 设计开放 FPGA 共享资源
赛灵思的 IP Integrator 工具可帮助您改善设计输入生产力和多核 Aurora 设计的资源优化。
作者:
K Krishna Deepak
赛灵思高级设计工程师
kde@xilinx.com
Dinesh Kumar
赛灵思高级工程经理
dineshk@xilinx.com
Jayaram PVSS
赛灵思高级工程经理
jayaram@xilinx.com
Ketan Mehta
赛灵思高级IP产品经理
ketanm@xilinx.com
客户在必须由单个 FPGA 实现的大型设计中使用多个知识产权 (IP) 实例时,面临的主要挑战之一是如何在整个系统中有效共享资源。赛灵思 Aurora 串行通信内核的共享逻辑特性使用户可以在多个实例中共享资源。Vivado 设计套件中的 IP Integrator 工具对于充分利用共享资源至关重要。
电子行业正快速转向高速串行连接解决方案,同时逐渐舍弃并行通信标准。行业标准串行协议具有固定的线路速率和确定的信道宽度,有时无法充分利用千兆位串行收发器的功能。
Aurora 是赛灵思的高速串行通信协议,一直在行业内非常受欢迎。当某些应用领域中的行业协议实现过程太过复杂或者太耗费资源时,Aurora 通常是首选方案。Aurora 能实现低成本、高数据速率的可扩展IP解决方案,可用于灵活地构建高速串行数据通道。
需要同时对线路速率和通道宽度进行扩展的高性能系统和应用正在期待将 Aurora 作为解决方案。此外,Aurora 还被应用于 ASIC 设计以及包含多块 FPGA 的系统(用背板传输千兆位的数据)中。Aurora 采用简单的帧结构,并具有协议扩展流量控制功能,可用于封装现有协议的数据。它的电气要求与产品设备兼容。赛灵思提供 Aurora 64b66b 和 Aurora 8b10b 内核,作为 Vivado 设计套件 IP 目录的一部分。
Vivado IP Integrator (IPI) 是用于复杂多核系统中资源优化的重要工具。就这一点而言,IPI 将帮助您充分利用 Aurora 64b66b 和 Aurora 8b10b 内核中的共享资源,尤其是“共享逻辑”特性。为了方便起见,我们重点介绍 Aurora 64b66b IP,同时您要了解类似技术也适用于 Aurora 8b10b 内核。
AURORA 的共享资源一览
图 1 是 Aurora 64b66b 内核的典型方框图。突出显示部分为时钟资源,例如混合模式时钟管理器 (MMCM)、BUFG 和 IBUFDS;以及千兆位收发器 (GT) 资源,例如 GT common 和 GT 通道,在图中标示为赛灵思 7 系列器件双路设计的 GT1 和 GT2。
图 1–用橙色突出显示的 Aurora 64b66b 内核中的共享资源
就像 Kintex-7 FPGA KC705 评估套件那样,典型 16 路 Aurora 64b66b 内核所需的时钟和 GT 资源已在表 1 中列出。
FPGA 中的时钟和 GT 资源取决于所选的器件和封装类型。多个 IP 内核经常要求在系统级使用资源。因此,必须要优化利用这些宝贵资源,以降低系统成本和功耗。
IPI 工具将内核作为顶层模块进行可视化;标准接口之间的连接现在更加直观和智能化,在有些情况下甚至可实现自动化。正确的设计规则检查被置入工具以及 IP 周围,以确保突出显示错误连接,以便设计人员在设计输入时发现它们。该工具能自动生成顶层封装文件以及调用正确的引脚级 I/O 要求,因此可帮助系统设计人员提高生产力。如果您已经设计了定制子模块,可以考虑
AURORA 资源共享
因为多款基于 GT 的赛灵思内核都支持共享逻辑特性,Aurora 内核可配置为“内核(主机)中的共享逻辑”或“实例设计(从机)中的共享逻辑”。当在系统级进行实例化时,两种配置的组合可支持在主机与从机之间共享时钟和 GT 资源。
对于需要使用共享逻辑特性的应用,手动建立多个 IP 之间的连接有可能会产生错误,并增加总的设计输入时间。借助工具进行设计输入是一种解决该问题的方法,而赛灵思的 IP Integrator 能游刃有余地完成这个任务。
依照赛灵思应用指南 1168,“针对 Vivado IP Integrator 打包定制 AXI IP”(XAPP1168) 对设计进行打包,并在 IPI 中使用子模块。
- 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)