在VHDL的表述逻辑的PROCESS中,如果一个信号被条件调用或者,有信号在付值语句右侧出现,而这些信号又没有在敏感表中,则输出信号会形成 LATCH.对输入信号很多的逻辑最好不要用process表达,而用When...ELSE 或With...select等其他.
另外还有其他情况也可以生成latch.下面是一个例子.
...
signal A : std_logic_vector( 3 downto 0);
signal B : std_logic_vector( 2 downto 0);
...
process ( RST,CLK ) begin
if ( RST = '0' ) then
A <= ( others => '0' );
elsif ( CLK'event and CLK='1' ) then
A( 2 downto 0) <= B;
end if;
文章评论(0条评论)
登录后参与讨论