60 likes | 237 Views
CRKit R4 VITA Spec rev 0.1. WINLAB – Rutgers University Date : May 20 2011. VITA Data Packet. PKT_TYPE : 0000 - IF Data packet w/o sID 0001 - IF Data packet w sID 0010 - Extension Data packet w/o sID 0011 - Extension Data packet w sID (supported in R4) 0100 - IF Context packet
E N D
CRKit R4 VITA Specrev 0.1 WINLAB – Rutgers University Date : May 20 2011
VITA Data Packet PKT_TYPE : 0000 - IF Data packet w/o sID 0001 - IF Data packet w sID 0010 - Extension Data packet w/o sID 0011 - Extension Data packet w sID (supported in R4) 0100 - IF Context packet 0101 - 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 Generator @100MHz, 1 sec = 108 clock ticks Number of seconds, wraps around e.g. 0xFFFFFFFF -> 0x00000000 Number of clock ticks, 1sec =108 = 0x5F5E100. CLOCK_CNT range = 0x0 -> 0x5F5E0FF (27-bit counter, other 64-27 = 37 bits are NULL)
VITA Context 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. PKT_TYPE : (2 choices) 0100 - IF Context packet 0101 - 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
VITA Emitter Only applicable to Context packets MMU data ready IP processor ready to accept UDP payload e.g. VITA payload Prefetch next lookup table entry during current payload transfer Cache last entry to avoid memory access Select Payload by default. Only insert header + timestamp fields when requested by Emitter CTL. read, increment and write-back. Note : incr + WB only if V == 1
VITA Receiver VITA header + payload Open issue : how to use timestamp information ? VITA payload only UDP 1000 Payload 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; Provide portID one clock ahead of payload to preset port at MMU Cache last entry to avoid memory access Lookup using incoming sID e.g. direct-mapped