将地图移植到多个实体的最佳方式
Best way to port map to multiple entities
如果某个实体需要在另一个 "top-level" 实体中多次引用,最好的方法是什么?
例如,给定某个实体My_Entity
(此处为简化描述):
entity My_Entity is
port (
etc ...
);
end My_Entity;
...我如何描述使用 10 My_Entity
的顶级实体?
entity Top_Entity is
port (
etc ...
);
end Top_Entity;
architecture rtl of Top_Entity is
begin
entity1 : entity work.My_Entity(rtl) port map (
etc ...
);
entity2 : entity work.My_Entity(rtl) port map (
etc ...
);
-- repeat 10 times? or is there a better way?
end rtl;
是的。使用生成循环:
entity Top_Entity is
port (
etc ...
);
end Top_Entity;
architecture rtl of Top_Entity is
begin
G: for I in 1 to 10 generate -- the label "G" is compulsory here
-- I varies between 1 and 10 here
-- you can use it to distinguish between instances
-- eg to connect each to a different element of an array
entity1 : entity work.My_Entity(rtl) port map (
etc ...
);
end generate;
end rtl;
如果某个实体需要在另一个 "top-level" 实体中多次引用,最好的方法是什么?
例如,给定某个实体My_Entity
(此处为简化描述):
entity My_Entity is
port (
etc ...
);
end My_Entity;
...我如何描述使用 10 My_Entity
的顶级实体?
entity Top_Entity is
port (
etc ...
);
end Top_Entity;
architecture rtl of Top_Entity is
begin
entity1 : entity work.My_Entity(rtl) port map (
etc ...
);
entity2 : entity work.My_Entity(rtl) port map (
etc ...
);
-- repeat 10 times? or is there a better way?
end rtl;
是的。使用生成循环:
entity Top_Entity is
port (
etc ...
);
end Top_Entity;
architecture rtl of Top_Entity is
begin
G: for I in 1 to 10 generate -- the label "G" is compulsory here
-- I varies between 1 and 10 here
-- you can use it to distinguish between instances
-- eg to connect each to a different element of an array
entity1 : entity work.My_Entity(rtl) port map (
etc ...
);
end generate;
end rtl;