AR# 3101: XABEL 6: Feedback signals interpreted differently in M1 (EDIF) than XACT (PLD)
XABEL 6: Feedback signals interpreted differently in M1 (EDIF) than XACT (PLD)
Keywords: XABEL, feedback
In XABEL, a signal is used to drive an output pin and also used as feedback in other equations. The signal feedback is interpreted as a pin feedback (signal.pin) using the M1 EDIF flow, but it was interpreted as an internal feedback (signal.fb) using the XACT6 or XABEL-CPLD flow. This problem occurs when the signal name has no dot-extension when used as feedback in other equations. The output equation for the signal also has an output-enable condition (signal.oe) defined.
Specify signal.fb (for internal feedback) or signal.pin (for pin feedback) wherever the signal name appears in other equations.
When an output signal is also used as feedback in other equations, the ABEL language sometimes requires the use of dot extensions (signal.fb or signal.pin) to avoid ambiguity. If the signal has no output-enable equation (signal.oe=...), ABEL assumes internal feedback (.fb) and the implementation will match for both XACT6 (XABEL-CPLD) and M1 (EDIF flow). If the signal does have a .oe equation, ABEL assumes pin feedback instead. The Plusasm netlist writer (pla2eqn) in XACT6 (or XABEL-CPLD) incorrectly assumes that the unqualified signal name always implies internal feedback. The M1 EDIF flow (abl2edif) correctly interprets the pin feedback structure created by ABEL. To avoid ambiguity, always use .fb or .pin extensions on all feedback instances whenever the signal drives a 3-state output pin.