通过 IP integrator 选中多个 NoC site 时,不会在整个实现过程中遵循这些约束。
用户在 IP integrator 中选择 site 范围,NoC 编译器在存储器中能正确处理此范围,但问题是当约束写入存储器时,语法不受支持(它无法为单元提供 LOC 范围)。
解决方法:
在设计示例中,NoC 约束到 NoC X60Y0、X61Y0 和 X63Y0。
IP integrator 使用 LOC 生成设计约束:
set_property LOC NOC_NMU_HBM2E_X60Y0:NOC_NMU_HBM2E_X61Y0:NOC_NMU_HBM2E_X63Y0 [get_cells HBM00_AXI_nmu/*/*_INST]
综合与实现将忽略此规则:
[Common 17-69] Command failed: 'NOC_NMU_HBM2E_X61Y0:NOC_NMU_HBM2E_X62Y0:NOC_NMU_HBM2E_X63Y0' is not a valid site name.
为了绕过此限制,请使用 Pblock 流程来将 NoC 约束到特定 site:
create_pblock noc_pblock
resize_pblock noc_pblock -add {NOC_NMU_HBM2E_X60Y0:NOC_NMU_HBM2E_X61Y0 NOC_NMU_HBM2E_X63Y0:NOC_NMU_HBM2E_X63Y0}
add_cells_to_pblock noc_pblock [get_cells */axi_noc_0/inst/HBM00_AXI_nmu/*HBM00_AXI_nmu_0_top_INST/NOC_NMU_HBM2E_INST]
计划将在 Vivado 2023.2 中对此予以支持。