Generics 使用内部ID初始化组件

Generics 使用内部ID初始化组件,generics,components,vhdl,Generics,Components,Vhdl,我应该创建一个由N个组件(实体“B”)组成的结构(实体“a”)。每个组件都有多个输入和输出以及一个内部信号ID(必须是静态的),用于标识从0到N-1的组件。每个组件根据ID执行一些操作。我的问题是如何在初始化时(在端口映射期间)将静态ID分配给每个组件。显然,组件是在for..generate循环中“创建”的,因为N可以是泛型的 为组件声明一个泛型,为其指定generate的循环索引,并在内部为信号指定泛型: entity insider is generic(id: natural);

我应该创建一个由N个组件(实体“B”)组成的结构(实体“a”)。每个组件都有多个输入和输出以及一个内部信号ID(必须是静态的),用于标识从0到N-1的组件。每个组件根据ID执行一些操作。我的问题是如何在初始化时(在端口映射期间)将静态ID分配给每个组件。显然,组件是在for..generate循环中“创建”的,因为N可以是泛型的

为组件声明一个泛型,为其指定generate的循环索引,并在内部为信号指定泛型:

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;
实体内幕是
通用(id:天然);
港口(
...
);
终端实体内部人员;
内部人的建筑弧是
信号s:自然;
开始
...
(一)
港口地图(
...
);
末端生成g;
...
末端结构弧;

为什么不直接使用
中的循环标识符来表示。。是否将
作为实例化组件的ID生成?顺便说一句,如果你包含了相关的代码,这将对理解这个问题有很大帮助。我知道插入代码是非常有用的,但写这个问题时我很累。谢谢你的建议谢谢!如果这个问题没有示例代码,那么很抱歉,我写它的时候非常累。