/* "NETGEN", a netlist-specification tool for VLSI
   Copyright (C) 1989, 1990   Massimo A. Sivilotti
   Author's address: mass@csvax.cs.caltech.edu;
                     Caltech 256-80, Pasadena CA 91125.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation (any version).

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; see the file copying.  If not, write to
the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */


/* actellib.c -- definitions of all cells in ACTEL's cell library */


/* define the following to make pads unique */
/* this is necessary for ntk2adl, but is annoying for PLACE */

#undef USE_UNIQUE_GLOBALS


#include "config.h"
#include <stdio.h>
#include "netgen.h"

static int actel_lib_present = 0;

int ActelLibPresent(void)
{
   return actel_lib_present;
}

void ActelLib(void)
{
  int OldDebug;

  OldDebug = Debug;
  Debug = 0;

  CellDef("OUTBUF", -1);
#ifdef USE_UNIQUE_GLOBALS
     UniqueGlobal("PAD");
#else
     Port("PAD");
#endif
     Port("D");
     SetClass(CLASS_MODULE);
  EndCell();

  CellDef("INBUF", -1);
     Port("Y");
#ifdef USE_UNIQUE_GLOBALS
     UniqueGlobal("PAD");
#else
     Port("PAD");
#endif
     SetClass(CLASS_MODULE);
  EndCell();

  CellDef("CLKBUF", -1);
     Port("Y");
#ifdef USE_UNIQUE_GLOBALS
     UniqueGlobal("PAD");
#else
     Port("PAD");
#endif
     SetClass(CLASS_MODULE);
  EndCell();

  CellDef("TRIBUFF", -1);
#ifdef USE_UNIQUE_GLOBALS
     UniqueGlobal("PAD");
#else
     Port("PAD");
#endif
     Port("D");
     Port("E");
     SetClass(CLASS_MODULE);
  EndCell();

  CellDef("BIBUF", -1);
#ifdef USE_UNIQUE_GLOBALS
     UniqueGlobal("PAD");
#else
     Port("PAD");
#endif
     Port("D");
     Port("E");
     Port("Y");
     SetClass(CLASS_MODULE);
  EndCell();

	CellDef("AND2", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND2A", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND2B", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND2", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND2A", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND2B", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR2", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR2A", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR2B", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR2", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR2A", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR2B", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND3A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND3B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND3C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND3A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND3B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND3C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR3A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR3B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR3C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR3A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR3B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR3C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND4", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND4A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND4B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND4C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AND4D", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND4", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND4A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND4B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND4C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NAND4D", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR4", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR4A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR4B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR4C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OR4D", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR4", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR4A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR4B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR4C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("NOR4D", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();


/*
INBUF
CLKBUF
OUTBUF
TRIBUF
BIBUF
*/





	CellDef("BUF", -1);
		Port("A");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("BUFA", -1);
		Port("A");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("INV", -1);
		Port("A");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("INVA", -1);
		Port("A");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("XOR", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("XNOR", -1);
		Port("A");
		Port("B");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("XO1", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("X01A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("XA1", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("XA1A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AX1", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AX1A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AX1B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO1", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO1A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO1B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO1C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AOI1A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AOI1B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	/* Added by Tim 12/8/99 */
	CellDef("AO3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MAJ3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO2", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AO2A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AOI2A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("AOI2B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA1", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA1A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA1B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA1C", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA3", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA3A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA3B", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA2", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("OA2A", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MX2", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MX2A", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MX2B", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MX2C", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MX4", -1);
		Port("D0");
		Port("D1");
		Port("D2");
		Port("D3");
		Port("S1");
		Port("S0");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("GMX4", -1);
		Port("D0");
		Port("D1");
		Port("D2");
		Port("D3");
		Port("G");
		Port("S0");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("MXT", -1);
		Port("A");
		Port("B");
		Port("C");
		Port("D");
		Port("S0A");
		Port("S0B");
		Port("S1");
		Port("Y");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("HA1", -1);
		Port("A");
		Port("B");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("HA1A", -1);
		Port("A");
		Port("B");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("HA1B", -1);
		Port("A");
		Port("B");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("HA1C", -1);
		Port("A");
		Port("B");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("FA1A", -1);
		Port("A");
		Port("B");
		Port("CI");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("FA1B", -1);
		Port("A");
		Port("B");
		Port("CI");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("FA2A", -1);
		Port("A0");
		Port("A1");
		Port("B");
		Port("CI");
		Port("CO");
		Port("S");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DL1", -1);
		Port("D");
		Port("G");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DL1A", -1);
		Port("D");
		Port("G");
		Port("QN");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DL1B", -1);
		Port("D");
		Port("G");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DL1C", -1);
		Port("D");
		Port("G");
		Port("QN");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLC", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLCA", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLE", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLEA", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLEB", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLEC", -1);
		Port("D");
		Port("G");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLM", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("G");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DLMA", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("G");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("JKF", -1);
		Port("J");
		Port("K");
		Port("CLK");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("JKFPC", -1);
		Port("J");
		Port("K");
		Port("CLK");
		Port("Q");
		Port("PRE");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("TFC", -1);
		Port("T");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFM", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("CLK");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFMA", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("CLK");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFMB", -1);
		Port("A");
		Port("B");
		Port("S");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DF1", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DF1A", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DF1B", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DF1C", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1A", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1B", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1C", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1D", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1E", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1F", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFC1G", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("CLR");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1A", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1B", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1C", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1D", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1E", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1F", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFP1G", -1);
		Port("D");
		Port("CLK");
		Port("QN");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFPC", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFPCA", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("CLR");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFE", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFEA", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFEB", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("E");
		Port("CLR");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFEC", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("E");
		Port("CLR");
		Port("PRE");
		SetClass(CLASS_MODULE);
	EndCell();

	CellDef("DFED", -1);
		Port("D");
		Port("CLK");
		Port("Q");
		Port("E");
		SetClass(CLASS_MODULE);
	EndCell();

  Debug = OldDebug;

  actel_lib_present = 1;
}


