Difference: AMC13UserManual (44 vs. 45)

Revision 4524 Aug 2022 - EricHazen

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"
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) This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual). SVN link for firmware core.
>
>
The AMC13 implements the S-Link Express protocol using a core provided by CMS CDAQ (details here) This is currently a 5.0Gb/s link, received by the FedKit (see CMSFedkitManual). SVN link for firmware core.
 
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.
 
Configuration Mask value Notes
SFP0 only 1 (top) DAQ fiber for AMC1-AMC12 readout
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 documentation for details)
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. Recently (2018) a new set of states has been added, please see this page.
>
>
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. Recently (2018) a new set of states has been added, please see this page.
  The AMC13 outputs the TTS state as the four-bit code described in the links above:
Line: 59 to 51
 
  b 1011 Private Request 3 Available for private use (2018)
  c 1100 Error Any other state that prevents functioning
  f 1111 Disconnected Hardware failure or broken cable
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:

 
Bit 4 Disconnected
Bit 3 Error
Line: 104 to 89
 
  BSY->OFW 223
  BSY->SYN 225
Added:
>
>

TTS Testing

There 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.

 
Register Function
Changed:
<
<
CONF.TTC.BGOn.COMMAND Short (bits 0-7) or long (bits 0-31) format TTC command
CONF.TTC.BGOn.LONG_CMD Bit '1' for long-format command, '0' for short format
CONF.TTC.BGOn.ENABLE Bit '1' to enable periodic generator of commands
CONF.TTC.BGOn.ENABLE_SINGLE Bit '1' to enable single command (trigger with ACTION.TTC.SINGLE_CMD) [1]
CONF.TTC.BGOn.ORBIT_PRESCALE Orbit prescale (prescale is value + 1)
CONF.TTC.BGOn.BX Bunch crossing number on which to send command
[1] Only one of four 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
>
>
CONF.TTC.BGOn.COMMAND Short (bits 0-7) or long (bits 0-31) format TTC command
CONF.TTC.BGOn.LONG_CMD Bit '1' for long-format command, '0' for short format
CONF.TTC.BGOn.ENABLE Bit '1' to enable periodic generator of commands
CONF.TTC.BGOn.ENABLE_SINGLE Bit '1' to enable single command (trigger with ACTION.TTC.SINGLE_CMD) [1]
CONF.TTC.BGOn.ORBIT_PRESCALE Orbit prescale (prescale is value + 1)
CONF.TTC.BGOn.BX Bunch crossing number on which to send command
[1] Only one of four 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
 
EC0 3 No[1] Event Count Reset (send at the start of each lumisection to set the EvN to 1)
OC0 9 Yes Orbit Count Reset - reset orbit count to 0
Resync 0x28 Yes Resync after error
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
 
  1. When the Re-sync sTTS state is detected by the Trigger for 8 orbits no L1 Triggers are issued.
  2. In BX 2000 of the following orbit the BGO 0101 (Re-sync) is issued.
  3. It follows another gap of 8 orbits without triggers. This interval is used by sub systems to do whatever they need to do. If they need more time they are allowed to issue sTTS BUSY.
Changed:
<
<
  1. If the gap of 8 orbits has passed AND all sub-systems are in ready state in the following orbit at BX 2000 an EC0 (BGO 0111) is issued to reset all Event Counters of all sub-systems to '1'.
>
>
  1. If the gap of 8 orbits has passed AND all sub-systems are in ready state in the following orbit at BX 2000 an EC0 (BGO 0111) is issued to reset all Event Counters of all sub-systems to '1'.
 
  1. After the next BC0 'normal operation' is resumed.

Here is Mr Wu's description of how the AMC13 processes resync:

Upon receiving the resync, AMC module can either clear its buffer or continue to send data to the backplane link module until data are exhausted. Once no more data in the AMC, it should assert the new link input ResyncAndEmpty high for at least 10 ns and set TTS to Ready when AMC module is ready to accept new L1A.

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
 
  • Continuous triggers equally spaced by BX or orbits
  • Random triggers from 2Hz to about 130kHz rate with CMS trigger rules respected
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
 
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
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:
 
  • CONF.LOCAL_TRIG.RATE sets the rate or spacing (0 means spacing=1)
  • CONF.LOCAL_TRIG.NUM_TRIG sets the burst count (0 means count=1)
  • CONF.LOCAL_TRIG.TYPE is the mode (0 for orbit, 2 for BX, 3 for random)
  • CONF.LOCAL_TRIG.RULES specifies which CMS trigger rules are followed
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:
 
  • 0 means enforce all rules (1-4)
  • 1 means all except rule 4
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 for details.
>
>
Several C++ functions are provided which are briefly listed below. See the nightly API documentation for details.
 
    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
 
  AMC1 - AMC6 AMC7 - AMC12  
