CRKit R4 VITA Spec rev 0.1 WINLAB – Rutgers University Date : May
VITA Data Packet PKT_TYPE : IF Data packet w/o sID IF Data packet w sID Extension Data packet w/o sID Extension Data packet w sID (supported in R4) IF Context packet Extension Contect packet Others - reserved C == 0, no Class Identifier field T == 0, no Trailer included TSI : 00 - no integer-seconds timestamp field 01 - Coordinated Universal Time (UTC) 10 - GPS time 11 - Other (supported in R4, second ticks) TSF : 00 - No fractional-seconds timestamp field 01 - sample count timestamp (supported in R4) 10 - Real time (ps) timestamp 11 - free running count timestamp PKT_CNT : Packet counter, wraps around e.g. 0x0 -> 0xF -> 0x0 Counter is linked to same sID and PKT_TYPE (different counter for different sID) PKT_SIZE : Packet size, number of 32-bit words (header + optional fields + payload). Here, header + optional fields = 5 words.
Time 1 sec = 10 8 clock ticks Number of seconds, wraps around e.g. 0xFFFFFFFF -> 0x Number of clock ticks, 1sec =10 8 = 0x5F5E100. CLOCK_CNT range = 0x0 -> 0x5F5E0FF (27-bit counter, other = 37 bits are NULL)
VITA Context Packet PKT_TYPE : (2 choices) IF Context packet Extension Contect packet C == 0, no Class Identifier field TSM == 0, time stamp used to convey precise timing of events or context changes TSI == b11, Other – number of seconds (same as for paired data packet) TSF == b01, sample count time stamp (same as for paired data packet) sID – same as for paired data packet No context indicator field for Extension Context packet. For IF context packet, the context-indicator field indicates which of the VITA standard control fields are present in the context message. See standard for further information. We assume that the context content is parsed by software.
VITA Emitter Cache last entry to avoid memory access read, increment and write-back. Note : incr + WB only if V == 1 Select Payload by default. Only insert header + timestamp fields when requested by Emitter CTL. IP processor ready to accept UDP payload e.g. VITA payload Only applicable to Context packets Prefetch next lookup table entry during current payload transfer MMU data ready
VITA Receiver UDP 1000 Payload Lookup using incoming sID e.g. direct-mapped VITA header + payload VITA payload only Delay line to line up data and portID. However, may not be necessary as VITA header + sID + timestamp fields are not forwarded to MMU. Use gap to fetch portID from lookup table. If (PKT_TYPE == 0100 OR PKT_TYPE == 0101) then CONTEXT PACKET -> PCORE else DATA PACKET -> MMU endif; Cache last entry to avoid memory access Provide portID one clock ahead of payload to preset port at MMU Open issue : how to use timestamp information ?