Overview

The TrbNetOBUF is controlling what data content is leaving the hub.

Signal description

Media direction port

(similar as described in NewTriggerBusMedia)

Line Decription
MED_DATAREADY_OUT  
MED_DATA_OUT[0...15] Data word
MED_PACKET_NUM_OUT[0..1] Packet number
MED_READ_IN  
MED_ERROR_OUT[0..2] Status bits

Internal direction port

Line Decription
INT_DATAREADY_IN  
INT_DATA_IN[0...15] Data word
INT_PACKET_NUM_IN[0..1] Packet number
INT_READ_OUT reading
INT_ERROR_IN[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
CTRL_BUFFER[0...31] Status of the handshake and buffer control

STAT_LOCKED

PIN Name Description
0 RELEASE_LOCKED Remove locking

CTRL_LOCKED

PIN Name Description
0 IS_LOCKED IBUF has given away a TRM. Please no more data!

STAT_BUFFER

PIN Name Description
0-1 TRANSMITTED_BUFFERS Transmitted buffers without ACK
16-31 CURRENT_DATA_COUNT Transmitted data words in current buffer

CTRL_BUFFER

PIN Name Description
0-3 SEND_BUFFER_SIZE_IN Buffer size of my IBUF
4-7 REC_BUFFER_SIZE_IN Buffer size of the other IBUF (on the other side of the optical link)
8 SEND_ACK_IN EOB/TRM is killed by my partner IBUF, and ACK should be sent
9 GOT_ACK_IN Got an ACK from the other side

Functional description

The TrbNetOBUF is preparing the data for the output from 3 different sources: The data from the input, the EOB and the ACK words (Priority from low to high) The next data word is prepared when the media is reading the current word.

ACK

The ACK is prepared if SEND_ACK_IN is high or a SEND_ACK_IN was registered.

EOB

The EOB is sent if the current_data_count is matching (REC_BUFFER_SIZE_IN+1)**2. The EOB is prepared and for the next cycle CURRENT_DATA_COUNT will be resettet and TRANSMITTED_BUFFERS will be increased (if GOT_ACK_IN was not high in the same cycle)

Normal data word

CURRENT_DATA_COUNT will be increased.

-- IngoFroehlich - 21 Aug 2006
Topic revision: r3 - 27 Nov 2007, JanMichel
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Hades Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)