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=]
我正在尝试着手处理一个简单的 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=]