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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
entity io_TimingCounter is
  generic (
    TIMING_TABLE  : T_NATVEC                                          -- timing table
  );
  port (
    Clock         : in  std_logic;                                    -- clock
    Enable        : in  std_logic;                                    -- enable counter
    Load          : in  std_logic;                                    -- load Timing Value from TIMING_TABLE selected by slot
    Slot          : in  natural range 0 to (TIMING_TABLE'length - 1); --
    Timeout       : out std_logic                                     -- timing reached
  );
end entity;