Apple1Display/ttl/dm74166.vhd

45 lines
1001 B
VHDL

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity dm74166 is
port(
clk1, clk2: in std_logic;
input, ld, clr_l: in std_logic;
a, b, c, d, e, f, g, h: in std_logic;
output: out std_logic
);
end dm74166;
architecture behavior OF dm74166 is
signal Qa: std_logic := '0';
signal Qb: std_logic := '0';
signal Qc: std_logic := '0';
signal Qd: std_logic := '0';
signal Qe: std_logic := '0';
signal Qf: std_logic := '0';
signal Qg: std_logic := '0';
signal Qh: std_logic := '0';
begin
process(clk1, clk2, clr_l)
begin
if (clr_l = '0') then
Qa<='0'; Qb<='0'; Qc<='0'; Qd<='0'; Qe<='0'; Qf<='0'; Qg<='0'; Qh<='0';
elsif rising_edge(clk1) or rising_edge(clk2) then
if ld='0' then
Qa<=a; Qb<=b; Qc<=c; Qd<=d; Qe<=e; Qf<=f; Qg<=g; Qh<=h;
else
Qa<=input; Qb<=Qa; Qc<=Qb; Qd<=Qc; Qe<=Qd; Qf<=Qe; Qg<=Qf; Qh<=Qg;
end if;
end if;
end process;
output <= Qh when clr_l = '1'
else '0';
end architecture;