【问题标题】:Xilinx Vivado: Block Design, Address Range of each module end pointXilinx Vivado:模块设计,每个模块端点的地址范围
【发布时间】:2019-03-20 04:49:23
【问题描述】:

考虑一个设计,其中 PS (Zynq ARM A9) 连接到多个外围设备,其寻址如下所示。

正如下面紫色突出显示的那样,为什么每个端点模块的最小可访问性(即使该模块是我自己的 IP)总是在 4 KB 的范围内?它与ARM处理器特定的东西有关吗?

我尝试将我自己的IP地址范围修改为一个较小的数字,如下所示,但它从来没有任何效果。

【问题讨论】:

    标签: xilinx vivado zynq


    【解决方案1】:

    根据PG059 AXI互连产品指南表3-9:AXI Crossbar Master接口相关参数下的注释,所有地址范围的大小必须是一个幂2,由2 ** Mmm_Aaa_ADDR_WIDTH 确定。

    由于你的设计中AXI-Interconnect的master很可能连接到PS系统的AXI4 GP Slave接口,所以Mmm_Aaa_BASE_ADDR大于等于12,即每个IP可以分配的最小地址范围如您的图片所示,核心至少为 4KBytes (4096)。

    从设计的角度来看,如果您没有用完内存空间来分配给您的 IP 内核,那么更大的范围可能会更好,因为它减少了 AXI 互连中比较所需的位,从而降低了硬件资源消耗,并且可能会提高速度(可实现更快的 AXI 时钟)并在时序约束的情况下更轻松地布局和布线。

    【讨论】:

      【解决方案2】:

      除了 TWang 发布的答案之外,我还想指出,用户分配地址范围的能力取决于起始地址,因此结束地址不会越过(或者换句话说,不会结转)到下一点。

      可以看出,如果将偏移地址赋值为0x40020000,则可以将范围设置为128K,即0x40020000到0x4003FFFF。

      我想这是一种管理内存的方法,这样就不会发生疯狂的行为。

      我不确定这是 Xilinx 的设计意图还是 ARM 处理器架构的规范。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 2023-03-20
        • 2018-11-25
        • 1970-01-01
        • 2011-02-08
        • 2016-09-26
        • 1970-01-01
        相关资源
        最近更新 更多