2014-01-19 32 views
1

我是VHDL代碼的新手。是否有可能使用vhdl中的for/loop變量進行索引?

我想索引一個共享變量,使用for/loop中定義的變量。它似乎在模擬工作,雖然編譯器告訴我有一些警告:

(ID:13024)。輸出引腳卡在VCC或GND。

不幸的是,它不能像預期的那樣在船上工作。

我想,因爲他們似乎很好,以減少所使用的「總的組合功能」複雜使用/循環,所以我想在一個笨方法,我的共享變量指標。

這是我的代碼的摘錄:

for I in I_top to I_top loop 
for J in J_top to J_top loop 

    if type = 1 then 
     matrix(I,J) := "110"; 
     vector(I) := vector(I) + 1; 
     end := true; 
    elsif type = 2 then 
    ... 
    end if; 
end loop; 
end loop; 
+0

這些是循環內的進程嗎? 'for ... loop'不會在進程外運行,儘管'for ... generate'可以代替。 –

+0

在當前語言中,共享變量只允許使用受保護的類型。您可以使用流程中定義的常規變量。 –

+0

這個for循環用於進程內部。他們在模擬工作,但沒有在船上工作。現在我用信號替換了共享變量,但它始終只能用於模擬。 – user3212861

回答

0

我想我已經找到了一種方法來解決這個問題。

我的理解是在VHDL中使用10x10變量會帶來很多複雜性,因爲編譯器會分配它們可能需要的所有資源。

如果你想使用的空間來保存您的變量,你可以使用像一個RAM芯片:

http://www.doulos.com/knowhow/vhdl_designers_guide/models/simple_ram_model/

然後,你需要管理地址週期和讀/寫週期,但以前的複雜性似乎消失。

相關問題