AR# 13131

|

MicroBlaze (MDK) - PlatGen で -l verilog オプションがサポートされない場合、Verilog デザインで MicroBlaze を使用する方法

説明

キーワード : MicroBlaze, Verilog

重要度 : 標準

概要 :
PlatGen で -l verilog オプションがサポートされないため、Verilog デザインで MicroBlaze を使用する方法を教えてください。

ソリューション

1

ラップ ファイルの例

1. -flat オプションを使用しないで PlatGen を実行し、最上位 VHDL ファイルを作成します。

2. 最上位 VHDL ファイルを合成しますが、合成ツールで I/O 挿入を無効にします。これにより、MicroBlaze システム用の EDIF ファイルが作成されます。

3. Verilog でラップ ファイルを作成します。このファイルでは、合成した MicroBlaze の入力および出力ポートが記述されています。

4. 最上位の Verilog デザインでラップ ファイルをインスタンシエートします。

次に示すのは、Synplify を使用した例です。

MicroBlaze システムの最上位 VHDL ファイル :

entity system1 is
port (
-- instance GLOBAL
DEACTIVATE_N : out std_logic;
sys_reset : in std_logic;
sys_clk : in std_logic;
ENABLE_N : out std_logic;

-- instance uart_0
rx : in std_logic;
tx : out std_logic);
end system1;

上記の VHDL ファイルから作成された EDIF ファイル用の Verilog ラッパ :

module system1 (DEACTIVATE_N,
sys_reset,
sys_clk,
ENABLE_N,
rx,
tx); //synthesis syn_black_box

input sys_clk;
input sys_reset;
output tx;
input rx;
output DEACTIVATE_N;
output ENABLE_N;

endmodule

インスタンシエートされた MicroBlaze システムを使用した最上位の Verilog システムとクロック分周器 :

module top_level (clk, rst, tx, rx, enable);

input clk;
input rst;
output tx;
input rx;
input enable;

//top level module adds a clock enable and divider

reg [1:0]count;


always @ (posedge clk)
begin
if (rst)
count = 2'b00;
else if (enable)
count = count + 1'b1;
end

system1 my_system1(
.DEACTIVATE_N(),
.sys_reset(rst),
.sys_clk(count[1]),
.ENABLE_N(),
.rx(rx),
.tx(tx)
);
endmodule

2

(注意: EDK は Verilog をサポートしていますので、このソリューションは MDK システムに対してのみです。)

1. -flat および -i オプションを使用して PlatGen を実行し、I/O を挿入せずに最上位ネットリストを作成します。

2. Verilog でラップ ファイルを作成します。このファイルでは、合成した MicroBlaze の入力および出力ポートが記述されています。

3. 最上位の Verilog デザインでラップ ファイルをインスタンシエートします。

AR# 13131
日付 04/23/2007
ステータス アーカイブ
種類 一般
People Also Viewed