L9_ICMP: Input Compare
(Original Document)
Naming
Name in LL984 Editor
Function Block Name
name of legacy 984 instruction
name in other tools and editors like:
  • Type Library Browser
  • Data Editor
  • Animation Tables
  • Search Results
Function Description
The L9_ICMP (input compare) EFB provides logic for verifying the correct operation of each step processed by a L9_DRUM EFB.
Errors detected by L9_ICMP may be used to trigger additional error-correction logic or to shut down the system.
L9_ICMP and L9_DRUM are synchronized through the use of a common step pointer word. As the pointer increments, L9_ICMP moves through its data table in lock step with L9_DRUM. As L9_ICMP moves through each new step, it compares-bit for bit-the live input data to the expected status of each point in its data table.
Cascaded L9_DRUM/L9_ICMP Blocks
A series of L9_DRUM and/or L9_ICMP blocks may be cascaded to simulate a mechanical drum up to 512 bits wide. Programming the same %MW word reference into STEP_LOC of each related block causes them to cascade and step as a grouped unit without the need of any additional application logic.
All L9_DRUM/L9_ICMP blocks with the same word reference in STEP_LOC are automatically synchronized. They must also have the same constant value in LENGTH, and must be set to use the same value in the steps used word in STEP_TAB.
Representation
Parameters
Input Pin
Name
Data Type
Address Range
Meaning
Top
IN
ON = initiates the input comparison
Middle
CASCADE
cascading input, telling the block that previous L9_ICMP comparison were all good
ON = compare status is passing to the middle output
Node
Node
Name
Data Type
Address Range
Meaning
Top
IN/OUT
STEP_LOC
UINT
%MW
step pointer
current step number
For more information see below.
Middle
IN/OUT
STEP_TAB
ANY_ARRAY_UINT
%MW
step data table
first word in a table of step data information
For more information see below.
Bottom
IN
LENGTH
UINT
0...999
length
number of application-specific words, used in the step data table
range: 0 ... 999
For more information see below.
Output Pin
Name
Data Type
Address Range
Meaning
Top
OUT
BOOL
ON = input comparison initiated
(Echoes the status of the ENABLE input).
Middle
MATCHED
BOOL
ON = this comparison and all previous cascaded L9_ICMPs are good
Bottom
ERR
BOOL
ON = detected error
STEP_LOC (Step Pointer)
The %MW word entered in STEP_LOC stores the step pointer, i.e., the number of the current step in the step data table. This value is referenced by L9_ICMP each time the EFB is solved. The value must be controlled externally by a L9_DRUM EFB or by other user logic. The same word must be used in STEP_LOC of all L9_ICMP and L9_DRUM EFBs that are solved as a single sequencer.
STEP_TAB (Step Data Table)
The %MW word entered in STEP_TAB is the first word in a table of step data information. The first 8 words in the table hold constant and variable data required to solve the EFB:
Word
Name
Content
STEP_TAB[1]
raw input data
loaded by user from a group of sequential inputs to be used by L9_ICMP for current step
STEP_TAB[2]
current step data
loaded by L9_ICMP each time the block is solved
Contains a copy of data in the step pointer; causes the block logic to automatically calculate words offsets when accessing step data in the step data table.
STEP_TAB[3]
input mask
loaded by user before using the block
Contains a mask to be ANDed with raw input data for each step-masked bits will not be compared. Masked data are put in the masked input data word.
STEP_TAB[4]
masked input data
loaded by L9_ICMP each time the block is solved
Contains the result of the ANDed input mask and raw input data.
STEP_TAB[5]
compare status
loaded by L9_ICMP each time the block is solved.
Contains the result of an XOR of the masked input data and the masked current step data. Unmasked inputs that are not in the correct logical state cause the associated word bit to go to 1. non-zero bits cause a miscompare, and MATCHED will not go ON.
STEP_TAB[6]
machine ID number
identifies L9_DRUM/L9_ICMP blocks belonging to a specific machine configuration
value range: 0...9999 (0 = block not configured)
All blocks belonging to same machine configuration have the same machine ID.
STEP_TAB[7]
Profile ID Number
identifies profile data currently loaded to the sequencer
value range: 0...9999 (0 = block not configured)
All blocks with the same machine ID number must have the same profile ID number.
STEP_TAB[8]
Steps used
loaded by user before using the block
L9_DRUM will not alter “Steps used” contents during logic solve. The number must be ≤ the table length in LENGTH of the L9_ICMP block.
The remaining words contain data for each step in the sequence.
LENGTH
The total number of words required in the step data table is the length + 8. The length must be ≥ the value placed in the steps used word in STEP_TAB.