Microblaze 的 bmm 文件中的意外符号

Unexpected symbol in bmm file for Microblaze

我正在尝试着手处理一个简单的 Microblaze 项目,并且一直在关注 tutorial 我仔细发现的项目。我可以在 ISE 中成功综合设计,但是当我尝试实现设计时出现以下错误:

ERROR::11 - Unexpected symbol 'MICROBLAZE', 'ADDRESS_MAP name' expected. Line #1, File "ipcore_dir/microblaze.bmm". ERROR:NgdBuild:989 - Failed to process BMM information ipcore_dir/microblaze.bmm

文件 microblaze.bmm 由 microblaze 核心生成器生成,因此我没有编辑内容。

用microblaze核心生成的.bmm文件是:

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 控制台中有 运行 这个命令,用于在合成中包含 microblaze。

source ipcore_dir/microblaze_mcs_setup.tcl

我花了很长时间浏览各种教程,但我无法理解问题出在哪里。有人可以给我一个关于出了什么问题的提示吗?

我好像找不到联系教程作者的方法。

我在虚拟设备中使用 ISE14.7 运行ning。

(编辑 - 添加了以下附加信息)

我查看了控制台选项卡,与“错误”选项卡相比,它似乎提供了更多信息:

ERROR::37 - Illegal file or path name symbol 'MICROBLAZE'. Line #5, File "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 设置

我发现 this page,建议是 bmm 文件中的命名可能与您在设计层次结构中的命名不匹配。你能证实吗?由于您有与名称相关的错误。 microblaze 可能无效。

由于您已经更新了答案,因此可以看出它的分层设计名称实际上是 msc_0。使用正确的命名更新您的 bmm 文件将解决问题![​​=13=]