2016-04-18 112 views
1

我正在嘗試使用Xilinx Vivado中的IP打包工具創建一個帶有AXI-Lite接口的協處理器,並將其用於我的數字系統工程類的Zynq SoC設計。協處理器是我們已經開發的GCD計算器,作爲以前任務的一部分。我按照教師的指示從GCD計算器中創建IP,並且我們鬆散地遵循here的PDF中的教程4A創建AXI接口(顯然修改了I/O聲明以適應GCD計算器)。我有一個數據總線叫做'數據',它運行在AXI IP和GCD IP上,以向計算器發送值。然而,當我試圖綜合設計,我得到了以下錯誤:AXI IP合成過程中出現未知錯誤

[Synth 8-685] variable 'data' should not be used in output port connection'

錯誤引導到我的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

+0

你能後至少有故障的線路? – Paebbels

+0

@Paebbels,我編輯了原始帖子,添加了錯誤指向的行。 – Unrealcow

回答

1

它看起來像你對我正試圖從輸出驅動變量一個實例化的模塊。在Verilog中,你不能從實例化的模塊中驅動一個變量。這是違法的Verilog的(雖然它不是SystemVerilog中):

reg OP;          -- this is a variable  
SOME_MODULE MODULE_INST (.IP(IP), .OP(OP)); 

,而這是不是非法的:

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

這是我的問題。非常感謝你。現在我只需要弄清楚如何編輯我的代碼以適應這種變化。 – Unrealcow