打印

AXI总线,edk的bram在ise中生成bit文件出错

[复制链接]
11006|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
taogehao|  楼主 | 2013-6-5 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 taogehao 于 2013-6-5 17:28 编辑

使用PLB总线没问题,但是使用AXI的有问题,相同的设置,出错的部分在BMM文件。
使用PLB和AXI,edk都会生成一个 ***.BMM 文件,ise根据这个BMM文件重新生成一个 ***_bd.BMM文件用于生成bit文件。

PLB的 ***_bd.BMM内容如下:

///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0', ID 100, memory map.
//
///////////////////////////////////////////////////////////////////////////////

ADDRESS_MAP microblaze_0 MICROBLAZE 100

    ///////////////////////////////////////////////////////////////////////////////
    //
    // Processor 'microblaze_0' address space 'lmb_bram_combined' 0x00000000:0x00007FFF (32 KBytes).
    //
    ///////////////////////////////////////////////////////////////////////////////

    ADDRESS_SPACE lmb_bram_combined RAMB32 [0x00000000:0x00007FFF]
        BUS_BLOCK
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_0 RAMB32 [31:28] [0:8191] INPUT = lmb_bram_combined_0.mem PLACED = X3Y7;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_1 RAMB32 [27:24] [0:8191] INPUT = lmb_bram_combined_1.mem PLACED = X2Y7;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_2 RAMB32 [23:20] [0:8191] INPUT = lmb_bram_combined_2.mem PLACED = X3Y3;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_3 RAMB32 [19:16] [0:8191] INPUT = lmb_bram_combined_3.mem PLACED = X3Y4;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_4 RAMB32 [15:12] [0:8191] INPUT = lmb_bram_combined_4.mem PLACED = X3Y5;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_5 RAMB32 [11:8] [0:8191] INPUT = lmb_bram_combined_5.mem PLACED = X3Y6;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_6 RAMB32 [7:4] [0:8191] INPUT = lmb_bram_combined_6.mem PLACED = X3Y8;
            XLXI_9/lmb_bram/lmb_bram/ramb36e1_7 RAMB32 [3:0] [0:8191] INPUT = lmb_bram_combined_7.mem PLACED = X3Y10;
        END_BUS_BLOCK;
    END_ADDRESS_SPACE;


    ///////////////////////////////////////////////////////////////////////////////
    //
    // Processor 'microblaze_0' address space 'share_bram_block_combined' 0x84418000:0x84419FFF (8 KBytes).
    //
    ///////////////////////////////////////////////////////////////////////////////

    ADDRESS_SPACE share_bram_block_combined RAMB32 [0x84418000:0x84419FFF]
        BUS_BLOCK
            XLXI_9/share_bram_block/share_bram_block/ramb36e1_0 RAMB32 [31:16] [0:2047] INPUT = share_bram_block_combined_0.mem PLACED = X3Y9;
            XLXI_9/share_bram_block/share_bram_block/ramb36e1_1 RAMB32 [15:0] [0:2047] INPUT = share_bram_block_combined_1.mem PLACED = X3Y11;
        END_BUS_BLOCK;
    END_ADDRESS_SPACE;

AXI的***_bd.BMM 文件如下:

ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100

    ///////////////////////////////////////////////////////////////////////////////
    //
    // Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x00007FFF (32 KBytes).
    //
    ///////////////////////////////////////////////////////////////////////////////

    ADDRESS_SPACE microblaze_0_bram_block_combined RAMB32 [0x00000000:0x00007FFF]
        BUS_BLOCK
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_0 RAMB32 [31:28] [0:8191] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X0Y20;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_1 RAMB32 [27:24] [0:8191] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X1Y22;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_2 RAMB32 [23:20] [0:8191] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X2Y21;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_3 RAMB32 [19:16] [0:8191] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X1Y23;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_4 RAMB32 [15:12] [0:8191] INPUT = microblaze_0_bram_block_combined_4.mem PLACED = X2Y20;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_5 RAMB32 [11:8] [0:8191] INPUT = microblaze_0_bram_block_combined_5.mem PLACED = X1Y21;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_6 RAMB32 [7:4] [0:8191] INPUT = microblaze_0_bram_block_combined_6.mem PLACED = X1Y19;
            XLXI_6/microblaze_0_bram_block/microblaze_0_bram_block/ramb36e1_7 RAMB32 [3:0] [0:8191] INPUT = microblaze_0_bram_block_combined_7.mem PLACED = X1Y20;
        END_BUS_BLOCK;
    END_ADDRESS_SPACE;


    ///////////////////////////////////////////////////////////////////////////////
    //
    // Processor 'microblaze_0' address space 'axi_bram_ctrl_0_bram_block_combined' 0x41418000:0x4141FFFF (32 KBytes).
    //
    ///////////////////////////////////////////////////////////////////////////////

    ADDRESS_SPACE axi_bram_ctrl_0_bram_block_combined RAMB32 [0x41418000:0x4141FFFF]
        BUS_BLOCK
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_0 RAMB32 [31:28] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_0.mem;啥都没有,应该就是这部分有问题了
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_1 RAMB32 [27:24] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_1.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_2 RAMB32 [23:20] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_2.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_3 RAMB32 [19:16] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_3.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_4 RAMB32 [15:12] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_4.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_5 RAMB32 [11:8] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_5.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_6 RAMB32 [7:4] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_6.mem;
            XLXI_6/axi_bram_ctrl_0_bram_block/axi_bram_ctrl_0_bram_block/ramb36e1_7 RAMB32 [3:0] [0:8191] INPUT = axi_bram_ctrl_0_bram_block_combined_7.mem;
        END_BUS_BLOCK;
    END_ADDRESS_SPACE;

END_ADDRESS_MAP;

两者的差别就在与 PLB的share_bram_block_combined 已经有 PLACED = ****; 而AXI的axi_bram_ctrl_0_bram_block_combined 这部分后面什么都没有,好像palace出问题了,各位有没有遇到相似的问题,可有解决办法?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

9

帖子

0

粉丝