2015-09-19 100 views
-2

我應創建一個由N個組件(實體「B」)組成的結構(實體「A」)。每個組件都有多個輸入和輸出以及一個內部信號ID(必須是靜態的),用於識別從0到N-1的組件。每個組件都根據ID執行一些操作。我的問題是如何在初始化時(在端口映射期間)將靜態ID分配給每個組件。顯然這些組件是在「..生成循環中」創建的,因爲N可能是通用的。使用內部ID初始化組件

+0

你爲什麼不乾脆用循環標識符在' for .. generate'作爲實例化組件的ID?順便說一句。如果你包含了相關的代碼,這將對理解這個問題有很大的幫助。 –

+0

我知道插入代碼非常有用,但寫下問題時我很累。感謝您的建議 – MI89

回答

1

聲明泛型爲組件,分配給它的產生循環索引,並在內部,分配通用的信號:

entity insider is 
    generic(id: natural); 
    port(
    ... 
); 
end entity insider; 

architecture arc of insider is 
    signal s: natural; 
begin 
    ... 
    s <= id; 
    ... 
end architecture arc; 

... 

architecture arc of outsider is 
    ... 
begin 
    ... 
    g: for i in 1 to 10 generate 
    i: entity work.insider 
     generic map(id => i) 
     port map(
     ... 
    ); 
    end generate g; 
    ... 
end architecture arc; 
+0

謝謝!如果問題沒有示例代碼,我很遺憾,當我寫這個代碼的時候,我感到非常疲倦。 – MI89