我有3种不同类型的组件。例如type0,type1和type2。它们都具有相同的端口,但功能相同。我想使用0、1和3这样的常量将相应的组件放入我的顶级设计中。我想知道这样做的方法。
最诚挚的问候
答案 0 :(得分:0)
您可以使用generate
语句,例如:
G0 : if SOME_CONSTANT = 0 generate
I0 : type0 ( ...
end generate;
G1 : if SOME_CONSTANT = 1 generate
I1 : type1 ( ...
end generate;
G2 : if SOME_CONSTANT = 2 generate
I2 : type2 ( ...
end generate;
-- etc
如果您使用的是VHDL-2008,则有一个case
-generate
语句:
G : case SOME_CONSTANT generate
when 0 =>
I0 : type0 ( ...
when 1 =>
I1 : type1 ( ...
when 2 => 2
I2 : type2 ( ...
-- etc
end generate;
答案 1 :(得分:0)
您可以对同一实体使用多种架构:
entity my_component is
--(only one port declaration for all component)
end entity;
architecture type1 of my_component is
--(type1 behavior)
end architecture;
architecture type2 of my_component is
--(type2 behavior)
end architecture;
architecture type3 of my_component is
--(type3 behavior)
end architecture;
然后,您可以在top_level文件中调用所需的任何体系结构:
typ1_inst0 : entity work.my_component(type1)
--(port map ...)
typ2_inst0 : entity work.my_component(type2)
--(port map ...)
typ3_inst0 : entity work.my_component(type3)
--(port map ...)