根据我对VHDL的理解,端口映射声明将为:
signal reset_n : std_logic;
...
port map (
...
reset_n => reset_n
);
...其中端口映射分配的LHS是组件上的端口名称,而RHS是您在上面声明的信号。
但是对于通用地图,RHS指的是什么?
...
generic map (
...
baud_rate => baud_rate
);
LHS是实体中的通用字段,无论RHS指定什么(对吗?),这是将值传递到通用对象的VHDL方式要写入的字段。但是,如果未将RHS声明为信号,则将什么分配/连接到LHS?到底是怎么回事?
答案 0 :(得分:2)
首先,LHS被称为正式,而RHS被称为 actual 。
形式是指您在实体中声明的常数。
entity foo is
generic (
constant baud_rate : T_BAUD
);
end entity;
实际在通用映射中与形式相关。就像您的情况 actual 是常量一样,您可以关联:
示例:
entity e is
generic (
baudrate : T_BAUD
);
end entity;
architecture a of e is
constant BR : T_BAUD := 100 kBd;
begin
inst1: entity work.foo
generic map (
baud_rate => baudrate
);
inst2: entity work.foo
generic map (
baud_rate => BR
);
inst3: entity work.foo
generic map (
baud_rate => 115.2 KBd
);
end architecture;