插销
在所有例子中:
en
是使能信号,d
是输入,q
是输出,srst
是一个有源高同步复位,srstn
是低电平有效同步复位,arst
是一个有源高速异步复位,arstn
是一个低电平有效复位,sset
是一个高效的同步集,ssetn
是一个有源低同步集,aset
是一个活跃的高异步集,asetn
是一个低有效的低异步集
所有信号均为 ieee.std_logic_1164.std_ulogic
型。使用的语法是使用所有逻辑合成器得到正确合成结果的语法。有关备用语法的讨论,请参阅时钟边沿检测示例。
高效启用
process(en, d)
begin
if en = '1' then
q <= d;
end if;
end process;
低电平有效启用
process(en, d)
begin
if en = '0' then
q <= d;
end if;
end process;
高电平有效,同步有效高电平复位
process(en, d)
begin
if en = '1' then
if srst = '1' then
q <= '0';
else
q <= d;
end if;
end if;
end process;
高电平有效,异步高电平有效
process(en, d, arst)
begin
if arst = '1' then
q <= '0';
elsif en = '1' then
q <= d;
end if;
end process;
低电平有效,异步低电平有效,同步高电平有效
process(en, d, arstn)
begin
if arstn = '0' then
q <= '0';
elsif en = '0' then
if sset = '1' then
q <= '1';
else
q <= d;
end if;
end if;
end process;
高电平有效,异步有效高电平复位,异步低电平有效
注意:set 的优先级高于 reset
process(en, d, arst, asetn)
begin
if asetn = '0' then
q <= '1';
elsif arst = '1' then
q <= '0';
elsif en = '1' then
q <= d;
end if;
end process;