2015-09-19 72 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