Неожиданный символ в файле bmm для Microblaze

Я пытаюсь разобраться с простым проектом Microblaze и следую учебник я нашел внимательно. Я могу успешно синтезировать дизайн в ISE, но когда я пытаюсь реализовать дизайн, я получаю следующую ошибку:

ОШИБКА::11 - Ожидается неожиданный символ "MICROBLAZE", "имя ADDRESS_MAP". Строка №1, файл «ipcore_dir/microblaze.bmm». ОШИБКА: NgdBuild: 989 - Не удалось обработать информацию BMM ipcore_dir/microblaze.bmm

Файл microblaze.bmm создается генератором ядра microblaze, поэтому я не редактировал его содержимое.

Файл .bmm, сгенерированный ядром microblaze:

ADDRESS_MAP microblaze MICROBLAZE-LE 100
  ADDRESS_SPACE lmb_bram COMBINED [0x00000000:0x00001fff]
   ADDRESS_RANGE RAMB16
    BUS_BLOCK
    mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[0].RAMB16_S9_1 [31:24] INPUT = microblaze.lmb_bram_0.mem;
    mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[1].RAMB16_S9_1 [23:16] INPUT = microblaze.lmb_bram_1.mem;
    mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[2].RAMB16_S9_1 [15:8] INPUT = microblaze.lmb_bram_2.mem;
    mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[3].RAMB16_S9_1 [7:0] INPUT = microblaze.lmb_bram_3.mem;
  END_BUS_BLOCK;
 END_ADDRESS_RANGE;
 END_ADDRESS_SPACE;
 END_ADDRESS_MAP;

И microblaze создается с помощью этого кода VHDL:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity microblaze_top is
PORT (
   Clk : IN STD_LOGIC;
   Reset : IN STD_LOGIC;
   UART_Rx : IN STD_LOGIC;
   UART_Tx : OUT STD_LOGIC;
   GPO1 : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)    
 );
end microblaze_top;

architecture Behavioral of microblaze_top is
COMPONENT microblaze
PORT (
   Clk : IN STD_LOGIC;
   Reset : IN STD_LOGIC;
   UART_Rx : IN STD_LOGIC;
   UART_Tx : OUT STD_LOGIC;
   FIT1_Interrupt : OUT STD_LOGIC;
   FIT1_Toggle : OUT STD_LOGIC;
   GPO1 : OUT STD_LOGIC_VECTOR(11 DOWNTO 0);
   INTC_IRQ : OUT STD_LOGIC
);
END COMPONENT;
begin
  mcs_0 : microblaze
  PORT MAP (
    Clk => Clk,
    Reset => Reset,
    UART_Rx => UART_Rx,
    UART_Tx => UART_Tx,
    GPO1 => GPO1
  );
  end Behavioral;

Я запустил эту команду в консоли TCL, чтобы включить микроблейз в синтез.

источник ipcore_dir/microblaze_mcs_setup.tcl

Я провел целую вечность, просматривая различные учебники, и я не могу понять, в чем проблема. Может кто-нибудь, пожалуйста, дайте мне подсказку о том, что происходит не так.

Кажется, я не могу найти способ связаться с автором учебника.

Я использую ISE14.7, работающий в виртуальном устройстве.

(Редактировать - добавлена ​​следующая дополнительная информация)

Я взглянул на вкладку консоли, которая, по-видимому, дает больше информации по сравнению с вкладкой «Ошибки»:

ОШИБКА::37 - Недопустимый символ имени файла или пути 'MICROBLAZE'. Строка № 5, файл «ipcore_dir/microblaze.bmm». mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[0].RAMB16_S9_1 [31:24] INPUT = microblaze.lmb_bram_0.mem;

При ближайшем рассмотрении ISE недоволен microblaze.lmb_bram_0.mem; хотя я не понимаю, почему.

Ниже приведен снимок иерархии проекта:

Иерархия проекта

А это установка MicroBlaze

Настройка MicroBlaze


person Andrew Ellis    schedule 03.11.2018    source источник


Ответы (1)


Я нашел эта страница, и предполагается, что имена в файле bmm могут не соответствовать тому, что у вас есть в вашей иерархии дизайна. Вы можете это подтвердить? Поскольку у вас есть ошибка, связанная с именем. microblaze может быть недействительным.

Поскольку вы обновили свой ответ, видно, что имя иерархического дизайна для него на самом деле msc_0. Обновление вашего файла bmm с правильным именем решит проблему!

person buræquete    schedule 03.11.2018