General Description: Initializing a register to a '1' (i.e. reg1.ap = '0';) using XABEL 1.41 causes an FDP component to be written into the EDN file. This causes the following error when implementing an XC3000 family design:
Checking expanded design ... ERROR:basnu:93 - logical block "<reg name>" of type "FDP" is unexpanded.
For all FPGA Families except the XC3000 there are FDP macro's. The problem is that the Abel compilier is creating FDP's in 3000 edn files. This is causing the unexpanded error's in MAP.
Solution
1
One workaround in Foundation is to create a FDP.edn macro with the Foundation schematic tool. This can be done by using an FDC component. Invert both the D-input and output and connect the CLR pin to a net named PRE. Export either an EDIF or XNF netlist. Placing the FDP.(edn/xnf) file in the working directory allows the design to implement successfully. The example XNF code included below may be saved as a text file named FDP.XNF.
Another workaround is using an older compiler which generates xnf. Xabel 5 created correct xnf syntax for registers initialized to '1' in xc3000 designs.
LCANET, 6 PROG, TEXT "created Mon Aug 31, 1998" PART, XC3000A SYM, inv_in, INV, SCHNM=INV, LIBVER=2.0.0 PIN, I, I, D PIN, O, O, DB END SYM, FDC1, DFF, SCHNM=FDC, LIBVER=2.0.0 PIN, C, I, C PIN, CLR, I, PRE PIN, D, I, DB PIN, Q, O, QB END SYM, inv_out, INV, SCHNM=INV, LIBVER=2.0.0 PIN, I, I, QB PIN, O, O, Q END EOF