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以请求修补程序。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:35:49 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它