Verilog AXI IPs合成过程中的未知错误

Verilog AXI IPs合成过程中的未知错误,verilog,vivado,zynq,Verilog,Vivado,Zynq,我正在尝试使用Xilinx Vivado中的IP打包工具创建一个具有AXI-Lite接口的协处理器,并将其用于我的数字系统工程课程的Zynq SoC设计中。协处理器是一个GCD计算器,我们已经在之前的作业中开发了它。我按照讲师的指示从GCD计算器中创建了一个IP,我们松散地按照PDF中的教程4A创建了AXI接口(I/O声明显然经过了修改,以适应GCD计算器)。我有一个名为“data”的数据总线,从AXI IP和GCD IP运行,将值发送到计算器。然而,当我试图综合设计时,我得到了一个错误,错误如

我正在尝试使用Xilinx Vivado中的IP打包工具创建一个具有AXI-Lite接口的协处理器,并将其用于我的数字系统工程课程的Zynq SoC设计中。协处理器是一个GCD计算器,我们已经在之前的作业中开发了它。我按照讲师的指示从GCD计算器中创建了一个IP,我们松散地按照PDF中的教程4A创建了AXI接口(I/O声明显然经过了修改,以适应GCD计算器)。我有一个名为“data”的数据总线,从AXI IP和GCD IP运行,将值发送到计算器。然而,当我试图综合设计时,我得到了一个错误,错误如下:

[Synth 8-685]输出端口连接中不应使用变量“data”

错误指向定义数据端口的AXI总线接口实例化行

我已经在网上搜索了几个小时,寻找这个错误的解决方案,但即使是Xilinx网站,或者提供给我们的Xilinx文档,都没有关于这个错误的任何信息,我也找不到任何遇到同样错误的人的帐户

我给教授发了电子邮件,想看看他是否有什么想法,但他可能还要六个小时才能醒过来,作业今天(明天?)就要交了

有没有人听说过这个错误,或者知道如何纠正它

以下是包含错误源的部分代码:

// Instantiation of Axi Buss Interface S00_AXI
myip_v1.0_0_S00_AVI # (
    .C_S_AXI_DATA_WIDTH(C_S00_AXI_DATA_WIDTH),
    .C_S_AXI_ADDR_WIDTH(C_S00_AXI_ADDR_WIDTH)
) myip_v1_0_S00_AXI_inst (
    .done_async(done_async),
    .go(go),
    .data(data), // The error points to this line
    .S_AXI_ACLK(s00_axi_aclk),
    ... // all remaining ports were generated by the IP tools
);
谢谢


-Andrew

在我看来,您试图从实例化模块的输出中驱动一个变量。在Verilog中,不能从实例化模块驱动变量。这在Verilog中是非法的(尽管它不在SystemVerilog中):

鉴于这并不违法:

wire OP;                                    -- this is a net
SOME_MODULE MODULE_INST (.IP(IP), .OP(OP)); 

你能至少发布错误的行吗?@Paebbels,我编辑了原始帖子,添加了错误指向的行。这是我的问题。非常感谢你。现在我只需要弄清楚如何编辑代码以适应这种变化。
wire OP;                                    -- this is a net
SOME_MODULE MODULE_INST (.IP(IP), .OP(OP));