要确定内核的布局位置,需要以下两项信息:
- 硬件平台的每个 SLR 中的可用资源 (.xsa)。
- 每个内核所需的资源。
通过这两项信息,您将确定目标平台的每个 SLR 中可布局的一个或多个内核。
执行这些计算时请谨记,系统基础架构可以使用 10% 的可用资源:
- 如果内核必须跨 SLR 边界,则可以使用基础架构逻辑将内核连接到 DDR 接口。
- 在 FPGA 中,资源也用于信号布线。在 FPGA 中永远不可能使用 100% 的可用资源,因为信号布线也需要资源。
可用的 SLR 资源
在 Vitis 软件平台版本说明 中可找到各版本支持的各平台的每个 SLR 的可用资源。下表显示了目标平台示例。在此示例中:
- SLR 描述指明了哪个 SLR 包含静态区域和/或动态区域。
- 其中列出了每个 SLR 可用的资源(LUT、寄存器、RAM 等)。
这使您能够确定每个 SLR 中有哪些资源可用。
区域 | SLR 0 | SLR 1 | SLR 2 |
---|---|---|---|
SLR 描述 | 器件底部;专属于动态区域。 | 器件中间;由动态和静态区域资源共享。 | 器件顶部;专属于动态区域。 |
动态区域 Pblock 名称 | pfa_top_i_dynamic_region_pblock _dynamic_SLR0 | pfa_top_i_dynamic_region_pblock _dynamic_SLR1 | pfa_top_i_dynamic_region_pblock _dynamic_SLR2 |
计算单元布局语法 | set_property CONFIG.SLR_ASSIGNMENTS SLR0[get_bd_cells<cu_name>] | set_property CONFIG.SLR_ASSIGNMENTS SLR1[get_bd_cells<cu_name>] | set_property CONFIG.SLR_ASSIGNMENTS SLR2[get_bd_cells<cu_name>] |
动态区域中可用的全局存储器资源 | |||
存储器通道;系统端口名称 | bank0 (16 GB DDR4) | bank1(16 GB DDR4,位于静态区域) bank2(16 GB DDR4,位于动态区域) |
bank3 (16 GB DDR4) |
动态区域中的大致可用互连结构资源 | |||
CLB LUT | 388K | 199K | 388K |
CLB 寄存器 | 776K | 399K | 776K |
块 RAM 拼块 | 720 | 420 | 720 |
UltraRAM | 320 | 160 | 320 |
DSP | 2280 | 1320 | 2280 |
内核资源
在System Estimate(系统估算)报告中可获取每个内核的资源。
完成硬件仿真或硬件运行后,在Assistant视图中会提供System Estimate报告。此报告的示例如下所示。
图 1. 系统估算报告
- FF 是指每个 SLR 的平台资源中记录的 CLB 寄存器。
- LUT 是指每个 SLR 的平台资源中记录的 CLB LUT。
- DSP 是指每个 SLR 的平台资源中记录的 DSP。
- BRAM 是指每个 SLR 的平台资源中记录的块 RAM tile。
此信息可帮助您确定每个内核的正确 SLR 分配。