Overview
The
TrbNetIBUF is buffering the data coming from the media. All word which are offered by the media must be read, otherwise
something is completly wrong (=error condition)
Signal description
(similar as described in
NewTriggerBusMedia)
Line |
Decription |
MED_DATAREADY_IN |
Data word is offered by the Media (the IBUF MUST read) |
MED_DATA_IN[0...15] |
Data word |
MED_PACKET_NUM_IN[0..1] |
Packet number |
MED_READ_OUT |
buffer reads a word from media |
MED_ERROR_IN[0..2] |
Status bits |
Internal direction port
Line |
Decription |
INT_HEADER_IN |
Concentrator kindly asks to resend the last header |
INT_DATAREADY_OUT |
Data word ready to be read out by the internal logic |
INT_DATA_OUT[0...15] |
Data word |
INT_PACKET_NUM_OUT[0..1] |
Packet number |
INT_READ_IN |
reading |
INT_ERROR_OUT[0..2] |
Status bits |
Status and control port
Line |
Decription |
STAT_LOCKED[0...15] |
Status of the locking mechanism |
CTRL_LOCKED[0...15] |
Control of the locking mechanism |
STAT_BUFFER[0...31] |
Status of the handshake and buffer control |
STAT_LOCKED
CTRL_LOCKED
STAT_BUFFER
PIN |
Name |
Description |
0-3 |
SEND_BUFFER_SIZE_OUT |
Buffer size of this IBUF |
4-7 |
REC_BUFFER_SIZE_OUT |
Buffer size of the other IBUF (on the other side of the optical link) |
8 |
GOT_EOB_OUT |
EOB/TRM is killed (and thus the complete buffer) in this clock cycle |
9 |
GOT_ACK_OUT |
Got an ACK from the other side |
10 |
GOT_OVERFLOW_ERROR |
fifo has been filled although full |
11 |
GOT_LOCKED_ERROR |
fifo has been filled while in locked mode |
Buffer size is 2^(n+1), max 64k words
Internal components
Functional description
Ports
The media direction port is connected to the data output of the media. This means if data is offered it must be
read from the media. If the fifo is full and the media offers data, this is an error condition and should be noticed (GOT_OVERFLOW_ERROR).
The internal port is not critical: If data is offered, but not read, the fifo will simply not been emptied.
If data is been read by the internal port, and this data word is a header, the header will be registered at the same time
for later use. At any point, the internal port may ask for a header (INT_HEADER_IN). Even if the fifo is empty, the INT_DATA_OUT
will contain the registered header. INT_DATAREADY_OUT should be ignored in this cas.
Locking
If the data word under read is a TRM, the IBUF goes into the locked state (IS_LOCKED). This state will be released with the RELEASE_LOCKED.
RELEASE_LOCKED may be always enabled for a free running trigger system.
If the IBUF is getting more data while in lock condition, this is an error condition and should be noticed (GOT_LOCKED_ERROR).
Misc
REC_BUFFER_SIZE_OUT will be updated with the media port. Default is 0 (=buffer size 2).
GOT_ACK_OUT will also be updated with the media port to have a fast reaction.
--
IngoFroehlich - 21 Aug 2006