2010-01-31 62 views
0

我有一條大約4層深的電線,我真的不想讓它在層次結構中傳播的麻煩。有什麼方法可以使用某種引用來分配導線?我知道我可以通過鍵入訪問線:在一組嵌套模塊中深度分配電線

cca.cpu0.cca3_cpu.nc1_cp_checkpoint 

assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint; 

不起作用

人知道任何方式做到這一點?

+0

相關的和潛在的興趣:可以通過利用函數中的靜態變量來傳播連接,使用可合成的構造來實現這一點https://github.com/chiggs/hidden_​​wires – Chiggs 2013-12-16 17:09:15

回答

3

既然你沒有顯示足夠的代碼讓任何人重現你的問題,也沒有透露你的問題的任何細節,我們所能做的只是猜測。

我的猜測是nc1_cp_checkpoint在您的cca3_cpu實例中聲明爲reg。您無法使用連續賦值將值分配給reg。嘗試使用一個程序分配(一initialalways塊內),例如:

initial begin 
    cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint; 
end 

如果這不能解決您的問題:

  1. 顯示更多相關代碼
  2. 精品在「不起作用」。如果有的話顯示你的錯誤信息。

更新:另一個潛在的問題出現,如果nc1_cp_checkpoint是連續驅動wirecca3_cpu實例內。在這種情況下,您的第二個assign可能會導致爭用,這會導致值不明(x)。您可以使用forcerelease來避免該問題。

+0

謝謝!我查了一下,意識到自從我模擬我需要使用武力和釋放。 nc1_cp_checkpoint是一個連線,它在我的測試平臺中的一個初始塊內,抱歉我應該更加清楚。 – Adam 2010-02-02 13:13:02

2

從您的標籤,您似乎表明您正在使用VCS。你會得到一個:

Error-[XMRE] Cross-module reference resolution error 
Cross module resolution failed, token BLAH'. 
Originating module 'foo'. "foo.v", 666: 

這將表明您的路徑不正確。

跨模塊引用可以工作,但如果您將設計限制爲可合成結構,則可能無法啓用它們。在VCS用戶指南中查找「跨模塊參考」。

+0

雖然這不是問題,但我沒有不知道這個,所以謝謝你指出! – Adam 2010-02-02 13:12:35