!------------------------------------------------------------------------------ ! This file holds a list of register IO requests ! Comments start with an exclamation mark ("!") anywhere on a line. ! See end of file for more syntax information. !------------------------------------------------------------------------------ ! Revision: 24-Nov-99 ! This file is a template ! and list of the syntax rules for Register IO Command Files Vertical_Master: 0 Vertical_SLave: 1 Slot: 4 Chip: 0 Register: 0 Write_Value: 15 Register: 1 Write_Value: 0xf Write_Value: 0b1111 Register: 2 Write_Verify: 57 Read_Register: 3 Read_Register: 4 Write_Verify: 35 Call_File: \users\default\another.rio !------------------------------------------------------------------------------ ! 24-Nov-99 ! * Recommended file extension is ".RIO" (but not required). ! ! Syntax rules: ! ! - Blank lines are ignored. ! ! - Comments start after an exclamation mark ("!") anywhere on a line. ! ! * Recognized Keywords are (with colon required) ! Vertical_Master: (Vertical Interconnect Master Number; Range: 0 for now) ! Vertical_Slave: (Vertical Interconnect Slave Number; Range 0-1 for now) ! Slot: (VME Card Slot Number; range 1-21) ! Chip: (0=VME Interface; 1-16=Main Array FPGA, 17=Support FPGA) ! Register: (Register ID; i.e. units of 16-bit words; Range 0-511) ! Read_Register: (Address ID of register to read; Range 0-511) ! Write_Value: (Value to write in specified register; Range 0-0xffff) ! Write_Verify: (Value to write, then read register and compare) ! Call_File: (Recursive call to another file) ! MilliSecond_Sleep: (Suspend execution of the command file) ! ! - Keywords are NOT case-sensitive. ! ! - Each Keyword must be followed by one and only one positive integer Value ! (with the exception of the Called_File Keyword using a character string) ! ! - One or more Keyword/Value pair may appear on the same line. ! ! - a Keyword and its matching Value may be separated by any number of spaces, ! and/or Tabs, but must appear on the same line. ! ! - Successive Keyword/Value pairs may be separated by any number of spaces, ! Tabs and/or Carriage_Returns (blank lines), or comments. ! ! * A Register will be accessed when the "Write_Value", the "Write_verif"y, ! or the "Read_Register" Keyword is encountered. ! ! - All other Register Address Keywords must have been specified before a ! "Write_Valu"e, "Write_Verify" or "Read_Register" Keyword may be ! specified. ! ! * The "Write_Value" keyword causes the specified register to be written with ! the specified value. ! The "Write_Verify" keyword causes the specified register to be written ! with the specified value, then read back and report any value mismatch. ! The "Read_Register" keyword causes the specified register to be ! read, and the value read is reported. ! ! - The "Write_Value" specifies the Data to Write. This value may be specified ! in Decimal (e.g. 15), Hexadecimal (e.g. 0xff), or Binary (.e.g. 0b1111). ! ! - Decimal, Hex, and Binary values may use commas to help readability. ! These commas will be removed during parsing (e.g. 0b,1000,0100,0111,0000). ! No spaces are allowed within any Value string. ! ! - Keyword/Values specified for a previous Register Address are still active ! for subsequent Register Selection until they are explicitly overwritten. ! ! * The "Read_Register" keyword also updates the Register ! context, so that a Write_Value or Write_Verify keyword appearing right ! after a Read_Register keyword will write to the register that ! was just read. ! ! - The "MilliSecond_Sleep:" Keyword causes the execution of the command file ! to be suspended for the number of milliseconds specified in the associated ! value (integer values only). ! ! - The "Call_File" Keyword causes a recursive call to read the specified file. ! ! - Full local Keyword/Value context present before the Call_File Keyword ! is still valid after. i.e. Context changes made in the Called file are ! NOT propagated back to the Calling file. ! ! - The syntax rules within a called file are the same as described here. ! The local Keyword/Value context present before the Call_File Keyword ! is imported into the Called File. i.e. You can define some Keyword Values ! in the Calling File which will be valid inside the Called File. !------------------------------------------------------------------------------ ! - Symbol usage in command files: ! ! Symbols may be defined and used in command files. ! A symbol name must start with a dollar sign "$". ! ! A symbol is defined by giving it a numeric value. ! A symbol is defined using a Keyword/Value syntax where the Keyword is ! the symbol's name, starting with its own dollar sign but with an additional ! equal character appended to the end of the symbol name, while the value ! is the desired symbol value. ! e.g. To define a symbol named "$Slot_AONM" and give it a value "5" ! enter the following: ! $Slot_AONM= 5 ! The equal sign "=" is required and must appear directly after the last ! character of the symbol name, with no space or tab in-between. ! Any number of spaces, or tabs may appear between the symbol definition and ! its value, but the symbol and its value must appear on the same line. ! Previously defined symbols can be re-defined to change their value. ! Previously defined symbols cannot be un-defined. ! ! A symbol may be used anywhere a value is required, i.e. in any Keyword/Value ! pair and the symbol value will be substituted. e.g. ! Slot: $Slot_AONM ! A symbol must have been defined before it can be used. ! There are no predefined symbols. ! Symbols are NOT case sensitive. ! Symbol names may include any alpha numeric characters (e.g. _[(}./$< ), ! (but no space, tabs, or end of line). For clarity one should avoid ! using embedded quotation marks, equal signs, colon. ! A symbol value may be used to define another new symbol. ! ! All symbols defined before a "Call_File" Keyword are propagated into ! the Called File. i.e. You can define symbols in the Calling File ! and use those symbols (or modify them) inside the Called File. ! Symbols created or modified inside a Called File are NOT propagated ! back to the Calling file. !------------------------------------------------------------------------------