beautypg.com

Preprocessor integer arithmetic, Loops – Teledyne LeCroy Sierra M6-4 SAS_SATA Protocol Analyzer User Manual User Manual

Page 429

background image

    

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