ngspice/examples/xspice/ghdl/555.vhd

30 lines
581 B
VHDL
Raw Normal View History

-- Very simple logic for a 555 timer simulation
library ieee;
use ieee.std_logic_1164.all;
entity timer_core is
port (
Trigger, Threshold, Reset : in std_logic;
Q, Qbar : out std_logic
);
end timer_core;
architecture rtl of timer_core is
signal result : std_logic := '0';
signal ireset, go : std_logic;
begin
go <= Trigger and Reset;
ireset <= (Threshold and not go) or not Reset;
Q <= result;
Qbar <= not result;
process (go, ireset)
begin
if rising_edge(go) or rising_edge(ireset) then
result <= go;
end if;
end process;
end rtl;