beautypg.com

Preprocessor integer arithmetic, Loops – Teledyne LeCroy Sierra M124 User Manual User Manual

Page 311

background image

    

Sierra M124 SAS/SATA Protocol Analyzer User Manual

309

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