General description: I am synthesizing an ABEL design in the Foundation F1.x HDL Editor. When the ABL2EDIF process is invoked, either AHDL2BLF hangs, or AHDL2BLF completes, but the BLIFOPT step begins and never completes.
One cause of this problem may be that the design contains large comparator logic (of the form Y = A == B). (This problem also occurs with Synario v3.00.)
In the ABEL source, decompose any equations containing comparator logic by separating out the comparator logic into new intermediate node equations. Express the intermediate node equations as active-low comparators of the form NOT_Y = A != B. You may also prevent the collapsing of the intermediate nodes by applying the "KEEP" attribute.
For example, if the original equation is:
Q = (A == B) & something # (C == D) & smore ;
decompose this into:
A_ne_B = (A != B); "new node C_ne_D = (C != D); "new node Q = (!A_ne_B) & something # (!C_ne_D) & smore ;
Then, declare the new nodes with the KEEP attribute, as follows:
A_ne_B, C_ne_D node istype 'KEEP';
You may also insert the following ABEL directive, either at the top of your declaration section or before the problematic equation:
This will allow the ABEL compiler to break the large equation up into a number of smaller intermediate nodes, which can then be translated into EDIF more efficiently. The Xilinx Implementation software will optimize the logic across the intermediate nodes.