插銷
在所有例子中:
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;