
                              OrCAD/PLD MESSAGES


     The OrCAD/PLD package has an extensive set of messages to help when you
are developing new logic.  If you experiment with your own logic for the
compiler, you may encounter some of these messages.  Most are self-explanatory,
and all are described in the full OrCAD/PLD manual.  For your convenience, here
are some of the more common messages with a brief explanation of each.  The
compiler numbers all messages so you can find them easily in this list.


I200  N fatal errors found in source code.
      A message summarizing how many error conditions have been found.

I201  N warnings.
      A message summarizing how many warning conditions have been found.

I202  9/1/88 10:48 am (Thursday).
      Shows when the compiler completed its work.

I203  Memory utilization p/q (a%).
      Shows how much memory was needed.  The numerator p gives the number of
      nodes used; the denominator q gives the number of nodes available on your
      computer.  A node is a block of memory sufficient to contain a single
      Boolean variable or a single Boolean operator.  The value a shows what
      percentage of available memory was used.

I204  Elapsed time m minutes, s seconds.
      Shows how long the compiler worked to process the design.

I221  Developing test vectors.
      Issued by program VECTORS when it is developing test vectors and when you
      have not given a Display statement.  This is a perfectly normal
      condition.  If you want to see the test vectors as they are being
      developed, issue a Display statement as shown in the demonstration guide
      and in the various examples.

W301  Something is wrong with the syntax of the line.
      The command submitted to VECTORS does not have the correct format.  Refer
      to the demonstration guide for examples of correct format.

W302  An improper character (n) appears in the file.
      The file contains a strange character (substituted in decimal for n).
      Perhaps your text editor has placed an unwanted code in the file.

W310  A command line or environment switch (s) is not valid.
      Switch s is incorrect, either in the environment, on the command line, or
      in the batch file.  Probably it begins with an incorrect letter.

