Multi-event buffer watchdog.This entity implements a "busy-box". More...
Architectures | |
rtl | Architecture |
Libraries | |
ieee | |
Packages | |
std_logic_1164 | |
numeric_std | |
Ports | |
clk | in std_logic |
Clock. | |
rstb | in std_logic |
A-sync. reset (active low). | |
l1 | in std_logic |
L1 trigger (active low). | |
l2r | in std_logic |
L2 reject (active low). | |
al_rpinc | in std_logic |
ALTRO read-pointer increment. | |
enable | in std_logic |
Enable the watch dog. | |
mebs | in std_logic_vector ( 3 downto 0 ) |
Number of MEBs. | |
meb_cnt | out std_logic_vector ( 3 downto 0 ) |
MEB counter. | |
full | out std_logic |
MEBs full. |
Multi-event buffer watchdog.
This entity implements a "busy-box".
On reception of an L2 accept trigger the internal counter of free event buffers is decremented. When the command RPINC
is sent from the RCU to the ALTROs (in broadcast), after the RCU has finished reading out a full event, the internal counter is incremented. If the internal counter reaches zero, the output signal full is asserted.
The full output can be masked out by the input signal enable. When full is asserted, the busy signal should be asserted thereby blocking all triggers until a new RPINC is seen, meaning a buffer is free in the ALTROs.
The number of buffers can be set freely in the range from 0 to 15. However, it should never exceed the number of buffers configured in the ALTROs (the number of RCU buffers doesn't matter).
In practise, this means that the maximum should be in the range 1-4 for 4 configured buffers in the ALTROs, and 1-8 for 8 configured buffers in the ALTROs. It's probably a good idea to leave out one, such that the ranges will be 1-3 and 1-7.
al_rpinc in std_logic [Port] |
ALTRO read-pointer increment.
clk in std_logic [Port] |
Clock.
enable in std_logic [Port] |
Enable the watch dog.
full out std_logic [Port] |
MEBs full.
ieee library [Library] |
l1 in std_logic [Port] |
L1 trigger (active low).
l2r in std_logic [Port] |
L2 reject (active low).
meb_cnt out std_logic_vector ( 3 downto 0 ) [Port] |
MEB counter.
mebs in std_logic_vector ( 3 downto 0 ) [Port] |
Number of MEBs.
numeric_std package [Package] |
rstb in std_logic [Port] |
A-sync. reset (active low).
std_logic_1164 package [Package] |