Feedback Specification - .Q and .FB
The .Q and .FB dot extensions both
specify that the associated flip-flop is the source of the feedback signal,
but
the polarity of the resulting feedback
signal may differ depending on other declarations in the design. Existing
ABEL modules originally targeting
other PLD architectures may include architecture-specific declarations
defining the polarity of the PLD's
outputs. The figure below demonstrates the difference.
The first macrocell has an inverted
output pin, but the second macrocell has a non-inverted output pin. The
output inversion in the first diagram
is declared using the istype 'invert' attribute in ABEL-HDL. The second
diagram is declared using istype 'buffer'
(the default). In the inverted diagram, the .Q feedback dot extension is
the complement of the .FB dot extension;
while in the non-inverted diagram, the two dot extensions are identical.
When a signal is declared using istype'invert'
and that signal is referenced using the .Q extension in an equation,
the sense of the signal will be inverted
in that equation.
Xilinx CPLDs do not have an inversion
at the output pin. The declaration istype'invert' is not required for CPLDs,
but it is honored when .Q feedback
is used to maintain behavioral compatibility for existing ABEL modules
that
originally targeted PLDs with inverted
outputs.
Feedback Without Dot Extensions