Face-to-face P1450.1 Working Doc Subgroup
Oct 7, 8:00 to 12:00 am EDT (at ITC-2002)
Attendees
Documents
p1450.1-D15.pdf - latest draft document
p1450.1-D15-review-resolution.pdf
- latest issues document
Agenda
1. ScanStructures, ScanChainGroups, ScanCells, ScanCellList, ScanCellGroups,
2. Boolean condition using signal-variables
3. DVO's variables discussion
4. AllowInterleave and LockStep
NOTE: The 1450.6 working group is now being copied on the 1450.1 minutes.
1. ScanStructures, ScanChainGroups, ScanCells, ScanCellList, ScanCellGroups
The cellname_list as used in the "ScanStructures { ScanCells {} }" block is not accurate. It should be changed to the following along with changes to clause 6.3.
ScanCells {
( scan_cell_name; )*
( scan_cell_name { ... } )*
}
2. Boolean condition using signal-variables
The syntax below is not allowed in a pattern according to the description in clause 6.2 (Boolean Expressions).
Pattern MY_PAT {
If 'MY_SIG_VAR == 101' { ... }
The correct way to handle this is to create a signal-variable-enum as follows:
Variables {
SignalVariableEnum CODE {
Values { NOOP 000; LOAD 001; SAFE 101; }
}
SignalVariable MY_SIG_VAR { SignalVariableEnum CODE; }
}
Pattern MY_PAT
If 'MY_SIG_VAR == SAFE' { ... }
Clause 6.2 needs work to explain this and also to include examples
3. DVO's variables discussion
We discussed the issues raised by Don Organ (see attachment to the review-resolution document). The following are the issues discussed and the decisions made:
The following integer value definitions are allowed when defining the initial value of an integer or in an integer expression:
56000
56_000 - underscore is allowed for human readability
'56*1024' - an expression may be used to enhance readability
The following are integer value definitions that are *not* allowed:
56E3 - this format is reserved for real numbers only
56K - the engineering prefix chars are allowed in real numbers only
Can "real" variables be defined in a "Variables" block? At this time the working group decided not to add this capability to the language. It is recognized that this need may re-surface if an analog extension is developed.
With regard to the allowed use of engineering units for real numbers, the draft has some errors that need correction. Also, the draft needs to be more clear as to the use of engineering units. The intent is that the type of the real (i.e., time, voltage, etc) be determined solely by the context in which it is used. The unit attached is for documentation purposes only. The following are examples:
Spec {
Category MY_CAT {
MY_REAL_1 = 99E-9;
MY_REAL_2 = 99nS; // is equivalent to 99E-9
MY_REAL_3 = 99nV; // is equivalent to 99E-9
}
}
Timing {
WaveformTable MY_WFT {
MY_SIG {
AB { 'MY_REAL_1' D/U; } // means 99ns
CD { 'MY_REAL_2' D/U; } // means 99ns
EF { 'MY_REAL_3' D/U; } // means 99ns
}
}
}
4. AllowInterleave and LockStep
The additional definition of the LockStep capability is to be included into the draft. The new statement "AllowInterleave" is to allow the specification of signals that on wich the wfc's are not persistent. Thus multiple patterns/procedures/macros can share the signal. Rules and examples will be explained in the document, with the basic requirement being that if a signal is shared, one (and only one) of the responsible patterns shall always specify the state of the signal. If a wfc is specified by more than one pattern it is an error. If no pattern defines the wfc it is an error. BreakPoint can be used to facilitate the expansion of a a set of vectors to match some other set of vectors.
Next meeting
next phone meeting - Oct. 24, 10:00-11:30 PDT
Dial-in#: 888-232-0370
Participant code: 605208
AIs
[AI1] Tony - put AllowInterleave into draft for review
[AI2] Greg and Tony - generate allowinterleave example
[AI3] Tony - update clause 6.2 (Boolean Expressions)
[AI4] Tony - update clause 6.3 (Cellname List)
[AI5] Tony - put ScanChainGroups into the draft
[AI6] Tony - update clause 6.4 (Integer Expressions)