W316  Boolean operators are mixed.
      Different Boolean operators appear together in the same expression
      without parentheses to group them.  For example, the expression A#B&C
      will generate this message.  It should be written either (A#B)&C or
      A#(B&C) to clarify its meaning.

W320  Signal s is not used in the final equations.
      The signal named s was specified as an input or output to the device, but
      it was not actually used.  This may be fine, but the compiler warns you
      anyway.  In some cases, this message indicates an error in your
      equations.  For example, if you write the equation B = A # A', you have
      written the same thing as B = 1.  The compiler will discover that signal
      A is not used and will then issue this message (provided that A is not
      used anywhere else in your source code).

W323  No clock signal has been specified.
      An output signal is attached to a registered output pin, but no clock has
      been defined for the device.  The name of the clock signal must be given
      to the right of the keyword "clock:" at the beginning of the source code,
      along with the other ports (such as in:).

W329  Signal s has the same name as other indexed forms.
      A signal name such as ACK has been used together with matching indexed
      names such as ACK1 and ACK2.  This should not be done, since it may not
      be compatible with future versions.

W330  Label s has also been defined as a signal.
      The identifier s is being used both as a signal name and as a state name
      in a state machine procedure.  Duplicating names is not good practice.

W351  Some truth table combinations were not specified.
      A truth table defined with the keyword Table was incomplete because some
      input combinations were left undefined.  The compiler assumes you don't
      care what the corresponding output combinations are, but warns you
      anyway.

E523  The signal set has the wrong length.
      The number of signals in the set does not match other signals in the
      operation.  For example, if you write A[3~0] = B[3~0] & C[4~0], you will
      see this message.

E524  The function name (s) is incorrect.
      Something is wrong with the name s of a function in the source code.  The
      compiler considers any name followed by a left parenthesis to be a
      function name.  Check to make sure you have not used a parenthesis where
      you meant to use a bracket.  For example, if you meant to write A[1~3]
      but instead wrote A(1~3), you will get this message.

E530  Label s has already been defined.
      The state machine label s has already been used, creating an ambiguity in
      state names.  Duplicate labels are not permitted.

E531  Too many states are being used.
      You are using more states in your state machine than the number of bits
      in the state signals will support.  You must either provide more state
      signals or find a way to reduce the number of states.  The state signals
      are the second set of signals specified after the keyword Procedure.

E534  Two sets of signals must be provided (reset and state).
      Too few sets of signals appear after the keyword Procedure.  You need one
      signal for reset, and one or more for the state.

E540  Comparisons other than equal and not equal are not available here.
      Basic equations are restricted to equal and not-equal comparisons.
      Numeric expressions can use the full set of comparisons, so you must use
      indexed equations or maps for more complex comparisons.

E541  The comparison in the Boolean expression is invalid.
      See the explanation for message E540.

E542  The index to the signal name is negative.
      All indices must be greater than or equal to zero.  For example, the
      signal set B[1,2] is valid, but B[1,-2] is not.  This message can arise
      if you are indexing with a variable such as B[i] and you inadvertently
      drive the variable negative.

E552  Too many expressions appear in the list.
      The number of indices allowed in a list is limited to 5000.  One set of
      indices in the source code is larger than this.  If you really need such
      large lists, a parameter on the command line will allow them.

E560  The activity of signal s has already been defined differently.
      You have tried to define a signal both as active-high and as active-low.

E561  Only literals "All" or "None" are correct.
      In activity statements beginning with keywords Active-high and
      Active-low, only signal names and literals "All" or "None" are valid.
      Check the precise spelling in your source code of the words in quotation
      marks.

E572  A truth table signal was previously specified in another form.
      An output signal in a truth table is also an output signal of a Boolean
      equation, a numerical map, or something else.  This represents two
      outputs for the same signal, which is not allowed when one output is
      derived from a truth table.

E580  Attempt to display too many signals in an integer bus.
      The maximum number of signals that can be given in a VECTORS Display
      command as an octal, decimal, or hexadecimal number is 31.  For larger
      buses you must use binary.

E595  The circuit fails to stabilize after s steps.
      VECTORS encountered a run-away circuit.  You might have something
      improper in a feedback path.

E598  Signal s is not defined.
      The signal s named in the command has not been defined as an input or
      output signal.  Usually this just indicates a typographical error in the
      name.

E620  Invalid character literal (X is not available here).
      A numeric literal with "don't care" symbols (X) is out of place.  During
      testing with VECTORS, you cannot use these symbols in Set commands.  In
      Boolean expressions, you cannot use them as part of assignments (=).
      They are acceptable in Test commands and in comparisons (==).

E622  A signal name appears in a numeric expression.
      Numeric expressions involving the operators +, -, *, and so on, accept
      only numeric literals and variables i through n as operands.  Signal
      names can be used only with Boolean operations such as & and #.

E630  Signal s is duplicated among the ports.
      A signal may not be attached more than once to each type of port.  For
      example, the specification "in:(A,B,A)" is not correct, because A is
      attached to two input pins.

E631  Signal s overflows the number of pins.
      Too many signals are specified for the available pins.  The signal named
      s is the first one that does not fit.

E632  Signal type s has been used more than once.
      Each type of signal (in, io, clock) can be used only once when ports are
      defined at the beginning of the source code.   You must collect all
      signals of the same type together, package them in parentheses, and place
      them to the right of the port keyword.  For example, "in:(A,B), out:C" is
      acceptable, but "in:A, out:C, in:B" is not.

E633  Signal type s is not available for this device.
      You have specified a type of port at the beginning of the source code
      that is not compatible with the device.  For example, defining out:EMT
      for a PLD21D10, which has no pure output signals, will cause this
      message.

E763  Signal s is not input to the array.
      The signal named s is referenced in the right-hand part of an equation,
      but it does not feed into the and/or array of the device.  The name
      might be mistyped or it might represent a pure output signal.  Perhaps
      the name is mistyped in the input list at the beginning of the source
      code.

E764  Signal s is not output from the array.
      The signal named s is referenced in the left-hand part of an equation,
      but it does not flow out of the and/or array of the device.  The name
      might be mistyped or it might represent a pure input signal.  Perhaps the
      name is mistyped in the output list at the beginning of the source code.

E765  Signal s has too many product terms.
      The equation is too large to be handled by the device.  You might try
      stronger optimization to see if it will fit.  You could also try breaking
      the equation into smaller parts and implementing them on several pins of
      the device, feeding partial results back to form multi-level logic.
      VECTORS will still be able to test the logic, even though the product
      terms overflow.

E766  Signal s has too many product terms in its three-state enable.
      The part of the equation to the left of the three-state operator
      (represented by a pair of question marks) is too large.  The PLD21D10 has
      only one product term attached to its three-state drivers.  VECTORS will
      still be able to test the logic even though the equation has overflowed.

F901  Not enough memory remains.
      The equations are too large for the memory available in your computer.
      You might check to see what other programs are loaded while the PLD
      compiler is running.  If you have many other programs loaded (of the
      "terminate and stay resident" variety for example), they could be
      consuming your memory.  Inverting large equations and expanding large
      exclusive or operations places a heavy demand on memory, as do certain
      forms of indexed equations, maps, and truth tables.

F904  File s cannot be opened.
      Something is wrong with the file named s.  For example, the path might be
      incorrect, the file name mistyped, the extension incorrect, the wrong
      disk installed, or a variety of other problems.  Please consult your
      operating system manual.

F905  File s cannot be read.
      The file named s has been opened but something prevents it from being
      read.  For example, it may reside on a removable medium that is no longer
      in place, or the medium may be faulty.  Please consult your operating
      system manual.

F908  A source file must be specified.
      The PLD compiler was invoked with parameters but without a source file
      specified.  For example, typing "PLD /L2" will cause this message.

F909  No source code was found. Source lines begin with a vertical bar.
      The entire source file was read without encountering anything but comment
      lines.  Remember that source lines must begin with a vertical bar (|) at
      the far left.  This vertical bar must appear in the first position of the
      line, with nothing before it.

F910  Fatal syntax error.
      The source code does not correspond to the syntax rules of the language.
      The arrow in the listing (<---) points to the last character processed
      before the syntax error was detected.  The actual error can lie anywhere
      before the arrow; the arrow does not necessarily point directly at the
      error.

F933  At least one state bit must be specified.
      A state machine procedure has been specified without any state bits.

Z998  Internal condition n has occurred.
      An internal inconsistency has been detected by self-checks in the
      program.  Under normal conditions, this message never appears, and it is
      unlikely you caused the problem directly.  By slight changes to the
      source, or by changing options on the command line, you may be able to
      get around the problem.

Z999  Processing cannot continue.
      One of several conditions listed above means that the program must give
      up.  Each time this message appears, an earlier message on the listing
      gives details.  Please refer to the earlier message.

                                                                         