私は単純な Microblaze プロジェクトを理解しようとしており、よく見つけたチュートリアルに従っています。ISE でデザインを正常に合成できますが、デザインをインプリメントしようとすると、次のエラー メッセージが表示されます。
エラー::11 - 予期しないシンボル 'MICROBLAZE'、'ADDRESS_MAP 名' が必要です。行 #1、ファイル「ipcore_dir/microblaze.bmm」。ERROR: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 を使用しています。
(編集 - 次の追加情報を追加)
[エラー] タブと比較して、より多くの情報を提供しているように見えるコンソール タブを調べました。
エラー::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 のセットアップです