Line: 1 to 1 | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | THIS MANUAL IS INCOMPLETE but what is written here should be more accurate and up to date than the old "functional specification". Please e-mail me if you find mistakes/omissions here (Eric H). | ||||||||||||||||||||||||||||||||||||||||
> > | THIS MANUAL IS INCOMPLETE but what is written here should be more accurate and up to date than the old "functional specification". Please e-mail me if you find mistakes/omissions here (Eric H). | ||||||||||||||||||||||||||||||||||||||||
See Also | |||||||||||||||||||||||||||||||||||||||||
Line: 9 to 8 | |||||||||||||||||||||||||||||||||||||||||
Contents | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | |||||||||||||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||||||||||||
DAQ Outputs | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ (details here)![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ (details here)![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 has 3 SFP transceivers which may be used for DAQ. There are 3 possible configurations, determined by the value written to CONF.SFP.ENABLE_MASK. In addition, CONF.EVB.ENABLE_DAQLSC must be set to '1'. The AMC13Tool2 command daq may be used to accomplish this configuration. | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 has 3 SFP transceivers which may be used for DAQ. There are 3 possible configurations, determined by the value written to CONF.SFP.ENABLE_MASK. In addition, CONF.EVB.ENABLE_DAQLSC must be set to '1'. The AMC13Tool2 command daq may be used to accomplish this configuration. | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Line: 26 to 24 | |||||||||||||||||||||||||||||||||||||||||
Before data can be acquired through the link, the S-Link Express core must be properly configured by taking action on the receiver side (see uFEDKIT![]() | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | After changing the DAQ output configuration the logic and high-speed transceivers may be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd) but after this the links must be reconfigured from the receiver end. | ||||||||||||||||||||||||||||||||||||||||
> > | After changing the DAQ output configuration the logic and high-speed transceivers may be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd) but after this the links must be reconfigured from the receiver end. | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware in the CERN SVN and it's documentation may be found here: | ||||||||||||||||||||||||||||||||||||||||
> > | The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware in the CERN SVN and it's documentation may be found here: | ||||||||||||||||||||||||||||||||||||||||
Line: 39 to 36 | |||||||||||||||||||||||||||||||||||||||||
TTS | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over
the transmit half of the bottom SFP fiber transciever, and is normally sent to the TCDS system
to control the trigger rate in response to pending buffer overflows. This system is intended
to be logically compatible with the legacy system documented
HERE![]() ![]() | ||||||||||||||||||||||||||||||||||||||||
> > | The TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over the transmit half of the bottom SFP fiber transciever, and is normally sent to the TCDS system to control the trigger rate in response to pending buffer overflows. This system is intended to be logically compatible with the legacy system documented HERE![]() ![]() | ||||||||||||||||||||||||||||||||||||||||
The AMC13 outputs the TTS state as the four-bit code described in the links above: | |||||||||||||||||||||||||||||||||||||||||
Line: 59 to 51 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The states "Private Request 1..3" have the same priority as "Ready". They are never internally generated by the AMC13 but are passed on if received from connected AMC cards in the crate. | ||||||||||||||||||||||||||||||||||||||||
> > | The states "Private Request 1..3" have the same priority as "Ready". They are never internally generated by the AMC13 but are passed on if received from connected AMC cards in the crate. | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The state "DAQ Overflow Warning" indicates that the AMC13 has an impending buffer overflow and that simultaneously the DAQ output link has asserted the busy (backpressure) signal. | ||||||||||||||||||||||||||||||||||||||||
> > | The state "DAQ Overflow Warning" indicates that the AMC13 has an impending buffer overflow and that simultaneously the DAQ output link has asserted the busy (backpressure) signal. | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The states marked (2018) were recently added and must be explicitly enabled by setting bit 9 in T1 register 1 (tentatively named CONF.ENABLE_WARNING_DUE_TO_DAQ_TTS in the AMC13 address table). These features were added in about firmware version 0x6061 (0x2261). Any time the AMC13 is not in run mode (such as after power up) the AMC13 sends state "0100" (busy). Internally the AMC13 manages the TTS state using a 5 bit internal format; this is exposed in a few monitoring registers. This format should be decoded as text in the latest AMC13 software, but is documented here for completeness: | ||||||||||||||||||||||||||||||||||||||||
> > | The states marked (2018) were recently added and must be explicitly enabled by setting bit 9 in T1 register 1 (tentatively named CONF.ENABLE_WARNING_DUE_TO_DAQ_TTS in the AMC13 address table). These features were added in about firmware version 0x6061 (0x2261). Any time the AMC13 is not in run mode (such as after power up) the AMC13 sends state "0100" (busy). Internally the AMC13 manages the TTS state using a 5 bit internal format; this is exposed in a few monitoring registers. This format should be decoded as text in the latest AMC13 software, but is documented here for completeness: | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Line: 104 to 89 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||
> > | TTS TestingThere is a test mode which forces the AMC13 to send a specific 4-bit pattern on the (s)TTS output. For example: > WV CONF.DIAG.TTS_TEST_ENABLE 1 > WV CONF.TTS_TEST_PATTERN 5 This would send a binary 0101 (decimal 5) to TTS continuously. The test pattern is at offset 0x19, bits 8-11 and the enable bit is bit 12 at offset 0x1 (on the Virtex chip) | ||||||||||||||||||||||||||||||||||||||||
TTC Simulator | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate.
This allows operation of a stand-alone test setup with only an AMC13 and AMC cards in a single crate without
requiring any external TTC hardware. The simulated TTC signal will always include a BC0 sent once per LHC orbit.
Four "BGO" channels are provided which can send programmed short or long format TTC commands either
once under program command or periodically.
In addition, ECR (event count reset) and OCR (orbit count reset) TTC commands may be sent by writing
to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively.
N.B. the OCR and ECR mentioned above will not be reflected in the AMC13 registers until after
the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp
an event in in response to L1A.
The "BGO" channels are programmed using registers 0x24-0x27 (CONF.TTC.BGOn).
Each of the four channels requires the following settings, where BGOn is BGO0 ,
BGO1 , BGO2 or BGO3 . | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. This allows operation of a stand-alone test setup with only an AMC13 and AMC cards in a single crate without requiring any external TTC hardware. The simulated TTC signal will always include a BC0 sent once per LHC orbit. Four "BGO" channels are provided which can send programmed short or long format TTC commands either once under program command or periodically. In addition, ECR (event count reset) and OCR (orbit count reset) TTC commands may be sent by writing to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively.
N.B. the OCR and ECR mentioned above will not be reflected in the AMC13 registers until after the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp an event in in response to L1A.
The "BGO" channels are programmed using registers 0x24-0x27 (CONF.TTC.BGOn). Each of the four channels requires the following settings, where BGOn is BGO0, BGO1 , BGO2 or BGO3. | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
ENABLE_SINGLE may be set at one time.
If bit is set to 0 and ENABLE is set to '1' the commands are sent periodically | ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The simulated TTC function requires a TTC stream with at least the clock to be input to the receiver side of the TTC SFP. This can be provided externally, or via a short loop-back cable plugged between the input and output sides of the bottom SFP. | ||||||||||||||||||||||||||||||||||||||||
> > | The simulated TTC function requires a TTC stream with at least the clock to be input to the receiver side of the TTC SFP. This can be provided externally, or via a short loop-back cable plugged between the input and output sides of the bottom SFP. | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator must also be enabled (CONF.TTC.ENABLE_INTERNAL_L1A set to 1). | ||||||||||||||||||||||||||||||||||||||||
> > | This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator must also be enabled (CONF.TTC.ENABLE_INTERNAL_L1A set to 1). | ||||||||||||||||||||||||||||||||||||||||
TTC Command Details | |||||||||||||||||||||||||||||||||||||||||
Line: 151 to 129 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Note that for the programmable commands, there is both a command value register (8 bits) and a mask value register (8 bits) which allows only specific bits to be matched when decoding a received command. | ||||||||||||||||||||||||||||||||||||||||
> > | Note that for the programmable commands, there is both a command value register (8 bits) and a mask value register (8 bits) which allows only specific bits to be matched when decoding a received command. | ||||||||||||||||||||||||||||||||||||||||
[1] This should be programmable | |||||||||||||||||||||||||||||||||||||||||
Line: 168 to 144 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The link module will send properly formatted event data for every L1A it received, if necessary with faked events. If an event has any faked data, bit 23 of the AMC event trailer will be set to 1. | ||||||||||||||||||||||||||||||||||||||||
> > | The link module will send properly formatted event data for every L1A it received, if necessary with faked events. If an event has any faked data, bit 23 of the AMC event trailer will be set to 1. | ||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | When AMC13 finished building all events of received L1As, it will reset the backplane links if any faked data have been detected. Otherwise it will just remove TTS busy and forward AMCs' TTS state to the TCDS system. | ||||||||||||||||||||||||||||||||||||||||
> > | When AMC13 finished building all events of received L1As, it will reset the backplane links if any faked data have been detected. Otherwise it will just remove TTS busy and forward AMCs' TTS state to the TCDS system. | ||||||||||||||||||||||||||||||||||||||||
AMC13 event number will be reset to 1 upon receiving the TTC command, event number in the link module will also be reset to 1 once resync is done. | |||||||||||||||||||||||||||||||||||||||||
Line: 188 to 161 | |||||||||||||||||||||||||||||||||||||||||
Local L1A Generator | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | This feature allows the AMC13 to generate L1A and transmit them over the TTC backplane signals to AMC cards. It may be used in conjunction with the TTC Simulator described above, or with an external TTC input. | ||||||||||||||||||||||||||||||||||||||||
> > | This feature allows the AMC13 to generate L1A and transmit them over the TTC backplane signals to AMC cards. It may be used in conjunction with the TTC Simulator described above, or with an external TTC input. | ||||||||||||||||||||||||||||||||||||||||
There are 4 modes of operation available: | |||||||||||||||||||||||||||||||||||||||||
Line: 198 to 170 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Various registers are used to control the local L1A generator. The easiest way to control this feature is using the method AMC13::configureLocalL1A() in the AMC13 class. Then, call AMC13::sendL1ABurst() to send a single software-triggered burst, or AMC13::startContinuousL1A() and AMC13::stopContinuousL1A() to start or stop continuous triggers. | ||||||||||||||||||||||||||||||||||||||||
> > | Various registers are used to control the local L1A generator. The easiest way to control this feature is using the method AMC13::configureLocalL1A() in the AMC13 class. Then, call AMC13::sendL1ABurst() to send a single software-triggered burst, or AMC13::startContinuousL1A() and AMC13::stopContinuousL1A() to start or stop continuous triggers. | ||||||||||||||||||||||||||||||||||||||||
AMC13::configureLocalL1A( bool ena, int mode, uint32_t burst, uint32_t rate, int rules) documentation: | |||||||||||||||||||||||||||||||||||||||||
Line: 213 to 182 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Brief register-level documentation follows. Register at offset 0x1c controls the local L1A generation through the following bit fields: | ||||||||||||||||||||||||||||||||||||||||
> > | Brief register-level documentation follows. Register at offset 0x1c controls the local L1A generation through the following bit fields: | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Rule 1 is always enforced. The rules parameter to AMC13::configureLocalL1A or the CONF.LOCAL_TRIG.RULES item may be set as follows to suppress other rules: | ||||||||||||||||||||||||||||||||||||||||
> > | Rule 1 is always enforced. The rules parameter to AMC13::configureLocalL1A or the CONF.LOCAL_TRIG.RULES item may be set as follows to suppress other rules: | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Line: 231 to 198 | |||||||||||||||||||||||||||||||||||||||||
Fake Data Generator | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 can generate fake AMC data for testing. This works even if the AMC13 is not in the normal slot (it can be in any MicroTCA crate slot). Enable this feature using the f option to the enable command, e.g. | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 can generate fake AMC data for testing. This works even if the AMC13 is not in the normal slot (it can be in any MicroTCA crate slot). Enable this feature using the f option to the enable command, e.g. | ||||||||||||||||||||||||||||||||||||||||
> en 1-12 f t | |||||||||||||||||||||||||||||||||||||||||
Line: 239 to 203 | |||||||||||||||||||||||||||||||||||||||||
The size of each fake event may be set with: | |||||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||||
< < | |||||||||||||||||||||||||||||||||||||||||
> wv CONF.AMC.FAKE_DATA_SIZE | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | where the value is the number of 64-bit words in the body of the event. Here is an example for a small event (size set to 3): | ||||||||||||||||||||||||||||||||||||||||
> > | where the value is the number of 64-bit words in the body of the event. Here is an example for a small event (size set to 3): | ||||||||||||||||||||||||||||||||||||||||
> wv CONF.AMC.FAKE_DATA_SIZE 3 > en 1 f t > lt | |||||||||||||||||||||||||||||||||||||||||
Line: 271 to 233 | |||||||||||||||||||||||||||||||||||||||||
+--------------+------------------+ | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Note that all the "user" data is filled with 16-bit counter data, which starts at 0000 with the first word of the first AMC header, but values 0000-0005 are replaced by fixed values, so the first visible counter value is 0006. | ||||||||||||||||||||||||||||||||||||||||
> > | Note that all the "user" data is filled with 16-bit counter data, which starts at 0000 with the first word of the first AMC header, but values 0000-0005 are replaced by fixed values, so the first visible counter value is 0006. | ||||||||||||||||||||||||||||||||||||||||
Notes on generating high L1A rates (above 100kHz) | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | For LHC Phase 2 upgrade prototyping it is desirable to generate triggers up to around 750kHz. The AMC13 can do this but two settings must be changed from the defaults. | ||||||||||||||||||||||||||||||||||||||||
> > | For LHC Phase 2 upgrade prototyping it is desirable to generate triggers up to around 750kHz. The AMC13 can do this but two settings must be changed from the defaults. | ||||||||||||||||||||||||||||||||||||||||
First, the fake data generator event size must be reduced. This can be accomplished with the following (setting the size to 0x10 allows triggers well above 750kHz if only one fake AMC is enabled).
> wv CONF.AMC.FAKE_DATA_SIZE 0x10 | |||||||||||||||||||||||||||||||||||||||||
Line: 299 to 257 | |||||||||||||||||||||||||||||||||||||||||
> localL1A r 800000 | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Finally, note that various commands in the AMC13Tool2 reset the CONF.LOCAL_TRIG.RULES to the default 0 so one must include the command to reset this in any script or software. | ||||||||||||||||||||||||||||||||||||||||
> > | Finally, note that various commands in the AMC13Tool2 reset the CONF.LOCAL_TRIG.RULES to the default 0 so one must include the command to reset this in any script or software. | ||||||||||||||||||||||||||||||||||||||||
TTC History Capture(See also AMC13Tool2 documentation on this topic. | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | This feature added to the T2 (Spartan) firmware starting in version 0x26 allows the capture of up to 512 TTC short-format broadcast commands in a buffer. The commands may originate in the AMC13 itself (if the TTC simulator is being used) or received externally on the TTC fiber input. A filter feature is provided which checks incoming commands against a list of up to 16 entries, and if a match is found the command is discarded rather than being stored in the history. | ||||||||||||||||||||||||||||||||||||||||
> > | This feature added to the T2 (Spartan) firmware starting in version 0x26 allows the capture of up to 512 TTC short-format broadcast commands in a buffer. The commands may originate in the AMC13 itself (if the TTC simulator is being used) or received externally on the TTC fiber input. A filter feature is provided which checks incoming commands against a list of up to 16 entries, and if a match is found the command is discarded rather than being stored in the history. | ||||||||||||||||||||||||||||||||||||||||
Each filter item has the following 3 fields:
bits 0-7 TTC command value to match | |||||||||||||||||||||||||||||||||||||||||
Line: 321 to 273 | |||||||||||||||||||||||||||||||||||||||||
bit 16 This filter item is enabled if '1' | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Several C++ functions are provided which are briefly listed below.
See the nightly
API documentation![]() | ||||||||||||||||||||||||||||||||||||||||
> > | Several C++ functions are provided which are briefly listed below. See the nightly API documentation![]() | ||||||||||||||||||||||||||||||||||||||||
void setTTCHistoryEna( bool ena); // enable/disable history capture void setTTCFilterEna( bool ena); // enable/disable history filter void setTTCHistoryFilter( int n, uint32_t filterVal); // set individual filter item | |||||||||||||||||||||||||||||||||||||||||
Line: 337 to 286 | |||||||||||||||||||||||||||||||||||||||||
Monitor Buffer | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 can store up to 1024 event blocks in SDRAM memory pages (aka buffers) each
occupying 512k bytes. The default mode at power-up is that up to 1024 blocks are stored
(independent of DAQ outputs), storing stops and the bit STATUS.MONITOR_BUFFER.FULL is set.
At any time the number of occupied buffers may be read from STATUS.MONITOR_BUFFER.UNREAD_EVENTS .
Note that if any AMC payload is > 32k bytes the event will be segmented and the number of buffers
will be greater than the number of events.
One buffer at a time may be read at MONITOR_BUFFER_RAM , which
presents a window of up to 512k bytes (0x20000 32-bit words). Advance to the next buffer by writing to
ACTION.MONITOR_BUFFER.NEXT_PAGE . Note that one buffer may contain only the first block
of a segmented event. Generally a user should call AMC13::readEvent() to obtain the next event
including all blocks/buffers as necessary. After reading an event the corresponding buffers are freed
and new events may be stored. | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 can store up to 1024 event blocks in SDRAM memory pages (aka buffers) each occupying 512k bytes. The default mode at power-up is that up to 1024 blocks are stored (independent of DAQ outputs), storing stops and the bit STATUS.MONITOR_BUFFER.FULL is set. At any time the number of occupied buffers may be read from STATUS.MONITOR_BUFFER.UNREAD_EVENTS. Note that if any AMC payload is > 32k bytes the event will be segmented and the number of buffers will be greater than the number of events.
One buffer at a time may be read at MONITOR_BUFFER_RAM, which presents a window of up to 512k bytes (0x20000 32-bit words). Advance to the next buffer by writing to ACTION.MONITOR_BUFFER.NEXT_PAGE . Note that one buffer may contain only the first block of a segmented event. Generally a user should call AMC13::readEvent() to obtain the next event including all blocks/buffers as necessary. After reading an event the corresponding buffers are freed and new events may be stored. | ||||||||||||||||||||||||||||||||||||||||
If the AMC13 is configured with multiple event builders, then the monitor buffer ram is segmented with the following register name (address in parentheses), and each event builder is responsible for a subset of AMCs: | |||||||||||||||||||||||||||||||||||||||||
Line: 360 to 299 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The word count for the current buffer address is found at (0xd, 0xf, 0x1d) for first, second, third event builders. The register name is STATUS.MONITOR_BUFFER.WORDS_SFP0 for Buffer_0, and you can replace 0 with 1 or 2 for the other event builders. | ||||||||||||||||||||||||||||||||||||||||
> > | The word count for the current buffer address is found at (0xd, 0xf, 0x1d) for first, second, third event builders. The register name is STATUS.MONITOR_BUFFER.WORDS_SFP0 for Buffer_0, and you can replace 0 with 1 or 2 for the other event builders. | ||||||||||||||||||||||||||||||||||||||||
When multiple event builders are active, L1As with the same event number are guaranteed to start at the same buffer page. The word count in a segment of the monitor buffer can be zero while there is still valid data in other segments to allow for that to happen. It is important to note that reading from only one event builder and then advancing to the next buffer page will cause a loss of data in the other event builders. The method AMC13::readEventMultiFED() will automatically determine the number of event builders and return a vector containing a vector of 64 bit words for each active event builder representing the L1A. | |||||||||||||||||||||||||||||||||||||||||
Line: 370 to 309 | |||||||||||||||||||||||||||||||||||||||||
The monitor buffer may be run in a special "overwrite mode" in which case it acts as a circular buffer which continuously fills, overwriting any older data which may be present (the default behavior is to stop when full). This special mode can be useful as a spy on the data stream sent to the DAQ for diagnosing problems. Overwrite Mode differs from normal mode as follows: | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
Local Trigger Logic (DT) | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The following section describes a local trigger implemented for the DT group according
to the following specification: DT AMC13 requirement![]() | ||||||||||||||||||||||||||||||||||||||||
> > | The following section describes a local trigger implemented for the DT group according to the following specification: DT AMC13 requirement![]() | ||||||||||||||||||||||||||||||||||||||||
Before using the trigger, delay adjustment is necessary.
| |||||||||||||||||||||||||||||||||||||||||
Line: 415 to 347 | |||||||||||||||||||||||||||||||||||||||||
Local Trigger Logic (HCAL) | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The following section applies only to the HCAL firmware series (Kintex v0x4000 and up). A local trigger may be formed from 8 bits supplied each BX from each AMC card. There are a total of 8 independent logic triggers which are evaluated every BX and output on an optical fiber at 1.6 Gb/s (actually the TTC clock times 40) with 8b10b encoding. (Fabric B is not used because the HCAL uHTR did not connect it!) | ||||||||||||||||||||||||||||||||||||||||
> > | The following section applies only to the HCAL firmware series (Kintex v0x4000 and up). A local trigger may be formed from 8 bits supplied each BX from each AMC card. There are a total of 8 independent logic triggers which are evaluated every BX and output on an optical fiber at 1.6 Gb/s (actually the TTC clock times 40) with 8b10b encoding. (Fabric B is not used because the HCAL uHTR did not connect it!) | ||||||||||||||||||||||||||||||||||||||||
Each of the 8 individual logic triggers works as follows: | |||||||||||||||||||||||||||||||||||||||||
Line: 439 to 367 | |||||||||||||||||||||||||||||||||||||||||
The registers which control this feature are as follows:
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
Clock / Trigger Inputs | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | The AMC13 external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The AMC operating clock can only come from the fiber input, though this can be provided in a self-contained way using a loop-back fiber . The choices are enumerated in the following table. | ||||||||||||||||||||||||||||||||||||||||
> > | The AMC13 external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The AMC operating clock can only come from the fiber input, though this can be provided in a self-contained way using a loop-back fiber . The choices are enumerated in the following table. | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Line: 465 to 391 | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | To use these features, enable the AMC13 as usual using the 'en' command in AMC13Tool2 (or C++ class equivalent), then set the desired bits to '1' using AMC13Tool2 commands, e.g. | ||||||||||||||||||||||||||||||||||||||||
> > | To use these features, enable the AMC13 as usual using the 'en' command in AMC13Tool2 (or C++ class equivalent), then set the desired bits to '1' using AMC13Tool2 commands, e.g. | ||||||||||||||||||||||||||||||||||||||||
> en 1-6 t > wv CONF.TTC.ENABLE_INTERNAL_L1A 1 | |||||||||||||||||||||||||||||||||||||||||
Line: 487 to 411 | |||||||||||||||||||||||||||||||||||||||||
The AMC13 implements several features to facilitate triggers for calibration purposes during the LHC "Orbit Gap" during which no normal L1A should occur. The details of this have to a certain extent been lost in time. | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | See 2009 CMS Note![]() | ||||||||||||||||||||||||||||||||||||||||
> > | See 2009 CMS Note![]() | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
Wu's Debugging GuideAMC13 quick trobleshooting with register dump |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 31 to 31 | ||||||||
The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware in the CERN SVN and it's documentation may be found here: | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > | There is a "Documentation" folder with an MS-word document describing the core, including the registers accessible from the AMC13 side. | |||||||
See also MonitorBufferBugs for some details about event sizes and segmentation. |
Line: 1 to 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Line: 47 to 47 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The AMC13 outputs the TTS state as the four-bit code described in the links above: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The states "Private Request 1..3" have the same priority as "Ready". They are never internally generated by the AMC13 but are passed on if received from connected AMC cards in the crate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Line: 83 to 83 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(A value of 0 means "ready") The TTS state is sent over the same 5.0Gb/s link as the DAQ data. There's an input port in our link logic on the AMC side: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- TTS port TTSclk : in std_logic; -- clock source which clocks TTS signals TTS : in std_logic_vector (3 downto 0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < | When the TTS state changes, a control word is sent across the link to transfer the information with minimum latency to the AMC13. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > | When the TTS state changes, a control word is sent across the link to transfer the information with minimum latency to the AMC13. A TTS state must persist for at least two BX to be guaranteed to be transmitted. Latency is "minimum" but not guaranteed to be any specific value. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Here are some more details on how the TTS state is generated in the AMC13: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Line: 474 to 481 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Resetting the PLLThe PLL which recovers the clock on the TTC input may lose lock if e.g. the TTC clock is interrupted for some reason. This PLL may be reset using the following command in '''AMC13Tool2''': | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < |
> wv 0x0 0x8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > | > wv 0x0 0x8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < | Currently there is no address table entry nor dedicated command to accomplish this. Also, I am fairly certain that this reset is performed only at power-up and not as part of any software initialization sequence in the AMC13 or HCAL software! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > | Currently there is no address table entry nor dedicated command to accomplish this. This reset is performed only at power-up and not as part of any software initialization sequence in the AMC13 or HCAL software! It can require up to 100us for the PLL to lock. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Line: 630 to 635 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Monitoring RegistersThis section provides documentation on a few of the monitoring registers which have proven to be confusing. Eventually there should be detailed description for all registers, but who knows when this will get done! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
< < |
AMC_EvN_Mismatch (offset 0x6/0x7) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> > | AMC_EvN_Mismatch (offset 0x6/0x7) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This checks that the EvN in bits 32-55 of the first word sent by the AMC Matches the current EvN in the AMC13 (reset to 1 on EcR, increment each L1A) This check is performed in our link firmware in the AMC card. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 441 to 441 | ||||||||
| ||||||||
Changed: | ||||||||
< < | External Clock / Trigger Inputs | |||||||
> > | Clock / Trigger Inputs | |||||||
The AMC13 external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The AMC operating clock can only come from the fiber input, though this can be provided in a self-contained way using a loop-back fiber . | ||||||||
Line: 471 to 471 | ||||||||
> wv CONF.TTC.ENABLE_INTERNAL_L1A 1 > wv CONF.TTC.T3_TRIG 1 | ||||||||
Added: | ||||||||
> > | Resetting the PLLThe PLL which recovers the clock on the TTC input may lose lock if e.g. the TTC clock is interrupted for some reason. This PLL may be reset using the following command in '''AMC13Tool2''':> wv 0x0 0x8Currently there is no address table entry nor dedicated command to accomplish this. Also, I am fairly certain that this reset is performed only at power-up and not as part of any software initialization sequence in the AMC13 or HCAL software! -- ![]() | |||||||
HCAL Orbit Gap CalibrationThe AMC13 implements several features to facilitate triggers for calibration purposes during the LHC "Orbit Gap" during which no normal L1A should occur. The details of this have to a certain extent been lost in time. |
Line: 1 to 1 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Line: 22 to 22 | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
At power-up the S-Link Express core and associated GTX SERDES will be enabled for any SFP which are installed. The AMC13 must still be configured to send data on the appropriate SFP by writing the registers described above. Normally, ACTION.RESETS.DAQ should not be written as this will cause the GTX to be reset again, possibly bringing the link down.
Before data can be acquired through the link, the S-Link Express core must be properly configured by taking action on the receiver side (see uFEDKIT![]() | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | After changing the DAQ output configuration the logic and high-speed transceivers may be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd) but after this the links must be reconfigured from the receiver end. | |||||||||||||||||||||||||
> > | After changing the DAQ output configuration the logic and high-speed transceivers may be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd) but after this the links must be reconfigured from the receiver end. | |||||||||||||||||||||||||
The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware in the CERN SVN and it's documentation may be found here: | ||||||||||||||||||||||||||
Line: 35 to 34 | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | See also MonitorBufferBugs for some details about event sizes and segmentation. | |||||||||||||||||||||||||
> > | See also MonitorBufferBugs for some details about event sizes and segmentation. | |||||||||||||||||||||||||
TTS | ||||||||||||||||||||||||||
Line: 82 to 80 | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
(A value of 0 means "ready") The TTS state is sent over the same 5.0Gb/s link as the DAQ data. There's an input port in our link logic on the AMC side: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
-- TTS port | |||||||||||||||||||||||||
> > | -- TTS port | |||||||||||||||||||||||||
TTSclk : in std_logic; -- clock source which clocks TTS signals TTS : in std_logic_vector (3 downto 0); | ||||||||||||||||||||||||||
Line: 102 to 97 | ||||||||||||||||||||||||||
Additionally, up to 12 TTS states are received as described above from AMC cards. The final TTS output state is simply a priority encoding of the 12 AMC states plus the local AM13 one.
| ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
TTC Simulator | ||||||||||||||||||||||||||
Line: 171 to 164 | ||||||||||||||||||||||||||
Here is Christoph Schwick's description of how this facility works: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
is issued to reset all Event Counters of all sub-systems to '1'. | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
Here is Mr Wu's description of how the AMC13 processes resync: | ||||||||||||||||||||||||||
Line: 220 to 212 | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
Brief register-level documentation follows. Register at offset 0x1c
controls the local L1A generation through the following bit fields:
| ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
Rule 1 is always enforced. The rules parameter to AMC13::configureLocalL1A or the CONF.LOCAL_TRIG.RULES item may be set as follows to suppress other rules: | ||||||||||||||||||||||||||
Line: 242 to 233 | ||||||||||||||||||||||||||
The AMC13 can generate fake AMC data for testing. This works even if the AMC13 is not in the normal slot (it can be in any MicroTCA crate slot). Enable this feature using the f option to the enable command, e.g. | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | > en 1-12 f t | |||||||||||||||||||||||||
> > |
> en 1-12 f t | |||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||
> > | ||||||||||||||||||||||||||
The size of each fake event may be set with: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | > wv CONF.AMC.FAKE_DATA_SIZE | |||||||||||||||||||||||||
> > |
> wv CONF.AMC.FAKE_DATA_SIZE | |||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||
> > | ||||||||||||||||||||||||||
where the value is the number of 64-bit words in the body of the event. Here is an example for a small event (size set to 3): | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
> wv CONF.AMC.FAKE_DATA_SIZE 3 > en 1 f t > lt > re all | |||||||||||||||||||||||||
> > | > wv CONF.AMC.FAKE_DATA_SIZE 3 > en 1 f t > lt > re all | |||||||||||||||||||||||||
+--------------+------------------+
| ||||||||||||||||||||||||||
Line: 290 to 281 | ||||||||||||||||||||||||||
750kHz. The AMC13 can do this but two settings must be changed from the defaults. First, the fake data generator event size must be reduced. This can be accomplished with the following (setting the size to 0x10 allows triggers well above 750kHz if only one fake AMC is enabled). | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
> wv CONF.AMC.FAKE_DATA_SIZE 0x10 | |||||||||||||||||||||||||
> > | > wv CONF.AMC.FAKE_DATA_SIZE 0x10 | |||||||||||||||||||||||||
Second, to get above about 670kHz the CMS trigger rules must be disabled: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
> wv CONF.LOCAL_TRIG.RULES 3 | |||||||||||||||||||||||||
> > | > wv CONF.LOCAL_TRIG.RULES 3 | |||||||||||||||||||||||||
(see section above for detailed documentation). To get 800kHz fixed rate one can use: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
> localL1A b 50 | |||||||||||||||||||||||||
> > | > localL1A b 50 | |||||||||||||||||||||||||
Or 800kHz random: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
> localL1A r 800000 | |||||||||||||||||||||||||
> > | > localL1A r 800000 | |||||||||||||||||||||||||
Finally, note that various commands in the AMC13Tool2 reset the CONF.LOCAL_TRIG.RULES to | ||||||||||||||||||||||||||
Line: 320 to 303 | ||||||||||||||||||||||||||
TTC History Capture | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | (See also AMC13Tool2 documentation on this topic. | |||||||||||||||||||||||||
> > | (See also AMC13Tool2 documentation on this topic. | |||||||||||||||||||||||||
This feature added to the T2 (Spartan) firmware starting in version 0x26 allows the capture of up to 512 TTC short-format broadcast commands in a buffer. | ||||||||||||||||||||||||||
Line: 332 to 315 | ||||||||||||||||||||||||||
than being stored in the history. Each filter item has the following 3 fields: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
bits 0-7 TTC command value to match | |||||||||||||||||||||||||
> > | bits 0-7 TTC command value to match | |||||||||||||||||||||||||
bits 8-15 Mask applied before match. '1' to ignore specified bit bit 16 This filter item is enabled if '1' | ||||||||||||||||||||||||||
Line: 343 to 324 | ||||||||||||||||||||||||||
See the nightly
API documentation![]() | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
void setTTCHistoryEna( bool ena); // enable/disable history capture | |||||||||||||||||||||||||
> > | void setTTCHistoryEna( bool ena); // enable/disable history capture | |||||||||||||||||||||||||
void setTTCFilterEna( bool ena); // enable/disable history filter void setTTCHistoryFilter( int n, uint32_t filterVal); // set individual filter item uint32_t getTTCHistoryFilter( int n); // get individual filter item | ||||||||||||||||||||||||||
Line: 361 to 340 | ||||||||||||||||||||||||||
occupying 512k bytes. The default mode at power-up is that up to 1024 blocks are stored
(independent of DAQ outputs), storing stops and the bit STATUS.MONITOR_BUFFER.FULL is set.
At any time the number of occupied buffers may be read from STATUS.MONITOR_BUFFER.UNREAD_EVENTS . | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | Note that if any AMC payload is > 32k bytes the event will be segmented and the number of buffers | |||||||||||||||||||||||||
> > | Note that if any AMC payload is > 32k bytes the event will be segmented and the number of buffers | |||||||||||||||||||||||||
will be greater than the number of events.
One buffer at a time may be read at MONITOR_BUFFER_RAM , which | ||||||||||||||||||||||||||
Line: 469 to 443 | ||||||||||||||||||||||||||
External Clock / Trigger Inputs | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | The AMC13 clock and external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). | |||||||||||||||||||||||||
> > | The AMC13 external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The AMC operating clock can only come from the fiber input, though this can be provided in a self-contained way using a loop-back fiber . | |||||||||||||||||||||||||
The choices are enumerated in the following table.
| ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
Notes: | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
| |||||||||||||||||||||||||
> > |
| |||||||||||||||||||||||||
The control bits above can be accessed in the AMC13 software using the following names: | ||||||||||||||||||||||||||
Line: 493 to 466 | ||||||||||||||||||||||||||
To use these features, enable the AMC13 as usual using the 'en' command in AMC13Tool2 (or C++ class equivalent), then set the desired bits to '1' using AMC13Tool2 commands, e.g. | ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
> en 1-6 t > wv CONF.TTC.ENABLE_INTERNAL_L1A 1 | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < | > wv CONF.TTC.T3_TRIG 1 | |||||||||||||||||||||||||
> > | > wv CONF.TTC.T3_TRIG 1 | |||||||||||||||||||||||||
HCAL Orbit Gap Calibration | ||||||||||||||||||||||||||
Line: 521 to 488 | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
Wu's Debugging Guide | ||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||
< < |
AMC13 quick trobleshooting with register dump | |||||||||||||||||||||||||
> > | AMC13 quick trobleshooting with register dump | |||||||||||||||||||||||||
Last updated on 3/19/2015 Following description is accurate only for T1 versions | ||||||||||||||||||||||||||
Line: 655 to 618 | ||||||||||||||||||||||||||
Monitoring RegistersThis section provides documentation on a few of the monitoring registers which have proven to be confusing. Eventually there should be detailed description for all registers, but who knows when this will get done! | ||||||||||||||||||||||||||
Deleted: | ||||||||||||||||||||||||||
< < | ||||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||
> > | ||||||||||||||||||||||||||
AMC_EvN_Mismatch (offset 0x6/0x7) This checks that the EvN in bits 32-55 of the first word sent by the AMC Matches the current EvN in the AMC13 (reset to 1 on EcR, increment each L1A) |
Line: 1 to 1 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Line: 475 to 475 | |||||||||||||||||||
| |||||||||||||||||||
Changed: | |||||||||||||||||||
< < |
| ||||||||||||||||||
> > |
| ||||||||||||||||||
| |||||||||||||||||||
Added: | |||||||||||||||||||
> > | The control bits above can be accessed in the AMC13 software using the following names:
> en 1-6 t > wv CONF.TTC.ENABLE_INTERNAL_L1A 1 > wv CONF.TTC.T3_TRIG 1 | ||||||||||||||||||
HCAL Orbit Gap CalibrationThe AMC13 implements several features to facilitate triggers for calibration purposes during the LHC "Orbit Gap" during which no normal L1A should occur. The details of this have to a certain extent been lost in time. |
Line: 1 to 1 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Line: 44 to 44 | |||||||||||||||||||||||||||||
to control the trigger rate in response to pending buffer overflows. This system is intended
to be logically compatible with the legacy system documented
HERE![]() | |||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||
> > | Recently (2018) a new set of states has been added, please see this page![]() | ||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||
< < | The AMC13 outputs the TTS state as the four-bit code described in the link above: | ||||||||||||||||||||||||||||
> > | The AMC13 outputs the TTS state as the four-bit code described in the links above: | ||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||
> > | The states "Private Request 1..3" have the same priority as "Ready". They are never internally generated by the AMC13 but are passed on if received from connected AMC cards in the crate. The state "DAQ Overflow Warning" indicates that the AMC13 has an impending buffer overflow and that simultaneously the DAQ output link has asserted the busy (backpressure) signal. The states marked (2018) were recently added and must be explicitly enabled by setting bit 9 in T1 register 1 (tentatively named CONF.ENABLE_WARNING_DUE_TO_DAQ_TTS in the AMC13 address table). These features were added in about firmware version 0x6061 (0x2261). | ||||||||||||||||||||||||||||
Any time the AMC13 is not in run mode (such as after power up) the AMC13 sends state "0100" (busy). |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 269 to 269 | ||||||||
but values 0000-0005 are replaced by fixed values, so the first visible counter value is 0006. | ||||||||
Added: | ||||||||
> > | Notes on generating high L1A rates (above 100kHz)For LHC Phase 2 upgrade prototyping it is desirable to generate triggers up to around 750kHz. The AMC13 can do this but two settings must be changed from the defaults. First, the fake data generator event size must be reduced. This can be accomplished with the following (setting the size to 0x10 allows triggers well above 750kHz if only one fake AMC is enabled).> wv CONF.AMC.FAKE_DATA_SIZE 0x10Second, to get above about 670kHz the CMS trigger rules must be disabled: > wv CONF.LOCAL_TRIG.RULES 3(see section above for detailed documentation). To get 800kHz fixed rate one can use: > localL1A b 50Or 800kHz random: > localL1A r 800000Finally, note that various commands in the AMC13Tool2 reset the CONF.LOCAL_TRIG.RULES to the default 0 so one must include the command to reset this in any script or software. | |||||||
TTC History Capture(See also AMC13Tool2 documentation on this topic. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 418 to 418 | ||||||||
| ||||||||
Changed: | ||||||||
< < | External Clock / Trigger Inputs (g-2) | |||||||
> > | External Clock / Trigger Inputs | |||||||
Deleted: | ||||||||
< < | The following section applies only to the g-2 firmware series (Kintex 0x8000 and up). | |||||||
The AMC13 clock and external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The choices are enumerated in the following table. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 271 to 271 | ||||||||
TTC History Capture | ||||||||
Added: | ||||||||
> > | (See also AMC13Tool2 documentation on this topic. | |||||||
This feature added to the T2 (Spartan) firmware starting in version 0x26 allows the capture of up to 512 TTC short-format broadcast commands in a buffer. The commands may originate in the AMC13 itself (if the TTC simulator is being used) |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 35 to 35 | ||||||||
| ||||||||
Added: | ||||||||
> > | See also MonitorBufferBugs for some details about event sizes and segmentation. | |||||||
TTSThe TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 220 to 220 | ||||||||
| ||||||||
Added: | ||||||||
> > | Fake Data GeneratorThe AMC13 can generate fake AMC data for testing. This works even if the AMC13 is not in the normal slot (it can be in any MicroTCA crate slot). Enable this feature using the f option to the enable command, e.g.> en 1-12 f tThe size of each fake event may be set with: > wv CONF.AMC.FAKE_DATA_SIZEwhere the value is the number of 64-bit words in the body of the event. Here is an example for a small event (size set to 3): > wv CONF.AMC.FAKE_DATA_SIZE 3 > en 1 f t > lt > re all +--------------+------------------+ | FED ID | 0x000 | | Channel | SFP0 | | Orbit # | 96318876 | | Bunch X-ing | 500 | | Event # | 4 | | Event Size | 11 | +--------------+------------------+ | 0 | 510000041f400008 | CMS header | 1 | 101000b05bdb59c0 | AMC13 header (nAMC=1) | 2 | 0f00000600010000 | AMC13 block header for AMC1 with size=6 | 3 | 010000041f400006 | AMC1 first header EvN=4 Data_length=6 | 4 | 00070006b59c0000 | AMC1 second header, user words "00070006" are fake data | 5 | 000b000a00090008 | body word 1 with counter data | 6 | 000f000e000d000c | body word 2 with counter data | 7 | 0013001200110010 | body word 3 with counter data | 8 | b83a5dd204000006 | AMC1 trailer length=6 and CRC | 9 | d3bd9968000041f4 | AMC13 block trailer with CRC (BcN=0x1f4) | 10 | a000000bff7e0000 | CMS trailer +--------------+------------------+Note that all the "user" data is filled with 16-bit counter data, which starts at 0000 with the first word of the first AMC header, but values 0000-0005 are replaced by fixed values, so the first visible counter value is 0006. | |||||||
TTC History Capture |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 288 to 288 | ||||||||
-- ColinJacob - 13 Dec 2015 | ||||||||
Added: | ||||||||
> > | Monitor Buffer Overwrite Mode | |||||||
Added: | ||||||||
> > | The monitor buffer may be run in a special "overwrite mode" in which case it acts as a circular buffer which continuously fills, overwriting any older data which may be present (the default behavior is to stop when full). This special mode can be useful as a spy on the data stream sent to the DAQ for diagnosing problems. Overwrite Mode differs from normal mode as follows:
| |||||||
Local Trigger Logic (DT) |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 112 to 112 | ||||||||
| ||||||||
Added: | ||||||||
> > |
| |||||||
ENABLE_SINGLE may be set at one time. | ||||||||
Changed: | ||||||||
< < | If bit is set to 0 the commands are sent periodically | |||||||
> > | If bit is set to 0 and ENABLE is set to '1' the commands are sent periodically | |||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 121 to 121 | ||||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. | ||||||||
Changed: | ||||||||
< < | The simulated TTC function requires a clock which is transmitted on the output side of the TTC SFP optical transceiver and must be received on the input side, so a short loop-back cable must be plugged | |||||||
> > | The simulated TTC function requires a TTC stream with at least the clock to be input to the receiver side of the TTC SFP. This can be provided externally, or via a short loop-back cable plugged | |||||||
between the input and output sides of the bottom SFP. This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator |
Line: 1 to 1 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||
Line: 270 to 270 | |||||||||||||||||||||||||
including all blocks/buffers as necessary. After reading an event the corresponding buffers are freed and new events may be stored. | |||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||
< < | If the AMC13 is configured with multiple event builders, then the monitor buffer ram is segmented as follows: | ||||||||||||||||||||||||
> > | If the AMC13 is configured with multiple event builders, then the monitor buffer ram is segmented with the following register name (address in parentheses), and each event builder is responsible for a subset of AMCs: | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||
< < | The word count for the current buffer address is found at (0xd, 0xf, 0x1d) for first, second, third event builders. | ||||||||||||||||||||||||
> > | The word count for the current buffer address is found at (0xd, 0xf, 0x1d) for first, second, third event builders. The register name is STATUS.MONITOR_BUFFER.WORDS_SFP0 for Buffer_0, and you can replace 0 with 1 or 2 for the other event builders.
When multiple event builders are active, L1As with the same event number are guaranteed to start at the same buffer page. The word count in a segment of the monitor buffer can be zero while there is still valid data in other segments to allow for that to happen. It is important to note that reading from only one event builder and then advancing to the next buffer page will cause a loss of data in the other event builders. The method AMC13::readEventMultiFED() will automatically determine the number of event builders and return a vector containing a vector of 64 bit words for each active event builder representing the L1A.
-- ColinJacob - 13 Dec 2015 | ||||||||||||||||||||||||
Line: 1 to 1 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
Line: 270 to 270 | |||||||||||||||||
including all blocks/buffers as necessary. After reading an event the corresponding buffers are freed and new events may be stored. | |||||||||||||||||
Added: | |||||||||||||||||
> > | If the AMC13 is configured with multiple event builders, then the monitor buffer ram is segmented as follows:
| ||||||||||||||||
Local Trigger Logic (DT) |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 144 to 144 | ||||||||
[1] This should be programmable | ||||||||
Changed: | ||||||||
< < | These are taken originally from this table![]() | |||||||
> > | These are taken originally from this table![]() Resync commandThis command is designed to allow the CMS DAQ system to recover from cases where one or more data sources loses synchronization due to e.g. a radiation-induced single-event upset in the event number or buffer overflow. The idea is that when the SYN state is reported over TTS that the central trigger will stop sending triggers, issue a special "Resync" TTC broadcast command, and then wait for all data sources to send data for all the L1A received before the resync, then flush any remaining data and set TTS to RDY. Here is Christoph Schwick's description of how this facility works:
| |||||||
Local L1A Generator |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 14 to 14 | ||||||||
DAQ OutputsThe AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ (details here)![]() | ||||||||
Changed: | ||||||||
< < | This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual![]() | |||||||
> > | This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual![]() ![]() | |||||||
The AMC13 has 3 SFP transceivers which may be used for DAQ. There are 3 possible configurations, determined by the value written to CONF.SFP.ENABLE_MASK. In addition, CONF.EVB.ENABLE_DAQLSC must be set to '1'. The AMC13Tool2 command daq may be used to accomplish this configuration. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 229 to 227 | ||||||||
int getTTCHistoryCount(); // get TTC hsitory count | ||||||||
Added: | ||||||||
> > | Monitor BufferThe AMC13 can store up to 1024 event blocks in SDRAM memory pages (aka buffers) each occupying 512k bytes. The default mode at power-up is that up to 1024 blocks are stored (independent of DAQ outputs), storing stops and the bitSTATUS.MONITOR_BUFFER.FULL is set.
At any time the number of occupied buffers may be read from STATUS.MONITOR_BUFFER.UNREAD_EVENTS .
Note that if any AMC payload is > 32k bytes the event will be segmented and the number of buffers
will be greater than the number of events.
One buffer at a time may be read at MONITOR_BUFFER_RAM , which
presents a window of up to 512k bytes (0x20000 32-bit words). Advance to the next buffer by writing to
ACTION.MONITOR_BUFFER.NEXT_PAGE . Note that one buffer may contain only the first block
of a segmented event. Generally a user should call AMC13::readEvent() to obtain the next event
including all blocks/buffers as necessary. After reading an event the corresponding buffers are freed
and new events may be stored.
| |||||||
Local Trigger Logic (DT)The following section describes a local trigger implemented for the DT group according |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 13 to 13 | ||||||||
DAQ Outputs | ||||||||
Changed: | ||||||||
< < | The AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ.
This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual![]() | |||||||
> > | The AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ (details here)![]() ![]() | |||||||
The AMC13 has 3 SFP transceivers which may be used for DAQ. There are 3 possible configurations, determined by the value written to CONF.SFP.ENABLE_MASK. In addition, CONF.EVB.ENABLE_DAQLSC must be set to '1'. The AMC13Tool2 command daq may be used to accomplish this configuration. | ||||||||
Line: 24 to 23 | ||||||||
| ||||||||
Changed: | ||||||||
< < | After changing the DAQ output configuration the logic and high-speed transceivers must be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd). | |||||||
> > | At power-up the S-Link Express core and associated GTX SERDES will be enabled for any SFP which are installed. The AMC13 must still be configured to send data on the appropriate SFP by writing the registers described above. Normally, ACTION.RESETS.DAQ should not be written as this will cause the GTX to be reset again, possibly bringing the link down.
Before data can be acquired through the link, the S-Link Express core must be properly configured by taking action on the receiver side (see uFEDKIT![]() AMC13Tool2 command rd) but after this the links must be reconfigured from the receiver end. | |||||||
The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware in the CERN SVN and it's documentation may be found here: |
Line: 1 to 1 | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Line: 81 to 81 | |||||||||||||||||||||||||||||||
Additionally, up to 12 TTS states are received as described above from AMC cards. The final TTS output state is simply a priority encoding of the 12 AMC states plus the local AM13 one. | |||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||
TTC SimulatorThe AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 73 to 73 | ||||||||
TTS : in std_logic_vector (3 downto 0); | ||||||||
Changed: | ||||||||
< < | When the TTS state changes, a control word is sent across the link to transfer the information with minimum latency to the AMC13. The final TTS output state is simply a priority encoding of the 12 AMC states plus the local AM13 one. | |||||||
> > | When the TTS state changes, a control word is sent across the link to transfer the information with minimum latency to the AMC13. Here are some more details on how the TTS state is generated in the AMC13: The AMC13 contains an L1A FIFO into which L1A are stored when received by the TTC or generated by the internal L1A generator. The event builders (up to 3) read L1A from the FIFO and wait for available event fragments from each enabled AMC input. Then the event is built and sent out the corresponding DAQ link and/or stored in the SDRAM monitor buffer. The AMC13 internal TTS state is generated exclusively based on the number of L1A stored in the L1A FIFO. Additionally, up to 12 TTS states are received as described above from AMC cards. The final TTS output state is simply a priority encoding of the 12 AMC states plus the local AM13 one. | |||||||
TTC Simulator |
Line: 1 to 1 | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||
Line: 300 to 300 | ||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||||||||||||||||||||||
> > | HCAL Orbit Gap CalibrationThe AMC13 implements several features to facilitate triggers for calibration purposes during the LHC "Orbit Gap" during which no normal L1A should occur. The details of this have to a certain extent been lost in time. See 2009 CMS Note![]()
| |||||||||||||||||||||||||||||||||||||||||||||
Wu's Debugging Guide |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 429 to 429 | ||||||||
wusx@bu.edu with subject as amc13debug | ||||||||
Added: | ||||||||
> > | Monitoring RegistersThis section provides documentation on a few of the monitoring registers which have proven to be confusing. Eventually there should be detailed description for all registers, but who knows when this will get done!AMC_EvN_Mismatch (offset 0x6/0x7) This checks that the EvN in bits 32-55 of the first word sent by the AMC Matches the current EvN in the AMC13 (reset to 1 on EcR, increment each L1A) This check is performed in our link firmware in the AMC card. AMC_Trailer_EvN_Bad This checks if the 8 bits of EvN in the last word bits 24-31 match bit 32-39 of the first word. AMC_EvN_Errors This check if the EvN supplied by the AMC increments by one each L1A AMC13_EvN_Mismatch This is essentially the same as AMC_EvN_Mismatch except that the check is performed in the AMC13 firmware. | |||||||
-- EricHazen - 23 Mar 2015 |
Line: 1 to 1 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Line: 235 to 235 | ||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
Changed: | ||||||||||||||||||||||||||||||||||||||||||
< < | LUT trigger uses registers in the range of 0x100-0x10f and 0x200-0x7ff | |||||||||||||||||||||||||||||||||||||||||
> > | LUT trigger uses registers in the range of 0x100-0x10f and 0x200-0x7ff. The bits are numbered LSB-MSB within each 32-bit word, and thus may be treated as a single vector of 16384 bits. The address within this vector is formed using a 14-bit address as follows:
| |||||||||||||||||||||||||||||||||||||||||
Local Trigger Logic (HCAL) |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 211 to 211 | ||||||||
int getTTCHistoryCount(); // get TTC hsitory count | ||||||||
Added: | ||||||||
> > | Local Trigger Logic (DT)The following section describes a local trigger implemented for the DT group according to the following specification: DT AMC13 requirement![]()
| |||||||
Local Trigger Logic (HCAL) | ||||||||
Line: 218 to 243 | ||||||||
A local trigger may be formed from 8 bits supplied each BX from each AMC card. There are a total of 8 independent logic triggers which are evaluated every BX and output on an optical fiber at 1.6 Gb/s (actually the TTC clock times 40) with 8b10b encoding. | ||||||||
Added: | ||||||||
> > | (Fabric B is not used because the HCAL uHTR did not connect it!) | |||||||
Each of the 8 individual logic triggers works as follows: |
Line: 1 to 1 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
Line: 212 to 212 | |||||||||||||||||
Added: | |||||||||||||||||
> > | Local Trigger Logic (HCAL) | ||||||||||||||||
Added: | |||||||||||||||||
> > | The following section applies only to the HCAL firmware series (Kintex v0x4000 and up).
A local trigger may be formed from 8 bits supplied each BX from each AMC card.
There are a total of 8 independent logic triggers which are evaluated every BX
and output on an optical fiber at 1.6 Gb/s (actually the TTC clock times 40) with 8b10b encoding.
Each of the 8 individual logic triggers works as follows:
| ||||||||||||||||
External Clock / Trigger Inputs (g-2) |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 96 to 96 | ||||||||
| ||||||||
Deleted: | ||||||||
< < |
| |||||||
ENABLE_SINGLE may be set at one time. | ||||||||
Added: | ||||||||
> > | If bit is set to 0 the commands are sent periodically | |||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. |
Line: 1 to 1 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Line: 97 to 97 | |||||||||||||||||||
| |||||||||||||||||||
Changed: | |||||||||||||||||||
< < |
| ||||||||||||||||||
> > |
| ||||||||||||||||||
| |||||||||||||||||||
Added: | |||||||||||||||||||
> > | [1] Only one of four ENABLE_SINGLE may be set at one time. | ||||||||||||||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. The simulated TTC function requires a clock which is transmitted on the output side of the TTC | |||||||||||||||||||
Line: 218 to 220 | |||||||||||||||||||
The AMC13 clock and external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The choices are enumerated in the following table. | |||||||||||||||||||
Changed: | |||||||||||||||||||
< < |
| ||||||||||||||||||
> > |
| ||||||||||||||||||
| |||||||||||||||||||
Changed: | |||||||||||||||||||
< < |
| ||||||||||||||||||
> > |
| ||||||||||||||||||
Notes: |
Line: 1 to 1 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Line: 79 to 79 | |||||||||||||||||||||
The AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. This allows operation of a stand-alone test setup with only an AMC13 and AMC cards in a single crate without | |||||||||||||||||||||
Changed: | |||||||||||||||||||||
< < | requiring any external TTC hardware. The simulated TTC signal will include a BC0 sent once per LHC orbit. | ||||||||||||||||||||
> > | requiring any external TTC hardware. The simulated TTC signal will always include a BC0 sent once per LHC orbit. Four "BGO" channels are provided which can send programmed short or long format TTC commands either once under program command or periodically. | ||||||||||||||||||||
In addition, ECR (event count reset) and OCR (orbit count reset) TTC commands may be sent by writing to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively. | |||||||||||||||||||||
Line: 87 to 89 | |||||||||||||||||||||
the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp an event in in response to L1A. | |||||||||||||||||||||
Added: | |||||||||||||||||||||
> > | The "BGO" channels are programmed using registers 0x24-0x27 (CONF.TTC.BGOn).
Each of the four channels requires the following settings, where BGOn is BGO0 ,
BGO1 , BGO2 or BGO3 .
| ||||||||||||||||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. | |||||||||||||||||||||
Changed: | |||||||||||||||||||||
< < | The simulated TTC signal is transmitted on the output side of the TTC | ||||||||||||||||||||
> > | The simulated TTC function requires a clock which is transmitted on the output side of the TTC | ||||||||||||||||||||
SFP optical transceiver and must be received on the input side, so a short loop-back cable must be plugged between the input and output sides of the bottom SFP. This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator must also be enabled (CONF.TTC.ENABLE_INTERNAL_L1A set to 1). | |||||||||||||||||||||
Changed: | |||||||||||||||||||||
< < | The TTC commands generated by the TTC simulator are as follows | ||||||||||||||||||||
> > | TTC Command DetailsThe AMC13 can transmit and take action on several specific TTC commands.
| ||||||||||||||||||||
Changed: | |||||||||||||||||||||
< < |
| ||||||||||||||||||||
> > | [1] This should be programmable | ||||||||||||||||||||
These are taken originally from this table![]() |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 26 to 26 | ||||||||
After changing the DAQ output configuration the logic and high-speed transceivers must be reset by writing to ACTION.RESETS.DAQ (AMC13Tool2 command rd). | ||||||||
Added: | ||||||||
> > | The DAQ sender firmware itself was provided by the CMS cDAQ group. Links to the firmware
in the CERN SVN and it's documentation may be found here:
| |||||||
TTSThe TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 198 to 198 | ||||||||
| ||||||||
Added: | ||||||||
> > | Wu's Debugging Guide | |||||||
Deleted: | ||||||||
< < | -- EricHazen - 20 Aug 2014 | |||||||
\ No newline at end of file | ||||||||
Added: | ||||||||
> > | AMC13 quick trobleshooting with register dump Last updated on 3/19/2015 Following description is accurate only for T1 versions 0x4020, 0x225, T2 version 0x27 and later. Also make sure bit 11-0 of T1 reg 0x5 are all 0, any bit set to 1 indicates that AMC module has a different backplane link version as that of the AMC13 T1 firmware. T1 version is bit 31-16 of T1 reg 0x1 T2 version is bit 15-0 of T2 reg 0x0 a)Keep firmware up to date Always check for the latest firmware and upgrade your system. New versions are released to fix bugs or adding debugging information, so it is important to keep your firmware up to date. If you have problems, upgrade to the latest version and see if that solves your problem. b)TTC problems Once set up right and TTC works correctly, check regularly the following T2 registers: 0x7 counts bcnt errors, it should have no more than couple of counts. 0x8 counts TTC single errors, it should have no more than couple of counts. 0x9 counts TTC multiple errors, it should have no more than couple of counts. If TTC does not work, first check T1 reg 0x4: if bit0 is 1, TTC optical receiver is absent. if bit7 is 1, there's no TTC input signal, check the cabling to TTC source. If AMC13 registers look OK, but AMC modules have TTC problem, make sure your TTC decoder has the right timing. AMC13 output TTC clock's edge is in the middle of the TTC data on the backplane. c)run stopped because of AMC13 If run stopped and bit 15-12 of T1 reg 0x19 is not 0x8, check T1 registers 0xe1a, 0xe1b and 0xe1c. If any of them is non-zero, at least one AMC is causing the problem. Each AMC uses one byte, AMC1 using bit7-0 of reg 0xe1a and AMC2 using bit15-8 of reg 0xe1a and AMC3 .... The definition of the byte is bit7 if set, AMC has been in disconnected state bit6 if set, AMC has been in error state bit5 if set, AMC has been in out of sync state bit4 if set, AMC is in disconnected state bit3 if set, AMC is in error state bit2 if set, AMC is in out of sync state bit1 if set, AMC is in busy state bit0 if set, AMC is in overflow warning state If AMC13 is in overflow warning or busy states, first check T1 reg 0x0. If bit0 is set, cDAQ is down. Otherwise, check T1 reg 0xd4, if bit 18-16 are not all 0. cDAQ full stopped sending data out. If cDAQ is neither down nor full, and bit 10-8 are all 0, then it is event builder not building events. Next check T1 register 0xe0c, if any bit of bit 11-0 is not 0, the corresponding AMC(bit 0 AMC1) has no data. d) data integrity problems T1 register 0xb3-0xb5 counts event cmsCRC error for SFP0,SFP1 and SFP2 T1 register 0xb6-0xb8 counts event length error for SFP0,SFP1 and SFP2 T1 register space 0x800-0xdff are monitoring counters for AMC modules, each AMC module occupies 0x80 32 bit space, AMC1 uses 0x800-0x87F. following registers' address is offset address in their own space. Each counter occupies two 32 bit space. Even address is the lower 32 bits and odd address is the upper 16 bits of the counter. offset 0x6-7 is event number of the event mismatch counter offset 0x8-9 is Orbit count of the event mismatch counter offset 0xa-b is BC count of the event mismatch counter offset 0x12-13 is bad EventLength counter offset 0x14-15 is trailer Evn mismatch counter offset 0x1e-1f is link input Evn skip counter offset 0x3a-3b short event at input counter(less than three 64bit words) offset 0x3c-3d number padded words for short event (offset less than 0x40 are from the backplane link module built inside the AMC module.) offset 0x6a-6b is the same as offset 0x6-7, but counted inside AMC13 offset 0x6c-6d is the same as offset 0xa-b, but counted inside AMC13 offset 0x6e-6f is the same as offset 0x8-9, but counted inside AMC13 offset 0x70-71 is the same as offset 0x12-13, but counted inside AMC13 offset 0x78-79 is bad AMC event CRC counter offset 0x7a-7b is TTS state is error counter offset 0x7c-7d is TTS state is out of sync counter offset 0x7e-7f is TTS state is disconnect counter If all these counters are 0, there is no data integrity problem detected. e) Other T1 registers containing important run information 0x46 number of L1A received 0xba low word of SFP0 sum of event length from CDF trailer 0xbb bit 55-32 of SFP0 sum of event length from CDF trailer 0xbc low word of SFP1 sum of event length from CDF trailer 0xbd bit 55-32 of SFP1 sum of event length from CDF trailer 0xbe low word of SFP2 sum of event length from CDF trailer 0xbf bit 55-32 of SFP2 sum of event length from CDF trailer 0xc0 SFP0 built event count 0xc1 SFP1 built event count 0xc2 SFP2 built event count 0xc4 SFP0 built event word count(lower 32 bit) 0xc5 SFP1 built event word count(lower 32 bit) 0xc6 SFP2 built event word count(lower 32 bit) 0xc8 SFP0 built event block count 0xc9 SFP1 built event block count 0xca SFP2 built event block count in the range of 0x800-0xdff, for each AMC module: offset 0xc-d number of events received at link input offset 0x18-19 number of words received at link input offset 0x40-41 number of words received by AMC13 from AMC module offset 0x52-53 number of events received by AMC13 from AMC module offset 0x72-73 number of event blocks received by AMC13 from AMC module f) Monitor buffer can buffer up to 0x400 events/blocks, each buffer occupies 0x20000 32 bit words. you can read any buffer using the following command: rv [starting address] [length] where starting address = 0x8000000 + (offset x 0x20000) e.g. the starting address of the first buffer is 0x8000000 and the starting address of the second buffer is 0x8020000, etc. maximum offset is 0x3ff and the length is in 32 bit words. Please email comments and suggestions to wusx@bu.edu with subject as amc13debug-- EricHazen - 23 Mar 2015 | |||||||
\ No newline at end of file |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 143 to 143 | ||||||||
| ||||||||
Added: | ||||||||
> > |
TTC History CaptureThis feature added to the T2 (Spartan) firmware starting in version 0x26 allows the capture of up to 512 TTC short-format broadcast commands in a buffer. The commands may originate in the AMC13 itself (if the TTC simulator is being used) or received externally on the TTC fiber input. A filter feature is provided which checks incoming commands against a list of up to 16 entries, and if a match is found the command is discarded rather than being stored in the history. Each filter item has the following 3 fields:bits 0-7 TTC command value to match bits 8-15 Mask applied before match. '1' to ignore specified bit bit 16 This filter item is enabled if '1'Several C++ functions are provided which are briefly listed below. See the nightly API documentation ![]() void setTTCHistoryEna( bool ena); // enable/disable history capture void setTTCFilterEna( bool ena); // enable/disable history filter void setTTCHistoryFilter( int n, uint32_t filterVal); // set individual filter item uint32_t getTTCHistoryFilter( int n); // get individual filter item void clearTTCHistoryFilter(); // clear entire filter list void clearTTCHistory(); // clear capture history (reset count) void getTTCHistory( uint32_t* buffer, int nhist); // get TTC history list (READ DOCS) int getTTCHistoryCount(); // get TTC hsitory count | |||||||
External Clock / Trigger Inputs (g-2)The following section applies only to the g-2 firmware series (Kintex 0x8000 and up). |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 59 to 59 | ||||||||
(A value of 0 means "ready") | ||||||||
Added: | ||||||||
> > | The TTS state is sent over the same 5.0Gb/s link as the DAQ data. There's an input port in our link logic on the AMC side:
-- TTS port TTSclk : in std_logic; -- clock source which clocks TTS signals TTS : in std_logic_vector (3 downto 0);When the TTS state changes, a control word is sent across the link to transfer the information with minimum latency to the AMC13. The final TTS output state is simply a priority encoding of the 12 AMC states plus the local AM13 one. | |||||||
TTC SimulatorThe AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. |
Line: 1 to 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Line: 47 to 47 | |||||||||||
Any time the AMC13 is not in run mode (such as after power up) the AMC13 sends state "0100" (busy). | |||||||||||
Added: | |||||||||||
> > | Internally the AMC13 manages the TTS state using a 5 bit internal format; this is
exposed in a few monitoring registers. This format should be decoded as text
in the latest AMC13 software, but is documented here for completeness:
| ||||||||||
TTC SimulatorThe AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. |
Line: 1 to 1 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Line: 56 to 56 | |||||||||||||
to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively. N.B. the OCR and ECR mentioned above will not be reflected in the AMC13 registers until after | |||||||||||||
Changed: | |||||||||||||
< < | the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp an event in in response to L1A. | ||||||||||||
> > | the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp an event in in response to L1A. | ||||||||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. | |||||||||||||
Line: 68 to 68 | |||||||||||||
This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator must also be enabled (CONF.TTC.ENABLE_INTERNAL_L1A set to 1). | |||||||||||||
Added: | |||||||||||||
> > | The TTC commands generated by the TTC simulator are as follows
![]() | ||||||||||||
Local L1A GeneratorThis feature allows the AMC13 to generate L1A and transmit them over the TTC backplane signals to AMC cards. |
Line: 1 to 1 | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | Just starting on this! | ||||||||||||||||||||||||||||||
> > | THIS MANUAL IS INCOMPLETE but what is written here should be more accurate and up to date than the old "functional specification". Please e-mail me if you find mistakes/omissions here (Eric H). | ||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | See Also | ||||||||||||||||||||||||||||||
> > | See Also | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
Line: 10 to 11 | |||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||
> > | DAQ OutputsThe AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ. This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual![]() AMC13Tool2 command daq may be used to accomplish this configuration.
AMC13Tool2 command rd). | ||||||||||||||||||||||||||||||
TTSThe TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over | |||||||||||||||||||||||||||||||
Line: 96 to 112 | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||
> > | External Clock / Trigger Inputs (g-2)The following section applies only to the g-2 firmware series (Kintex 0x8000 and up). The AMC13 clock and external trigger can come from one of 3 sources (optical fiber, internal or external copper signal). The choices are enumerated in the following table.
| ||||||||||||||||||||||||||||||
-- EricHazen - 20 Aug 2014 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Added: | ||||||||
> > | See Also
| |||||||
TTS |
Line: 1 to 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Added: | ||||||||||||||||||||||||||||||||||||||||||||||||||
> > | TTSThe TTS (Trigger Throttling System) output from the AMC13 is a four-bit code transmitted over the transmit half of the bottom SFP fiber transciever, and is normally sent to the TCDS system to control the trigger rate in response to pending buffer overflows. This system is intended to be logically compatible with the legacy system documented HERE![]()
| |||||||||||||||||||||||||||||||||||||||||||||||||
TTC SimulatorThe AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 12 to 12 | ||||||||
In addition, ECR (event count reset) and OCR (orbit count reset) TTC commands may be sent by writing to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively. | ||||||||
Added: | ||||||||
> > | N.B. the OCR and ECR mentioned above will not be reflected in the AMC13 registers until after the next L1A, as the current EvN and OrN in the AMC13 are not visible; they are used only to stamp an event in in response to L1A. | |||||||
Locally-generated triggers may be sent in a rather flexible way. See the next section for details. The simulated TTC signal is transmitted on the output side of the TTC |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Added: | ||||||||
> > | ||||||||
TTC SimulatorThe AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. |
Line: 1 to 1 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Line: 31 to 31 | |||||||||||||||
| |||||||||||||||
Changed: | |||||||||||||||
< < | Various registers are used to control the local L1A generator. The easiest way to control this feature
is using the method AMC13::configureLocalL1A() in the AMC13 class. Brief documentation is included below.
AMC13::configureLocalL1A( bool ena, int mode, uint32_t burst, uint32_t rate, int rules) ena true to enable the L1A generator mode 0 - periodic triggers spaced by rate orbits at BX=500 1 - periodic triggers spaced by rate bx 2 - random trigger at 2*rate Hz burst number of triggers in a burst (1-4096) rate sets the rate based on mode (1-65536) rules set to 0 normally to enforce the "standard" CMS trigger rules | ||||||||||||||
> > | Various registers are used to control the local L1A generator. The easiest way to control this feature
is using the method AMC13::configureLocalL1A() in the AMC13 class. Then, call AMC13::sendL1ABurst() to
send a single software-triggered burst, or AMC13::startContinuousL1A() and AMC13::stopContinuousL1A() to
start or stop continuous triggers.
AMC13::configureLocalL1A( bool ena, int mode, uint32_t burst, uint32_t rate, int rules) documentation:
| ||||||||||||||
Brief register-level documentation follows. Register at offset 0x1c controls the local L1A generation through the following bit fields: | |||||||||||||||
Line: 52 to 53 | |||||||||||||||
| |||||||||||||||
Changed: | |||||||||||||||
< < |
| ||||||||||||||
> > |
| ||||||||||||||
Rule 1 is always enforced. The rules parameter to AMC13::configureLocalL1A or the CONF.LOCAL_TRIG.RULES item may be set as follows to suppress other rules: |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Added: | ||||||||
> > | TTC Simulator | |||||||
Added: | ||||||||
> > | The AMC13 has the ability to generate simulated TTC signals and distribute them to AMC cards in the crate. This allows operation of a stand-alone test setup with only an AMC13 and AMC cards in a single crate without requiring any external TTC hardware. The simulated TTC signal will include a BC0 sent once per LHC orbit. In addition, ECR (event count reset) and OCR (orbit count reset) TTC commands may be sent by writing to the ACTION.LOCAL_TRIG.SEND_ECR and ACTION.LOCAL_TRIG.SEND_OCR registers, respectively. | |||||||
Added: | ||||||||
> > | Locally-generated triggers may be sent in a rather flexible way. See the next section for details.
The simulated TTC signal is transmitted on the output side of the TTC
SFP optical transceiver and must be received on the input side, so a short loop-back cable must be plugged
between the input and output sides of the bottom SFP.
This feature is enabled by setting CONF.DIAG.FAKE_TTC_ENABLE to 1. The local L1A generator
must also be enabled (CONF.TTC.ENABLE_INTERNAL_L1A set to 1).
Local L1A GeneratorThis feature allows the AMC13 to generate L1A and transmit them over the TTC backplane signals to AMC cards. It may be used in conjunction with the TTC Simulator described above, or with an external TTC input. There are 4 modes of operation available:
AMC13::configureLocalL1A( bool ena, int mode, uint32_t burst, uint32_t rate, int rules) ena true to enable the L1A generator mode 0 - periodic triggers spaced by rate orbits at BX=500 1 - periodic triggers spaced by rate bx 2 - random trigger at 2*rate Hz burst number of triggers in a burst (1-4096) rate sets the rate based on mode (1-65536) rules set to 0 normally to enforce the "standard" CMS trigger rulesBrief register-level documentation follows. Register at offset 0x1c controls the local L1A generation through the following bit fields:
| |||||||
-- EricHazen - 20 Aug 2014 \ No newline at end of file |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
|