
Detailed Circuit Descriptions
In contrast to a pin-to-pin description, the same circuit can be specified in
a detailed form of design description, as follows:
Q1.CLK = Clock; "Register clocked from input
Q1.D = !Q1.Q # Preset; "D-type f/f used for register
In this form of the design, specifying the D input to a D-type flip-flop and
specifying feedback directly from the register restricts the device
architectures the design can be implemented in. Furthermore, the equations only describe
the inputs to and feedback from the flip-flop, and do not provide any information
regarding the configuration of the actual output pin. This means the design
will operate quite differently when implemented in a device with inverted outputs
(a simple P16R4 PAL device, for example), versus in a device with
non-inverting outputs (such as an EP600).
To maintain the correct pin behavior using detailed equations, one additional
language element, a 'buffer' (or its complement, 'invert') attribute, is
required. The 'buffer' attribute ensures that the final implementation in a device
has no inversion between the specified D-type flip-flop and the output pin
associated with Q1. For example, add the following to the declarations section:
Q1 pin istype 'buffer';