use work.all;
architecture PENCODE_CON_TEST of TEST_BENCH is
  signal RUN, CLK : BIT;
  signal PG : BIT_VECTOR(3 downto 0);
  signal Y : BIT_VECTOR(1 downto 0);
  signal Z : BIT;

  component PENCODEC
    port (W : in BIT_VECTOR(3 downto 0);
          Y : out BIT_VECTOR(1 downto 0);
          Z : out BIT);
  end component;

  component ICG
    generic (N : INTEGER; PER : TIME);
    port (START : in BIT; PGOUT : out BIT_VECTOR (N-1 downto 0));
  end component;
    
  for L1: PENCODEC use entity PRIORITY_ENCODER(CON);
  for L2: ICG use entity PULSE_GEN(ALG);

begin
  L1: PENCODEC
    port map(W => PG, Y => Y, Z => Z);
  L2 : ICG
    generic map(4, 20 ns)
    port map(RUN, PG);

  process
  begin
    RUN <= '1', '0' after 10 ns;
    wait;
  end process;
end PENCODE_CON_TEST;
