Changing frame fields, Preprocessor integer arithmetic, Loops – Teledyne LeCroy Sierra M122 User Manual User Manual
Page 309

Sierra M122 SAS/SATA Protocol Analyzer User Manual
307
Sierra Trainer Generation Language
Teledyne LeCroy
Changing Frame Fields
You can change some fields in a frame variable.
Change var_name { field_name = value }
Preprocessor Integer Arithmetic
You can declare DWORD variables, make arithmetic operations, and use them in field and
parameters assignments.
Note:
Arithmetic expressions are allowed only in numeric variable assignments.
Examples:
Legal Operations
x = 2
y = ( z = 12 ) + ( SOME_DEC_DATA + 36 ) / 8
z = 0x1 << 5
s = "Some Hex Data" # constant may be used in operations
x++
y--
z += ( x + y )
x = ( ( y & 0xFF ) >> 5 ) / 12
SOF ( Repeat = x, Idle = y )
X
{
Field16 = 0xEEEE # Example of the data payload assignment which
uses
both
integer
variables,
constants,
hex
literals
and
data
patterns
Data = { y y y y 7a7a7a7a "Some Hex Data" "Some Hex Data" 8b8b8b8b
z z z z [PATTERN_3] }
}
( Repeat = 10, Idle = y ) # uses integer variable for parameter/
setting.
Illegal operations
x = y + 2
SOF ( Repeat = (x+y)*7 )
# - illegal, use z = (x+y)*7 SOF ( Repeat = z ) instead
Loops
Loops can be used in two modes:
1. Using an integer number, loop a specified number of loops. This number has to be
smaller than 64,000.
2. Using the word “infinite”, loops for ever.
Loops ( loop_count/Infinite )