Preprocessor integer arithmetic, Loops – Teledyne LeCroy Sierra M6-4 SAS_SATA Protocol Analyzer User Manual User Manual
Page 429
![background image](/manuals/353618/429/background.png)
Sierra M6‐4 SAS/SATA Protocol Analyzer User Manual
425
Sierra Trainer Generation Language
Teledyne LeCroy
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 )
{
send instructions
assignments
change values
send instructions