14.3  –  XPS-XPS编译器在Zynq上使用Simulink pcore失败-Xilinx-AMD社区-FPGA CPLD-ChipDebug

14.3 – XPS-XPS编译器在Zynq上使用Simulink pcore失败

描述

EDK项目不使用Simulink模型编译Pcore AXI总线生成
——————————-
这来自错误消息
——————————
错误:HDLC编译器:1318 – “./ EDK / pcores / model_axiw_v1_00_a / hdl / vhdl / model_axiw.vhd”第67行:切片的左边界值<11>超出数组<s_axi_arid的范围[7:0]>
错误:EDK – xst:发生未知错误。
错误:EDK:546 – 中止XST流程执行!

这里的问题是来自System Generator的Pcorecreated使得HDL代码显式地设置了id_width的参数。

此问题有两种可能的解决方法:

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)生成
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;

axiaddrpref_greater:if(C_S_AXI_ID_WIDTH> C_S_AXI_NATIVE_ID_WIDTH)生成
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;

– 将高4位设置为1000以获得一般性能,将0000设置为高性能
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”;

结束生成axiaddrpref_greater;

完成后,重新扫描用户存储库:

refresh.png
refresh.png

知识产权现在应该毫无问题地通过工具。如果您的System Generator pcore包含未在UCF中进行LOC的I / O端口,则可能会出现Bitgen错误。

2)或者,可以通过Xilinx技术支持向System Generator提供补丁。请打开Webcase以请求修补程序。

请登录后发表评论

    没有回复内容