UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 51739

14.3 - XPS - Zynq で Simulink pcore に対して XPS コンパイラでエラーが発生する

説明

EDK プロジェクトで、Simulink モデルで生成された Pcore AXI バスがコンパイルされません。
-------------------------------
次のようなエラー メッセージが表示されます。
------------------------------
ERROR:HDLCompiler:1318 - "./EDK/pcores/model_axiw_v1_00_a/hdl/vhdl/model_axiw.vhd" Line 67: Left bound value <11> of slice is out of range [7:0] of array <s_axi_arid>
ERROR:EDK - xst: unknown error occurred.
ERROR:EDK:546 - Aborting XST flow execution!

ソリューション


この問題は、System Generator で Pcore を生成すると、id_width のパラメーターを明示的に設定する HDL コードが生成されるために発生します。

次のいずれかの方法で回避できます。

1) 次のディレクトリにある <ip_name>_axiw.vhd を開きます。

pcores\<ip_name>_axiw_v1_00_a\hdl\vhdl\<ip_name>_axiw.vhd

67 行目から 71 行目までを次のように変更します。
変更前
s_axi_arid(C_S_AXI_ID_WIDTH-1 downto 0) <= sg_s_axi_arid;
s_axi_awid(C_S_AXI_ID_WIDTH-1 downto 0) <= sg_s_axi_awid;

sg_s_axi_rid <= s_axi_rid(C_S_AXI_ID_WIDTH-1 downto 0);
sg_s_axi_bid <= s_axi_bid(C_S_AXI_ID_WIDTH-1 downto 0);

変更後
axiaddrpref_less: if (C_S_AXI_ID_WIDTH <= C_S_AXI_NATIVE_ID_WIDTH) generate
s_axi_arid(C_S_AXI_ID_WIDTH-1 downto 0) <= sg_s_axi_arid;
s_axi_awid(C_S_AXI_ID_WIDTH-1 downto 0) <= sg_s_axi_awid;
sg_s_axi_rid <= s_axi_rid(C_S_AXI_ID_WIDTH-1 downto 0);
sg_s_axi_bid <= s_axi_bid(C_S_AXI_ID_WIDTH-1 downto 0);
end generate axiaddrpref_less;
axiaddrpref_greater: if (C_S_AXI_ID_WIDTH > C_S_AXI_NATIVE_ID_WIDTH) generate
s_axi_arid <= sg_s_axi_arid(C_S_AXI_NATIVE_ID_WIDTH-1 downto 0);
s_axi_awid <= sg_s_axi_awid(C_S_AXI_NATIVE_ID_WIDTH-1 downto 0);
sg_s_axi_rid(C_S_AXI_NATIVE_ID_WIDTH-1 downto 0) <= s_axi_rid;
sg_s_axi_bid(C_S_AXI_NATIVE_ID_WIDTH-1 downto 0) <= s_axi_bid;
-- Set upper 4 bits to 1000 for general performance, 0000 for high performance
sg_s_axi_rid(C_S_AXI_ID_WIDTH - 1 downto C_S_AXI_ID_WIDTH - 4) <= "1000";
sg_s_axi_bid(C_S_AXI_ID_WIDTH - 1 downto C_S_AXI_ID_WIDTH - 4) <= "1000";
end generate axiaddrpref_greater;


これを実行したら、ユーザー リポジトリを再スキャンします。

refresh.png
refresh.png


これで、IP がツールで問題なく処理されるはずです。System Generator の pcore に UCF で LOC 制約が設定されていない I/O ポートが含まれていると、Bitgen エラーが発生する可能性があります。

2) 別の回避策として、ザイリンクス テクニカル サポートから System Generator に適用可能なパッチを入手できます。ウェブケースを開いてパッチを請求してください。




AR# 51739
作成日 09/11/2012
最終更新日 11/27/2012
ステータス アクティブ
タイプ 一般
ツール
  • EDK - 14.1
  • EDK - 14.2
  • EDK - 14.3