3 MONITOR_BUFFER_RAM (0x20000) MONITOR_BUFFER_RAM_SFP1A (0x2a000) MONITOR_BUFFER_RAM_SFP2 (0x34000)
  AMC1 - AMC4 AMC5 - AMC8 AMC9 - AMC12
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:
<
<
  • CONF.EVB.MON_FULL_OVERWRITE must be set to '1' to enable the mode
  • STATUS.MONITOR_BUFFER.UNREAD_BLOCKS points to the next page to be written (0-0x3ff).
>
>
  • CONF.EVB.MON_FULL_OVERWRITE must be set to '1' to enable the mode
  • STATUS.MONITOR_BUFFER.UNREAD_BLOCKS points to the next page to be written (0-0x3ff).
 

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 (rev 2015-06-05). This trigger logic is contained entirely in the T2 (Spartan) FPGA and is introduced in version 0x29.

This trigger uses Fabric B inputs from 12 AMC modules and TRIG0 and TRIG1 from special T3 board as inputs to a 14-bit Look Up Table to generate a trigger at every TTC clock cycle.

To align the trigger inputs, there is an 8 bit delay line at each trigger input. The unit of the delay is one eighth of a TTC clock cycle. To help adjusting the delays, there is a sampling buffer of 14-bit and 1024 deep which samples the delayed input trigger at eight times of the TTC clock frequency.

>
>
The following section describes a local trigger implemented for the DT group according to the following specification: DT AMC13 requirement (rev 2015-06-05). This trigger logic is contained entirely in the T2 (Spartan) FPGA and is introduced in version 0x29.

This trigger uses Fabric B inputs from 12 AMC modules and TRIG0 and TRIG1 from special T3 board as inputs to a 14-bit Look Up Table to generate a trigger at every TTC clock cycle.

To align the trigger inputs, there is an 8 bit delay line at each trigger input. The unit of the delay is one eighth of a TTC clock cycle. To help adjusting the delays, there is a sampling buffer of 14-bit and 1024 deep which samples the delayed input trigger at eight times of the TTC clock frequency.

  Before using the trigger, delay adjustment is necessary.
  • First, write 1 to register 0x101 to enable the trigger.
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:

Name Use
Changed:
<
<
CONF.LTRIG.AMCxx.BITy.TRIGGER_MASK Set 8-bit mask for AMC number xx (01-11) trigger bit y (0-7)
CONF.LTRIG.BITy.TRIGGER_THRESHOLD Set 4-bit threshold (0-12) for trigger bit y (0-7)
>
>
CONF.LTRIG.AMCxx.BITy.TRIGGER_MASK Set 8-bit mask for AMC number xx (01-11) trigger bit y (0-7)
CONF.LTRIG.BITy.TRIGGER_THRESHOLD Set 4-bit threshold (0-12) for trigger bit y (0-7)
 

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.
 
Clock Source Trigger Source Hardware T1 0x1 bit 15 T1 0x1 bit 8 T1 0x1 bit 2
Internal Internal Loop-back fiber (Note 1) 0 1 1
Line: 465 to 391
 
CONF.TTC.T3_TRIG Accept triggers from T3 input 0x1 / 15
When CONF.TTC.T3_TRIG is set, CONF.TTC.ENABLE_INTERNAL_L1A must also be set.
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 by Jeremy et al about this. Here is a table of TTC command used by HCAL extracted from the document.
>
>
See 2009 CMS Note by Jeremy et al about this. Here is a table of TTC command used by HCAL extracted from the document.
 
Code Name Source Meaning AMC13 Action
Changed:
<
<
00001001 (0x09) BCZero BGo-1 Bunch Counter Zero (any with LSB set) BcR
00000100 (0x04) SOG BGo-11 Start-of-Gap (QIE Reset) -none-
11100010 (0xe2) ECR BGo-7 Event Counter reset ECR (programmable code)
10001000 (0x88) Start BGo-9 TPG generator start -none-
10101000 (0xa8) Stop BGo-10 TPG generator stop -none-
01000000 (0x40) Gap-Trigger BGo-13 Laser/LED in next gap Enable gap trigger this orbit only
01100000 (0x60) Gap-Pedestal BGo-13 Pedestal in next gap Enable gap trigger this orbit only
10000000 (0x80) Gap-Sequence-Step BGo-13 Advance laser Increment current laser position
>
>
00001001 (0x09) BCZero BGo-1 Bunch Counter Zero (any with LSB set) BcR
00000100 (0x04) SOG BGo-11 Start-of-Gap (QIE Reset) -none-
11100010 (0xe2) ECR BGo-7 Event Counter reset ECR (programmable code)
10001000 (0x88) Start BGo-9 TPG generator start -none-
10101000 (0xa8) Stop BGo-10 TPG generator stop -none-
01000000 (0x40) Gap-Trigger BGo-13 Laser/LED in next gap Enable gap trigger this orbit only
01100000 (0x60) Gap-Pedestal BGo-13 Pedestal in next gap Enable gap trigger this orbit only
10000000 (0x80) Gap-Sequence-Step BGo-13 Advance laser Increment current laser position
 

Wu's Debugging Guide

AMC13 quick trobleshooting with register dump

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback