Variables { Integer myUninitializedInt; Integer myInitializedInt = 12; // Initialize integer scalar variable to 12 Integer myUninitializedIntArray[4]; // The following two forms are equivalent. If the RHS is an initializer list // (as indicated by the use of brackets ([]), then the length specifier on // the LHS is optional. Integer myInitializedIntArray[4] = [12,11,10,9;] // Initialize elements 0-3 of array to 12,11,10,9 Integer myInitializedIntArray[] = [12,11,10,9;] // Initialize elements 0-3 of array to 12,11,10,9 // Initialize all array elements to the same value. Note that the RHS does NOT use brackets ([]). Integer myInitializedIntArray[4] = 12; // Initialize elements 0-3 of array to 12. } TestType StdFunc { Inherit TestBase; Parameters { // The following two parameters are not required. If not supplied by user when instantiating type, // (and remain at value of None), then these parameters are ignored during execution. In Category timcat = None; In Selector timsel = None; // Parameter is not initialized, and must be specified by user when type is instantiated. In Timing tim; // Required, therefore not initialized // The following two parameters are not required. If not supplied by user when instantiating type, // (and remain at value of None), then these parameters are ignored during execution. In Category dccat = None; In Selector dcsel = None; In DCLevels dclevels; // Selects DCLevels from DCSets In DCSets dcsets; // Contains DCLevels In PatternBurst patburst; // Parameter is initialized. It can be overridden by the user when instantiating the type; if overridden, // then during execution, the user-provided value is used, otherwise, the initialization value is used. In Integer PatLocationStart = 0; // Optional, need types: PatLocation = PatAddr | PatCycle ? In Integer PatLocationStop = PatEnd; // Optional, need mechanism to specify pattern end In SignalGroup output = AllDigitalOuts; // To complete window, signals with strobes enabled are needed } } Required: Not initialized; user must provide a value when instantiating the type. That user-provided value is used to set up test conditions. Optional: Not initialized. NOTE: Variable IS actually initialized, but initialized to value "None;" Parameter may be used to set up test conditions, if user provided a value. User can provide a value when instantiating the type. If value is provided, then parameter (with user-provided value) is used to set up test conditions. If value is NOT provided (i.e., it remains at the value None as specified in the type definition), then parameter is ignored when setting up test conditions. Initialized. Parameter is always used to set up test conditions. User can provide a value when instantiating the type. If value is provided, then user-provided value is used to set up test conditions. If value is NOT provided, then default (initial) value is used to set up test conditions.