------------------------------------------------------------------------
-- IAY0105 - Digitaalsüsteemid. Kodutöö #1.
-- Näidislahendus loogikaelementidega.
------------------------------------------------------------------------
-- (C) Peeter Ellervee - 2007 - Tallinn
------------------------------------------------------------------------

entity skeem is
  port ( a, b, c, d: in bit;
         k, l, m, n: out bit );
end skeem;

architecture struktuur of skeem is
  signal ai, bi, ci, di: bit;
  signal t0i, t2i, t4i, t6x, t6i, t7i, t9i: bit;
  signal t51, t52, t53i, t54, t1t8i, t3t6i, t5t6i: bit;

  component nand2 is port (a, b: in bit; o: out bit); end component;
  component nand3 is port (a, b, c: in bit; o: out bit); end component;
  component or2 is port (a, b: in bit; o: out bit); end component;
  component nor2 is port (a, b: in bit; o: out bit); end component;
  component xor2 is port (a, b: in bit; o: out bit); end component;
begin

  u01: nand2 port map (a,a,ai);    u02: nand2 port map (b,b,bi);
  u03: nand2 port map (c,c,ci);    u04: nand2 port map (d,d,di);

  u11: or2 port map (a,d,t0i);        u12: nand2 port map (ai,c,t2i);
  u13: nand3 port map (a,c,d,t4i);    u14: nor2 port map (c,d,t6x);
  u15: nand2 port map (b,t6x,t6i);    u16: nand2 port map (b,d,t7i);
  u17: nand2 port map (bi,c,t9i);

  u21: nand2 port map (a,d,t51);      u22: xor2 port map (b,d,t52);
  u23: nand2 port map (a,bi,t53i);    u24: nand2 port map (t2i,t53i,t54);

  u31: nand2 port map (di,t54,t1t8i);    u32: nand2 port map (t52,ci,t3t6i);
  u33: nand3 port map (t51,b,ci,t5t6i);

  u41: nand3 port map (t0i,t4i,t5t6i,k);
  u42: nand2 port map (t2i,t3t6i,l);
  u43: nand3 port map (t1t8i,t6i,t7i,m);
  u44: nand3 port map (t1t8i,t4i,t9i,n);

end struktuur;
