Tanichev 0 5 августа, 2011 Опубликовано 5 августа, 2011 · Жалоба Пытаюсь собрать системку с MicroBlaze на Virtex-4 XC4VLX80. XPS собирает платформу нормально. Использую только BRAM. Затем, при попытке собрать прошивку вот так ругается: ERROR:Data2MEM:47 - Not all BitLanes in ADDRESS_SPACE 'microblaze_0.bram_block_0_combined' have BMM location constraints. Some data for this ADDRESS_SPACE may be lost during BIT file replacement. Verify that the BMM file has location constraints for all BitLanes. Bitlane(s) ---------------- bram_block_0/bram_block_0/ramb16_0 [31:31] bram_block_0/bram_block_0/ramb16_1 [30:30] bram_block_0/bram_block_0/ramb16_2 [29:29] bram_block_0/bram_block_0/ramb16_3 [28:28] bram_block_0/bram_block_0/ramb16_4 [27:27] bram_block_0/bram_block_0/ramb16_5 [26:26] bram_block_0/bram_block_0/ramb16_6 [25:25] bram_block_0/bram_block_0/ramb16_7 [24:24] bram_block_0/bram_block_0/ramb16_8 [23:23] bram_block_0/bram_block_0/ramb16_9 [22:22] bram_block_0/bram_block_0/ramb16_10 [21:21] bram_block_0/bram_block_0/ramb16_11 [20:20] bram_block_0/bram_block_0/ramb16_12 [19:19] bram_block_0/bram_block_0/ramb16_13 [18:18] bram_block_0/bram_block_0/ramb16_14 [17:17] bram_block_0/bram_block_0/ramb16_15 [16:16] bram_block_0/bram_block_0/ramb16_16 [15:15] bram_block_0/bram_block_0/ramb16_17 [14:14] bram_block_0/bram_block_0/ramb16_18 [13:13] bram_block_0/bram_block_0/ramb16_19 [12:12] bram_block_0/bram_block_0/ramb16_20 [11:11] bram_block_0/bram_block_0/ramb16_21 [10:10] bram_block_0/bram_block_0/ramb16_22 [9:9] bram_block_0/bram_block_0/ramb16_23 [8:8] bram_block_0/bram_block_0/ramb16_24 [7:7] bram_block_0/bram_block_0/ramb16_25 [6:6] bram_block_0/bram_block_0/ramb16_26 [5:5] bram_block_0/bram_block_0/ramb16_27 [4:4] bram_block_0/bram_block_0/ramb16_28 [3:3] bram_block_0/bram_block_0/ramb16_29 [2:2] bram_block_0/bram_block_0/ramb16_30 [1:1] bram_block_0/bram_block_0/ramb16_31 [0:0] FPGA Programming Failed due to errors while initializing bitstream. Я не могу понять, как собственно должен выглядеть этот файл :laughing: (он его сгенерил автоматически). Вот его содержание: // BMM LOC annotation file. // // Release 12.2 - Data2MEM M.63c, build 1.7 Jun 25, 2010 // Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. /////////////////////////////////////////////////////////////////////////////// // // Processor 'microblaze_0', ID 100, memory map. // /////////////////////////////////////////////////////////////////////////////// ADDRESS_MAP microblaze_0 MICROBLAZE 100 /////////////////////////////////////////////////////////////////////////////// // // Processor 'microblaze_0' address space 'bram_block_0_combined' 0x00000000:0x0000FFFF (64 KBytes). // /////////////////////////////////////////////////////////////////////////////// ADDRESS_SPACE bram_block_0_combined RAMB16 [0x00000000:0x0000FFFF] BUS_BLOCK bram_block_0/bram_block_0/ramb16_0 [31:31] INPUT = bram_block_0_combined_0.mem; bram_block_0/bram_block_0/ramb16_1 [30:30] INPUT = bram_block_0_combined_1.mem; bram_block_0/bram_block_0/ramb16_2 [29:29] INPUT = bram_block_0_combined_2.mem; bram_block_0/bram_block_0/ramb16_3 [28:28] INPUT = bram_block_0_combined_3.mem; bram_block_0/bram_block_0/ramb16_4 [27:27] INPUT = bram_block_0_combined_4.mem; bram_block_0/bram_block_0/ramb16_5 [26:26] INPUT = bram_block_0_combined_5.mem; bram_block_0/bram_block_0/ramb16_6 [25:25] INPUT = bram_block_0_combined_6.mem; bram_block_0/bram_block_0/ramb16_7 [24:24] INPUT = bram_block_0_combined_7.mem; bram_block_0/bram_block_0/ramb16_8 [23:23] INPUT = bram_block_0_combined_8.mem; bram_block_0/bram_block_0/ramb16_9 [22:22] INPUT = bram_block_0_combined_9.mem; bram_block_0/bram_block_0/ramb16_10 [21:21] INPUT = bram_block_0_combined_10.mem; bram_block_0/bram_block_0/ramb16_11 [20:20] INPUT = bram_block_0_combined_11.mem; bram_block_0/bram_block_0/ramb16_12 [19:19] INPUT = bram_block_0_combined_12.mem; bram_block_0/bram_block_0/ramb16_13 [18:18] INPUT = bram_block_0_combined_13.mem; bram_block_0/bram_block_0/ramb16_14 [17:17] INPUT = bram_block_0_combined_14.mem; bram_block_0/bram_block_0/ramb16_15 [16:16] INPUT = bram_block_0_combined_15.mem; bram_block_0/bram_block_0/ramb16_16 [15:15] INPUT = bram_block_0_combined_16.mem; bram_block_0/bram_block_0/ramb16_17 [14:14] INPUT = bram_block_0_combined_17.mem; bram_block_0/bram_block_0/ramb16_18 [13:13] INPUT = bram_block_0_combined_18.mem; bram_block_0/bram_block_0/ramb16_19 [12:12] INPUT = bram_block_0_combined_19.mem; bram_block_0/bram_block_0/ramb16_20 [11:11] INPUT = bram_block_0_combined_20.mem; bram_block_0/bram_block_0/ramb16_21 [10:10] INPUT = bram_block_0_combined_21.mem; bram_block_0/bram_block_0/ramb16_22 [9:9] INPUT = bram_block_0_combined_22.mem; bram_block_0/bram_block_0/ramb16_23 [8:8] INPUT = bram_block_0_combined_23.mem; bram_block_0/bram_block_0/ramb16_24 [7:7] INPUT = bram_block_0_combined_24.mem; bram_block_0/bram_block_0/ramb16_25 [6:6] INPUT = bram_block_0_combined_25.mem; bram_block_0/bram_block_0/ramb16_26 [5:5] INPUT = bram_block_0_combined_26.mem; bram_block_0/bram_block_0/ramb16_27 [4:4] INPUT = bram_block_0_combined_27.mem; bram_block_0/bram_block_0/ramb16_28 [3:3] INPUT = bram_block_0_combined_28.mem; bram_block_0/bram_block_0/ramb16_29 [2:2] INPUT = bram_block_0_combined_29.mem; bram_block_0/bram_block_0/ramb16_30 [1:1] INPUT = bram_block_0_combined_30.mem; bram_block_0/bram_block_0/ramb16_31 [0:0] INPUT = bram_block_0_combined_31.mem; END_BUS_BLOCK; END_ADDRESS_SPACE; END_ADDRESS_MAP; Подскажите пожалуйста, что нужно поправить в этом файле. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 5 августа, 2011 Опубликовано 5 августа, 2011 · Жалоба Существуют два BMM файла. Первый формируется при синтезе. Второй - после трассировки. Второй файл выглядит так: ADDRESS_SPACE bram_block_0_combined RAMB16 [0xFFFF0000:0xFFFFFFFF] BUS_BLOCK ppc/bram_block_0/bram_block_0/ramb16_0 [63:62] PLACED = X3Y8; ppc/bram_block_0/bram_block_0/ramb16_1 [61:60] PLACED = X4Y5; ppc/bram_block_0/bram_block_0/ramb16_2 [59:58] PLACED = X4Y6; ppc/bram_block_0/bram_block_0/ramb16_3 [57:56] PLACED = X2Y1; ppc/bram_block_0/bram_block_0/ramb16_4 [55:54] PLACED = X1Y1; ppc/bram_block_0/bram_block_0/ramb16_5 [53:52] PLACED = X4Y8; ppc/bram_block_0/bram_block_0/ramb16_6 [51:50] PLACED = X1Y2; ppc/bram_block_0/bram_block_0/ramb16_7 [49:48] PLACED = X0Y3; ppc/bram_block_0/bram_block_0/ramb16_8 [47:46] PLACED = X3Y6; ppc/bram_block_0/bram_block_0/ramb16_9 [45:44] PLACED = X2Y2; ppc/bram_block_0/bram_block_0/ramb16_10 [43:42] PLACED = X3Y7; ppc/bram_block_0/bram_block_0/ramb16_11 [41:40] PLACED = X4Y7; ppc/bram_block_0/bram_block_0/ramb16_12 [39:38] PLACED = X4Y11; ppc/bram_block_0/bram_block_0/ramb16_13 [37:36] PLACED = X3Y4; ppc/bram_block_0/bram_block_0/ramb16_14 [35:34] PLACED = X4Y4; ppc/bram_block_0/bram_block_0/ramb16_15 [33:32] PLACED = X4Y10; ppc/bram_block_0/bram_block_0/ramb16_16 [31:30] PLACED = X0Y4; ppc/bram_block_0/bram_block_0/ramb16_17 [29:28] PLACED = X2Y0; ppc/bram_block_0/bram_block_0/ramb16_18 [27:26] PLACED = X0Y2; ppc/bram_block_0/bram_block_0/ramb16_19 [25:24] PLACED = X4Y2; ppc/bram_block_0/bram_block_0/ramb16_20 [23:22] PLACED = X0Y0; ppc/bram_block_0/bram_block_0/ramb16_21 [21:20] PLACED = X1Y0; ppc/bram_block_0/bram_block_0/ramb16_22 [19:18] PLACED = X3Y0; ppc/bram_block_0/bram_block_0/ramb16_23 [17:16] PLACED = X3Y1; ppc/bram_block_0/bram_block_0/ramb16_24 [15:14] PLACED = X4Y9; ppc/bram_block_0/bram_block_0/ramb16_25 [13:12] PLACED = X0Y1; ppc/bram_block_0/bram_block_0/ramb16_26 [11:10] PLACED = X3Y5; ppc/bram_block_0/bram_block_0/ramb16_27 [9:8] PLACED = X3Y2; ppc/bram_block_0/bram_block_0/ramb16_28 [7:6] PLACED = X3Y3; ppc/bram_block_0/bram_block_0/ramb16_29 [5:4] PLACED = X4Y3; ppc/bram_block_0/bram_block_0/ramb16_30 [3:2] PLACED = X4Y0; ppc/bram_block_0/bram_block_0/ramb16_31 [1:0] PLACED = X4Y1; END_BUS_BLOCK; END_ADDRESS_SPACE; Обратите внимание на атрибут PLACED - он показывает где расположен блок памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanichev 0 5 августа, 2011 Опубликовано 5 августа, 2011 · Жалоба А почему у меня он всего один? Ведь XPS уже всё сделал. А это возможно вбить вручную? Как понимать эти координаты? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mad_kvmg 0 5 августа, 2011 Опубликовано 5 августа, 2011 · Жалоба А почему у меня он всего один? Ведь XPS уже всё сделал. А это возможно вбить вручную? Как понимать эти координаты? Спасибо. Координаты физического расположения BRAM на кристалле должны соответствовать координатам в BMM файле. Соответственно проверьте, там ли у Вас BRAM расположены. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 8 августа, 2011 Опубликовано 8 августа, 2011 · Жалоба А почему у меня он всего один? Ведь XPS уже всё сделал. А это возможно вбить вручную? Как понимать эти координаты? Спасибо. Наверное он не был указан для ngdbuild; В параметрах ngdbuild должно быть указано: -bm <имя файла.bmm> Тогда после par появится файл <имя файла_bd.bmm> с установленными атрибутами размещения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanichev 0 10 августа, 2011 Опубликовано 10 августа, 2011 · Жалоба Собирал платформу вручную, видимо. не нашёл, где и что указывать. Через визард работает. Спасибо за ответы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться