beautypg.com

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

Page 309

background image

    

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 )