1 / 13

DCC Configuration and Conditions DB ECAL OD Electronics Workshop Nuno Almeida

DCC Configuration and Conditions DB ECAL OD Electronics Workshop Nuno Almeida. Generic Configurator Requirements. Configure different hardware modules without changing the software Update/retrieve easily the configuration data Check device configuration

ivo
Download Presentation

DCC Configuration and Conditions DB ECAL OD Electronics Workshop Nuno Almeida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DCC Configuration and Conditions DB ECAL OD Electronics Workshop Nuno Almeida

  2. Generic Configurator Requirements • Configure different hardware modules without changing the software • Update/retrieve easily the configuration data • Check device configuration • Configure devices from DB or XML files • For portability the configuration should be specified in a way… : • Flexible enough to be adapted to different DB • Self describing and understandable by everyone

  3. Generic Configurator Software Layers Software Layers Inputs • Configuration Table • Defines the configuration of the device based on the item definition. • Used to load the configuration parameters into the device. Generic Configurator • Item Builder Table • Needed to create item objects. • Associates a structure (defined in a memory region) • to a register. Item Builder • HAL Table • Needed to create a VME/PCI device object. • Contains the definition of the hardware access registers • (AM code, address, accessibility (w/r), mask). HAL

  4. Single Configurable Configuration Table <TTCHARDRESET _userInfo="SingleConfig">0</TTCHARDRESET> … <TTCLASERL1A _userInfo="SingleConfig">6</TTCLASERL1A> <TTCTESTPULSE _userInfo="SingleConfig">7</TTCTESTPULSE> <TTCSTOP _userInfo="SingleConfig">10</TTCSTOP> Single Configurables • Associated with single items • Name must match with Item name and with Register name Single Items • No structure (the same as a HAL register) • Priority (default is priority = “0”) DCC Single Items • DCCTTC Codes • DCC op. attributes(ZS levels, Data timeouts,…) Item Builder Table <SingleItem name= "TTCHARDRESET" /> … <SingleItem name="TTCLASERL1A" /> <SingleItem name="TTCTESTPULSE" /> <SingleItem name="TTCSTOP“ /> HAL Table <VME64X_ADDRESS _type="Module" ITEM_NAME="TTCHARDRESET"> <ADDRESS _type="number">0x00000014</ADDRESS> <SPACE _type="string">memory</SPACE> <MAP _type="number">0</MAP> <READ_OR_WRITE _type="string">rw</READ_OR_WRITE> <MASK _type="number">0x0000003f</MASK> </VME64X_ADDRESS> …

  5. Segment Configurables Segment Configurables : • Associated with BitsSegment of a Composite Item • Name must match with name of the BitsSegment Composite Items : • Have structure and a length (number of words) Segmented Block (words with different BitsSegments)Continuous Block ( words with the same BitsSegment) … … Ex : DCC Operation Modes and Crystal Weights Ex: DCC Active Channels • Address incrementing mode AddrIncrement =“HAL_NO_INCREMENT” (Default) or AddrIncrement =“HAL_DO_INCREMENT” (FIFO) • Access type BlockTransfer =“off”(Default) or BlockTransfer=“on” DCC Composite Items • TTC Configuration • DCC op. attributes(ZS levels, Data timeouts,…) SEGC_0 SEGB_0 SEGA_0 SEG_3 SEG_2 SEG_1 SEG_0 SEGC_1 SEGB_1 SEGA_1 SEG_6 SEG_5 SEG_5 SEG_4

  6. Segment Configurables Configuration Table <SREADOUT_0 _userInfo="SegmentConfig">0</SREADOUT_0> <ZSUPPRESSION_0 _userInfo="SegmentConfig">0</ZSUPPRESSION_0> <DAQMODE_0 _userInfo="SegmentConfig">0</DAQMODE_0> <WEIGHTSMODE_0 _userInfo="SegmentConfig">0</WEIGHTSMODE_0> <TTSINTERFACE_0 _userInfo="SegmentConfig">0</TTSINTERFACE_0> <TEST_0 _userInfo="SegmentConfig">1</TEST_0> Item Builder Table <CompositeItem name="OPERATIONMODE" > <SegmentedBlock length="1"> <BitsSegment name="SREADOUT" width="1" position="0" /> <BitsSegment name="ZSUPPRESSION" width="1" position="1" /> <BitsSegment name="DAQMODE" width="1" position="2" /> <BitsSegment name="WEIGHTSMODE" width="1" position="3" /> <BitsSegment name="TTSINTERFACE" width="1" position="4" /> <BitsSegment name="TEST" width="1" position="5" /> … </SegmentedBlock> </CompositeItem> DCC Operation Mode 1 0 0 0 0 0 HAL Table <VME64X_ADDRESS _type="Module" ITEM_NAME="OPERATIONMODE"> <ADDRESS _type="number">0x00000004</ADDRESS> <SPACE _type="string">memory</SPACE> <MAP _type="number">0</MAP> <READ_OR_WRITE _type="string">rw</READ_OR_WRITE> <MASK _type="number">0x0000007f</MASK> </VME64X_ADDRESS>

  7. How to Group Configurables ? • Modules • Associated to an address region and having an address offset. • Configuration parameters can be located at identical functional hardware blocks. Ex in the DCC : 25 x 6 Weights for each FE channel (68) • Structures • A configurable container • Ex in the DCC : Active channels, operation attributes, operation modes, TTC codes • Modules and Structures are identified as DB Tables • <MODULENAME _userInfo=“MODULE” MODULENAME_ID=“0”> …</MODULENAME> • <STRUCTURENAME _userInfo=“STRUCTURE” STRUCTURENAME_ID=“0”> …</STRUCTURENAME>

  8. Sequence Diagram : loading a configuration

  9. Documentation http://ecal-od-software.web.cern.ch/ecal-od-software/ http://cmsdoc.cern.ch/~nalmeida/start/gconfig.htm (to get the code ,examples and APIs) “A Software Package for the Configuration of Hardware Devices Following a Generic Model. ” CMS NOTE-2004/014, Computer Physics Communications 163 (2004) 41-52.

  10. DCC Configuration Structure Module • Full configuration requires • loading of more than 11000 • parameters: • Active Channels • DCC TTC codes • Operation Attributes • Operation Modes • Xtals Weights for ZS Module Structure Structure Structure Structure

  11. DCC Configuration • Common DCC configuration parameters (operation mode and attr.) need to be loaded into 9 FPGAs • Define 9 different Modules => waste of space in DB (all modules share the same configuration !) • Possible solutions : • Hard coded (what is implemented now) Possible Extension to the GConfigurator void DCCConfigurator::loadConfiguration(DOMElement * mainElement){ DeviceConfigurator::loadConfiguration(mainElement); addClonedItems(); } void DCCConfigurator::addClonedItems(){ … for(ulong circuit = 1; circuit <= 9; circuit++ ){ offset = (circuit+0x60)<<12; // Deal With Operation mode //////////////////////////////////// cItem = itemBuilder_->buildCompositeItem("OPERATIONMODE",offset); itemSet_->insert(cItem); // Deal With Data timeout //////////////////////////////////////// sItem = itemBuilder_->buildSingleItem("DATATIMEOUT",offset); itemSet_->insert(sItem); … } fillClones(); } MODULE ADDRCLONE ADDRCLONE … ADDRCLONE …

  12. DCC Conditions DB Data stored for detector monitoring : • Operation Status • TTS Flags • Error Flags • Error Counters per channel (8 bits) : • Channel Error ( fatal Error) , Data Timeout , Header Error, • Channel L1A Error, Channel Bx Error, Card Id Error, • Even Parity Error, ODD Parity Error, Link Error, • Data Transfer Error, Almost Full, FIFO Full.

  13. Status • GConfigurator is implemented and being used : DCC, DCC-T, SLB, SLB-T, TCC • It would be nice to have a tool to generate DB input scripts based on the XML configuration file (the opposite is already possible) . • DCC Configuration stored in the DV ORACLE DB. • DCC Configuration Tables need to be renamed ex : OperationModes DCCOperationModes

More Related