PoC.io.TimingCounter

This down-counter can be configured with a TIMING_TABLE (a ROM), from which the initial counter value is loaded. The table index can be selected by Slot. Timeout is a registered output. Up to 16 values fit into one ROM consisting of log2ceilnz(imax(TIMING_TABLE)) + 1 6-input LUTs.

Entity Declaration:

 1  port (
 2    Clock   : in  std_logic;                                    -- clock
 3    Enable  : in  std_logic;                                    -- enable counter
 4    Load    : in  std_logic;                                    -- load Timing Value from TIMING_TABLE selected by slot
 5    Slot    : in  natural range 0 to (TIMING_TABLE'length - 1); --
 6    Timeout : out std_logic                                     -- timing reached
 7  );
 8end entity;
 9
10
11architecture rtl of io_TimingCounter is
12  function transform(vec : T_NATVEC) return T_INTVEC is