我正在尝试掌握一个简单的 Microblaze 项目,并按照我找到的教程进行操作。我可以在 ISE 中成功合成设计,但是当我尝试实现该设计时,出现以下错误:
错误::11 - 应为意外符号“MICROBLAZE”、“ADDRESS_MAP 名称”。第 1 行,文件“ipcore_dir/microblaze.bmm”。错误:NgdBuild:989 - 无法处理 BMM 信息 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 包含在合成中。
源 ipcore_dir/microblaze_mcs_setup.tcl
我花了很长时间搜索各种教程,但我无法理解问题所在。有人可以给我一个提示,说明出了什么问题。
我似乎无法找到联系教程作者的方法。
我正在使用在虚拟设备中运行的 ISE14.7。
(编辑 - 添加了以下附加信息)
与错误选项卡相比,我查看了控制台选项卡,该选项卡似乎提供了更多信息:
ERROR::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 设置