ENTITY sff2_x4 IS
GENERIC (
  CONSTANT area 	 : NATURAL := 600000;
  CONSTANT transistors	 : NATURAL := 34;
  CONSTANT cin_ck	 : NATURAL := 8;
  CONSTANT cin_cmd	 : NATURAL := 16;
  CONSTANT cin_i0	 : NATURAL := 8;
  CONSTANT cin_i1	 : NATURAL := 7;
  CONSTANT thr_i1_ck	 : NATURAL := 0;
  CONSTANT thf_i1_ck	 : NATURAL := 0;
  CONSTANT tsr_i1_ck	 : NATURAL := 666;
  CONSTANT tsf_i1_ck	 : NATURAL := 764;
  CONSTANT thr_i0_ck	 : NATURAL := 0;
  CONSTANT thf_i0_ck	 : NATURAL := 0;
  CONSTANT tsr_i0_ck	 : NATURAL := 666;
  CONSTANT tsf_i0_ck	 : NATURAL := 764;
  CONSTANT thr_cmd_ck	 : NATURAL := 0;
  CONSTANT thf_cmd_ck	 : NATURAL := 0;
  CONSTANT tsr_cmd_ck	 : NATURAL := 770;
  CONSTANT tsf_cmd_ck	 : NATURAL := 833;
  CONSTANT tar_ck_q	 : NATURAL := 500;
  CONSTANT taf_ck_q	 : NATURAL := 500;
  CONSTANT rup_ck_q	 : NATURAL := 890;
  CONSTANT rdown_ck_q	 : NATURAL := 800
);
PORT (
  ck	 : in  BIT;
  cmd	 : in  BIT;
  i0	 : in  BIT;
  i1	 : in  BIT;
  q	 : out BIT;
  vdd	 : in  BIT;
  vss	 : in  BIT
);
END sff2_x4;

ARCHITECTURE VBE OF sff2_x4 IS
  SIGNAL sff_m	 : REG_BIT REGISTER;

BEGIN
  ASSERT (vdd and not (vss))
  REPORT "power supply is missing on sff2_x4"
  SEVERITY WARNING;      

  label0 : BLOCK ((ck and not (ck'STABLE)) = '1')
  BEGIN
    sff_m <= GUARDED ((i1 and cmd) or (i0 and not (cmd)));
  END BLOCK label0;

  q <= sff_m after 2000 ps;
END;
