插銷

在所有例子中:

  • 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;