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

NOTE: The environment variable TTT_SERIAL_NUMBER must be set correctly to talk to your board. As shipped, the boards have fixed IP addresses which are uniquely determined by the board's serial number, which can be found printed on the front of your TTT module. It is easiest to edit the "environ.sh" or "environ.csh" scripts to set this variable before you start.

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 delay for first L1A? in orbit to <delay> bunch crossings (default 100)
-n <num_orbits> Set the number of orbits with triggers 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 (time in orbits between groups) 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

Topic revision: r5 - 06 Feb 2014 - 17:57:57 - EricHazen
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback