描述
我在AC7t1500设计中使用NoC接入点(NAP)。 小憩的编号方式如何,以便我可以设置放置约束,并通过NoC向NAP发送命令?
回答
无论是在ACE的PDC文件中使用放置约束,还是在绑定语句中为NAP设置位置以进行仿真,NAP的编号方式都相同。 小憩使用(列,行)的坐标来指定位置。
- 列–列的编号为1到10,其中1位于设备的西侧,而10位于设备的东侧
- 行–行编号为1到8,其中1在设备的南端,8在设备的北端
下图显示了AC7t1500中NAP的编号以及示例位置:
数字: AC7t1500的NAP编号
在ACE中的位置
如果在ACE中指定NAP的位置,建议的方法是在PDC文件中指定位置。以下是如何设置上图所示NAP的示例。
PDC文件中的NAP放置
# place blue 小憩 (AXI slave)
# col=3 row=3
set_placement -fixed {i:i_nap_blue.i_nap_slave} {s:x_core.NOC[3][3].logic.noc.nap_s}
# place green 小憩 (AXI slave)
# col=6 row=5
set_placement -fixed {i:i_nap_green.i_nap_slave} {s:x_core.NOC[6][5].logic.noc.nap_s}
# place yellow 小憩 (AXI master)
# col=10 row=8
set_placement -fixed {i:i_nap_yellow.i_nap_master} {s:x_core.NOC[10][8].logic.noc.nap_m
模拟中的位置
在模拟NAP时,用户通过testbench中的bind语句设置NAP的位置。以下是如何使用bind语句设置上图所示NAP的示例。
小憩在绑定语句中的放置
// Blue 小憩 AXI slave 小憩 at col=3, row=3
`ACX_BIND_NAP_AXI_SLAVE(DUT.i_nap_blue.i_nap_slave,3,3);
// Green 小憩 AXI slave 小憩 at col=6, row=5
`ACX_BIND_NAP_AXI_SLAVE(DUT.i_nap_green.i_nap_slave,6,5);
// Yellow 小憩 AXI master 小憩 at col=10, row=8
`ACX_BIND_NAP_AXI_MASTER(DUT.i_nap_yellow.i_nap_master,10,8);
在AXI命令中解决NAP
如果要向NAP发送AXI命令,则用户需要使用NAP坐标来指定地址。使用相同的(列,行)格式,但是为了节省位,(X,Y)的编号变为(X-1,Y-1)。下面显示了NoC用于寻址NAP位置的全局地址空间。
表: 小憩的地址映射
地址位 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | … | 0 | |
目的地 小憩 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 小憩栏 | 小憩行 | 内存地址 |
当向黄色AXI主NAP发送命令时,用户会将位[41:28]设置为{7'b0001000,4'b1001,3'b111}。请注意,列设置为9,行设置为7,分别为10-1和8-1。