|
entity AtlasRODFormatterPacks readout data according to ATLAS ROD-readout format and SLINK-standard. |
This entity can be used in order to drive a 32 bit duplex SLINK source card with Atlas readout data formatted according to the Atlas ROD format specified in "The event format in the ATLAS DAQ/EF prototype-1" (Atlas Daq note 50: ATL-DAQ-98-129).
The variable data which are placed into the various fields of the Header, Data section and Trailor of the format are provided to the entity via various input ports.
The following restrictions / features are provided:
Examples of usage and diagrams of some formats can be found in the links below.
This entity has been developed for the MUCTPI interface. Therefore some names have meanings which refer to the MUCTPI context: The meaning of VME-Bus is actually some internal data bus via which readout actions can be performed. Candidates are the actually the Data you want to transfer to the SLINK. A Candidate takes one data word.
Generics:
| WITH_BUS_ANALYZER | determines if a Bus Analyzer will be implemented or not (to save resources). (possible values : "YES / NO") |
| ANALYZER_FIFO_DEPTH | gives the depth of the analyzer fifo in words (40 bits wide). |
| VME_WIDTH | is the width of the internal data bus which is used to readout the analyzer-fifo. YOU MUST USE EITHER 8 OR 32 BITS. |
| WITH_DATA_COUNTER | decides if an internal counter is implemented in order determine the length of the data section. If this information is already present in the design and can be provided via a port to the AtlasRODFormatter you can save resources by non implementing the counter (possible values: "YES / NO"). |
| CANDIDATE_COUNTER_WIDTH | has to be adjusted according to the maxmimal possible length of the data section. |
| CANDIDATE_WIDTH | is the width of the data words you want to send to the SLINK via the AtlasRODFormatter. If your words are less wide than 32 bits you can save resources. |
Ports:
| clock | is usually 40 MHz. |
| sclr | is a general reset. |
| ignoreSlinkStatus | if '1' ignores lff and ldown of SLINK. |
| generateEmptyEvent | if '1' generates event with empty data section |
| DAQActive | must be '1' in order to activate the readout process. |
| StartEvent | is the trigger to start the readout. It has to asserted until DataSent goes to '0' which indicates that the Controler STM has started (usually it starts only if the SLINK is ready to receive data). |
| readNextCandidate | indicates that the user should provide the next Candidate at the data input. |
| MoreCandidates | is needed by the internal state machine. It must indicate if there are more data words in the chain after the current Candidate for the current event. It serves as a "data-look-ahaead" bin and optimizes the Formatter for speed. |
| CandidateValid | indicates that the Candidates port contains valid data which must be read in by the Formatter. |
| Candidates | is the data input. |
| EVID | needs to be provided to form the header. |
| BCID | needs to be provided to form the header. |
| TriggerType | needs to be provided to form the header. |
| ErrorFlags | contains the first status word. |
| StatusFlags | contains the second status word. |
| CandidateCount | needs to be provided only if no internal Candidate Counter is implemented. |
| DataSent | indicates that the previous event has been sent and that the Formatter is ready for the next event. |
| AnalyzerMode | switches on the filling of the Analyzer Fifo. |
| AnalyzerContineousMode | If '1' at each clock cycle a data word is written into the fifo. In this case the readout is triggered by 'StartEvent'. If '0' only valid data (uwen='0') is written into the fifo. |
| VmeData | via this port the Analyzer fifo is read out. |
| advanceAnalyzerFifo | increments the readpointer of the Analyzer Fifo by one during the next clock. |
| readAnalyzerFifo0 | if 8 bit VmeData : reads out byte 0 |
| readAnalyzerFifo1 | if 8 bit VmeData : reads out byte 1 |
| readAnalyzerFifo2 | if 8 bit VmeData : reads out byte 2 |
| readAnalyzerFifo3 | if 8 bit VmeData : reads out byte 3 |
| readAnalyzerFifoLow | if 32 bit VmeData : reads out 32 bit data from AnalyzerFifo. |
| readAnalyzerFifoHigh | reads out the controlbits from the AnalyzerFifo. The following bit mapping holds: bit 0: ureset, bit 1: utest, bit 2: uctrl, bit 3: uwen, bit 4: lff, bit 5: ldown, bit 6: AnalyzerFifoEmpty, bit 7: AnalyzerFifoFull. |
| lff | SLINK line |
| ldown | SLINK line |
| ureset | SLINK line |
| utest | SLINK line |
| uctrl | SLINK line |
| uwen | SLINK line |
| ud | SLINK line |
See also: DaqProcessor, Lvl2Processor