Неожиданный символ в файле bmm для Microblaze - PullRequest
0 голосов
/ 03 ноября 2018

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

ОШИБКА :: 11 - Ожидается неожиданный символ 'MICROBLAZE', 'ADDRESS_MAP name'. Строка № 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;

И микроблейз создается с помощью этого кода 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, чтобы включить микроблейз в синтез.

source 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; Хотя я не понимаю, почему.

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

project Hierarchy

А это настройка MicroBlaze

MicroBlaze Setup

1 Ответ

0 голосов
/ 03 ноября 2018

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

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

...