This page overview the functionalities of the TTT software packages, including descriptions of the trigger scripts and the TTTtool commands.

Contents
TTTtool
Trigger Scripts
setup_tts
Trigger Rules

TTTtool

Command Description
Z Zero the TTT flash memory by writing 0xFF to all bytes
V Verify the flash memory against a user-specified MCS file from ../firmware
P Zero the flash memory, program it using a user-specified MCS file from ../firmware, and then read back the flash and verify it against the chosen MCS file
RF Read pages (default 1) from address from the flash and print the output byte-by-byte in the terminal window
RS Read address (defult 1) from address from the Spartan FPGA and print the output word-by-word in the terminal window
WS Write to address on the Spartan FPGA
Q Quit the program

  • NOTE that all commands are case insensitive.
  • NOTE that in order for the tool to be run properly, the environ.[c]sh script must be run from the release home directory.

Trigger scripts

All of the following script use the program setup_tts to send L1As via the TTT board's SFP optical transceivers.

Script Description
single_trig Sends one "single" trigger
10_trigs Sends ten "single" triggers in a burst (non-periodic)
periodic_12hz Sends triggers periodically at 12hz. Run stop_trigs to terminate L1As
periodic_12hz_gap Sends triggers periodically at 12hz, allowing triggers in the orbit gap. Run stop_trigs to terminate L1As
periodic_120hz Sends triggers periodically at 120hz. Run stop_trigs to terminate L1As
periodic_fast Sends triggers periodically at 10 triggers per orbit with a repeat period of 2. Run stop_trigs to terminate L1As
random_49kHz_rules Sends triggers randomly at approximately 49kHz while obeying all four trigger rules. Run stop_trigs to terminate L1As
random_49kHz_rules_latency Sends triggers randomly at approximately 49kHz while obeying all four trigger rules and TTS backpressure latency. Run stop_trigs to terminate L1As
random_64kHz_rules Sends triggers randomly at approximately 64kHz while obeying all four trigger rules. Run stop_trigs to terminate L1As
random_100kHz_rules Sends triggers randomly at approximately 100kHz while obeying all four trigger rules. Run stop_trigs to terminate L1As
random_100kHz_no_rules Sends triggers randomly at approximately 100kHz while not obeying any of the trigger rules. Run stop_trigs to terminate L1As
random_100kHz_rules_latency Sends triggers randomly at approximately 100kHz while obeying all four trigger rules and TTS backpressure latency. Run stop_trigs to terminate L1As
stop_trigs Stop sending triggers

  • NOTE that these scripts will only run if environ.[c]sh has been run from the project's home directory
  • These are the scripts that come with the release, but there is nothing stopping you from making your own to meet your specific needs. See the setup_tts section below for more info on creating your own trigger scripts.

setup_tts

  • Running the script (must compile the C++ code prior to running executable)
          $ ${TTT_HOME}/bin/setup_tts [<arguments>]
          
  • Descriptions of script arguments are in the table below
Argument Description
-o <length> Set the orbit length to <length> bunch crossings (default 3563)
-d <delay> Set the trigger delay to <delay> bunch crossings (default 100)
-n <num_orbits> Set the number of orbits per trigger to <num_orbits> (default 10)
-s <trig_spacing> Set the number of bunch crossings between triggers to <trig_spacing> (default 25)
-t <trigs_per_orbit> Set the number of triggers per orbit to <trigs_per_orbit> (default 4)
-r <repeat_period> Set the repeat period (I have no idea what this means) to <repeat_period> number of orbits
-b Enable TTS backpressure. This is to say, force the triggers to respond to the AMC13's TTS signal
-p <random_period> Set random trigger period to <random_period>. A <random_period> value of 155 is 100kHz (max), and the rate scales linearly (i.e. 98 = 64kHz, 75 = 49kHz, etc). Default value is 0
-L <latency> Allow for TTS backpressure latency of <latency> bunch crossings, maximum 255 (default 0)
-m <tts_mask> Set TTS four-bit mask to <tts_mask> to override the AMC13 TTS signal
-w <ttc_bcn> Set TTC trigger output BcN to <ttc_bcn> (default 1000)
-g Allow triggers within the orbit gap
-z <back_porch> <front_porch> Currently unavailable. Set the orbit gap from (Bc0 - <back_porch>) to (Bc0 + <front_porch>) (default values are 250 for back, 500 for front)
-u <rule> <value> Set trigger rule <rule> to value <value> (all four rules default to zero and hence are not enabled).

Trigger Rules

CMS Standard Trigger Rule Number Description
1 No more than 1 trigger per every 2 bunch crossings (50ns)
2 No more than 2 triggers per every 25 bunch crossings (625ns)
3 No more than 3 triggers per every 100 bunch crossings (2.5us)
4 No more than 4 triggers per every 240 bunch crossings (6us)

  • These rules can be enabled and set to whatever is desired via the setup_tts program, but do keep in mind that the above specifications are the CMS-wide standard for the TTC!

-- CharlieHill - 18 Apr 2013

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 18 Apr 2013 - CharlieHill
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback