(***************************************************************************)
(*                                                                         *)
(*                         Copyright (C) 1987-1990                         *)
(*                      by Gogesch Micro Systems, INC.                     *)
(*                                                                         *)
(*                           All rights reserved.                          *)
(*                                                                         *)
(***************************************************************************)


;DELAYS FOR THE FOLLOWING LIBRARY PARTS TAKEN FROM THE 1989 
;LATTICE GAL DATA BOOK

%StartModel
%Manufacturer:Lattice
%Type:16V8
%PartNumber:LATTICE'GAL16V8-15L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8
%PartNumber:LATTICE'GAL16V8-20Q
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 16,16,16,16,18,18,18,18);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 18,18,20,20);
     %ELSE
      BUF(LorOutput; OutPin; 18,18,20,20);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 16,16,16,16,18,18,18,18); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8
%PartNumber:LATTICE'GAL16V8-25L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8
%PartNumber:LATTICE'GAL16V8-25Q
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-10L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 6,6,10,0,8,8,1,1,1,1,8,8,10,0,8,8,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 6,6,10,0,8,8,1,1,1,1,8,8,10,0,8,8,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 8,8,8,8,10,10,10,10);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 8,8,10,10);
      %ELSE
       BUF(LorOutput; OutPin; 8,8,10,10);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 8,8,10,10);
      %ELSE
       BUF(LorOutput; TNode; 8,8,10,10);
      %END;
      TSB(TNode, %InFuse; OutPin; 8,8,8,8,10,10,10,10);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 8,8,10,10);
     %ELSE
      BUF(LorOutput; OutPin; 8,8,10,10);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 8,8,8,8,10,10,10,10); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 8,8,10,10);
      %ELSE
       BUF(LorOutput; OutPin; 8,8,10,10);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 8,8,10,10);
      %ELSE
       BUF(LorOutput; TNode; 8,8,10,10);
      %END;
      TSB(TNode, %InFuse; OutPin; 8,8,8,8,10,10,10,10);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-12L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 8,8,8,8,10,10,10,10);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 10,10,12,12);
      %ELSE
       BUF(LorOutput; OutPin; 10,10,12,12);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 10,10,12,12);
      %ELSE
       BUF(LorOutput; TNode; 10,10,12,12);
      %END;
      TSB(TNode, %InFuse; OutPin; 10,10,10,10,12,12,12,12);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 10,10,12,12);
     %ELSE
      BUF(LorOutput; OutPin; 10,10,12,12);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 8,8,8,8,10,10,10,10); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 10,10,12,12);
      %ELSE
       BUF(LorOutput; OutPin; 10,10,12,12);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 10,10,12,12);
      %ELSE
       BUF(LorOutput; TNode; 10,10,12,12);
      %END;
      TSB(TNode, %InFuse; OutPin; 10,10,10,10,12,12,12,12);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-15L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15);
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

;THE FOLLOWING MODEL DELAYS WERE TAKEN FROM ADVANCED INFORMATION
%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-15Q
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,15,0,10,10,1,1,1,1,12,12,15,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,15,0,10,10,1,1,1,1,12,12,15,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-25L
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-15LI
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15);
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-20LI
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 16,16,16,16,18,18,18,18);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 18,18,20,20);
     %ELSE
      BUF(LorOutput; OutPin; 18,18,20,20);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 16,16,16,16,18,18,18,18); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16V8A
%PartNumber:LATTICE'GAL16V8A-25LI
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 *
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 23,23,23,23,25,25,25,25);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 23,23,23,23,25,25,25,25); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P11;L17);
     
V8MAC(%SF2120, %SF2048, N1, L1, %FF00, P19, N9, %SF00, L9, N17, P1, P1);
V8MAC(%SF2121, %SF2049, N2, L2, %FF256, P18, N10, %SF256, L10, N18, P19, P18);
V8MAC(%SF2122, %SF2050, N3, L3, %FF512, P17, N11, %SF512, L11, N19, P18, P17);
V8MAC(%SF2123, %SF2051, N4, L4, %FF768, P16, N12, %SF768, L12, N20, P17, P16);
V8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P15, N13, %SF1024, L13, N21, P14, P15);
V8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P14, N14, %SF1280, L14, N22, P13, P14);
V8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P13, N15, %SF1536, L15, N23, P12, P13);
V8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P12, N16, %SF1792, L16, N24, P11, P11);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:16Z8
%PartNumber:LATTICE'ispGAL16Z8-20L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P3 ~P3 N1 ~N1 P4 ~P4 N2 ~N2 P5 ~P5 N3 ~N3 P6 ~P6 N4 ~N4 P7 ~P7
     N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8 *
     
%MACRO Z8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 16,16,16,16,18,18,18,18);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 18,18,20,20);
     %ELSE
      BUF(LorOutput; OutPin; 18,18,20,20);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 16,16,16,16,18,18,18,18); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L17);

     
Z8MAC(%SF2120, %SF2048, N1, L1, %FF00, P22, N9, %SF00, L9, N17, P1, P1);
Z8MAC(%SF2121, %SF2049, N2, L2, %FF256, P21, N10, %SF256, L10, N18, P22, P21);
Z8MAC(%SF2122, %SF2050, N3, L3, %FF512, P20, N11, %SF512, L11, N19, P21, P20);
Z8MAC(%SF2123, %SF2051, N4, L4, %FF768, P19, N12, %SF768, L12, N20, P20, P19);
Z8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P18, N13, %SF1024, L13, N21, P17, P18);
Z8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P17, N14, %SF1280, L14, N22, P16, P17);
Z8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P16, N15, %SF1536, L15, N23, P15, P16);
Z8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P15, N16, %SF1792, L16, N24, P13, P13);
%EndModel

     
%StartModel
%Manufacturer:Lattice
%Type:16Z8
%PartNumber:LATTICE'IspGAL16Z8-25L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P3 ~P3 N1 ~N1 P4 ~P4 N2 ~N2 P5 ~P5 N3 ~N3 P6 ~P6 N4 ~N4 P7 ~P7
     N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8 *
     
%MACRO Z8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L17);
     
Z8MAC(%SF2120, %SF2048, N1, L1, %FF00, P22, N9, %SF00, L9, N17, P1, P1);
Z8MAC(%SF2121, %SF2049, N2, L2, %FF256, P21, N10, %SF256, L10, N18, P22, P21);
Z8MAC(%SF2122, %SF2050, N3, L3, %FF512, P20, N11, %SF512, L11, N19, P21, P20);
Z8MAC(%SF2123, %SF2051, N4, L4, %FF768, P19, N12, %SF768, L12, N20, P20, P19);
Z8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P18, N13, %SF1024, L13, N21, P17, P18);
Z8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P17, N14, %SF1280, L14, N22, P16, P17);
Z8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P16, N15, %SF1536, L15, N23, P15, P16);
Z8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P15, N16, %SF1792, L16, N24, P13, P13);
%EndModel
     

%StartModel
%Manufacturer:Lattice
%Type:16Z8
%PartNumber:LATTICE'IspGAL16Z8-25LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P3 ~P3 N1 ~N1 P4 ~P4 N2 ~N2 P5 ~P5 N3 ~N3 P6 ~P6 N4 ~N4 P7 ~P7
     N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8 *
     
%MACRO Z8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);

 %CASE %SF2192,%SF2193,%S0
   2:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
     LOR(%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,
         %InFuse+192,%InFuse+224;LorOutput);
     %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L17);

Z8MAC(%SF2120, %SF2048, N1, L1, %FF00, P22, N9, %SF00, L9, N17, P1, P1);
Z8MAC(%SF2121, %SF2049, N2, L2, %FF256, P21, N10, %SF256, L10, N18, P22, P21);
Z8MAC(%SF2122, %SF2050, N3, L3, %FF512, P20, N11, %SF512, L11, N19, P21, P20);
Z8MAC(%SF2123, %SF2051, N4, L4, %FF768, P19, N12, %SF768, L12, N20, P20, P19);
Z8MAC(%SF2124, %SF2052, N5, L5, %FF1024, P18, N13, %SF1024, L13, N21, P17, P18);
Z8MAC(%SF2125, %SF2053, N6, L6, %FF1280, P17, N14, %SF1280, L14, N22, P16, P17);
Z8MAC(%SF2126, %SF2054, N7, L7, %FF1536, P16, N15, %SF1536, L15, N23, P15, P16);
Z8MAC(%SF2127, %SF2055, N8, L8, %FF1792, P15, N16, %SF1792, L16, N24, P13, P13);
%EndModel
     

%StartModel
%Manufacturer:Lattice
%Type:20V8
%PartNumber:LATTICE'GAL20V8-15L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8
%PartNumber:LATTICE'GAL20V8-20Q
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 16,16,16,16,18,18,18,18);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 18,18,20,20);
     %ELSE
      BUF(LorOutput; OutPin; 18,18,20,20);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 16,16,16,16,18,18,18,18); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8
%PartNumber:LATTICE'GAL20V8-25L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8
%PartNumber:LATTICE'GAL20V8-25Q
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(ZERO; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-10L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 6,6,10,0,8,8,1,1,1,1,6,6,10,0,8,8,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 6,6,10,0,8,8,1,1,1,1,6,6,10,0,8,8,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 8,8,8,8,10,10,10,10);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 8,8,10,10);
      %ELSE
       BUF(LorOutput; OutPin; 8,8,10,10);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 8,8,10,10);
      %ELSE
       BUF(LorOutput; TNode; 8,8,10,10);
      %END;
      TSB(TNode, %InFuse; OutPin; 8,8,8,8,10,10,10,10);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 8,8,10,10);
     %ELSE
      BUF(LorOutput; OutPin; 8,8,10,10);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 8,8,8,8,10,10,10,10); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 8,8,10,10);
      %ELSE
       BUF(LorOutput; OutPin; 8,8,10,10);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 8,8,10,10);
      %ELSE
       BUF(LorOutput; TNode; 8,8,10,10);
      %END;
      TSB(TNode, %InFuse; OutPin; 8,8,8,8,10,10,10,10);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-12L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 8,8,10,0,8,8,1,1,1,1,10,10,10,0,8,8,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 8,8,8,8,10,10,10,10);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 10,10,12,12);
      %ELSE
       BUF(LorOutput; OutPin; 10,10,12,12);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 10,10,12,12);
      %ELSE
       BUF(LorOutput; TNode; 10,10,12,12);
      %END;
      TSB(TNode, %InFuse; OutPin; 10,10,10,10,12,12,12,12);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 10,10,12,12);
     %ELSE
      BUF(LorOutput; OutPin; 10,10,12,12);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 8,8,8,8,10,10,10,10); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 10,10,12,12);
      %ELSE
       BUF(LorOutput; OutPin; 10,10,12,12);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 10,10,12,12);
      %ELSE
       BUF(LorOutput; TNode; 10,10,12,12);
      %END;
      TSB(TNode, %InFuse; OutPin; 10,10,10,10,12,12,12,12);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-15L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-15Q
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,15,0,10,10,1,1,1,1,12,12,15,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,15,0,10,10,1,1,1,1,12,12,15,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-25L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-15LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 10,10,12,0,10,10,1,1,1,1,12,12,12,0,10,10,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 13,13,13,13,15,15,15,15);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 13,13,15,15);
     %ELSE
      BUF(LorOutput; OutPin; 13,13,15,15);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 13,13,13,13,15,15,15,15); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 13,13,15,15);
      %ELSE
       BUF(LorOutput; OutPin; 13,13,15,15);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 13,13,15,15);
      %ELSE
       BUF(LorOutput; TNode; 13,13,15,15);
      %END;
      TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-20LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,15,0,12,12,1,1,1,1,15,15,15,0,12,12,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 16,16,16,16,18,18,18,18);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 18,18,20,20);
     %ELSE
      BUF(LorOutput; OutPin; 18,18,20,20);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 16,16,16,16,18,18,18,18); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 18,18,20,20);
      %ELSE
       BUF(LorOutput; OutPin; 18,18,20,20);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 18,18,20,20);
      %ELSE
       BUF(LorOutput; TNode; 18,18,20,20);
      %END;
      TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:20V8A
%PartNumber:LATTICE'GAL20V8A-25LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4 P6 ~P6
     N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 N7 ~N7 P9 ~P9 N8 ~N8 P10 ~P10 N9 ~N9 
     P11 ~P11 N10 ~N10 *

%MACRO FEEDBACK(N1FeedBack: %TEXT, N10FeedBack: %TEXT);
 %IF %SF2704 = 1 %THEN
  BUF(P1; N1FeedBack; 0,0,0,0);
  BUF(P13; N10FeedBack; 0,0,0,0);
 %ELSE
  BUF(P23; N1FeedBack; 0,0,0,0);
  BUF(P14; N10FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
%MACRO V8MAC(S0:%SF, XorFuse:%SF, FeedBack:%TEXT, LorOutput:%TEXT, InFuse:%FF, 
             OutPin:%TEXT, TNode:%TEXT, EnableFuse:%SF, TLNode:%TEXT, 
	     TSNode:%TEXT, NextPin:%TEXT, PrevPin:%TEXT);
 %CASE %SF2704,%SF2705,%S0
   2:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse=0 %THEN
      LINV(LorOutput;TLNode);
      DQFFC(TLNode, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %ELSE	     
      DQFFC(LorOutput, P1, IPL; TNode; 13,13,20,0,15,15,1,1,1,1,15,15,20,0,15,15,1,1,1,1);
     %END;
     TSB(TNode, L17; OutPin; 18,18,18,18,20,20,20,20);
     BUF(TNode; FeedBack; 0,0,0,0);
  |3:
     LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
         %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     LOR(%InFuse,%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,
         %InFuse+240,%InFuse+280;LorOutput);
     %IF %XorFuse = 0 %THEN
      INV(LorOutput; OutPin; 23,23,25,25);
     %ELSE
      BUF(LorOutput; OutPin; 23,23,25,25);
     %END;
     BUF(NextPin; FeedBack; 0,0,0,0);
  |5:
     TSB(TSNode, ZERO; OutPin; 18,18,18,18,20,20,20,20); 
     BUF(NextPin; FeedBack; 0,0,0,0);    
  |7:
   LOR(%InFuse+40,%InFuse+80,%InFuse+120,%InFuse+160,%InFuse+200,%InFuse+240,
       %InFuse+280;LorOutput);
     %IF %EnableFuse..%EnableFuse+39 = 1 %THEN
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; OutPin; 23,23,25,25);
      %ELSE
       BUF(LorOutput; OutPin; 23,23,25,25);
      %END;
     %ELSE
      %IF %XorFuse = 0 %THEN
       INV(LorOutput; TNode; 23,23,25,25);
      %ELSE
       BUF(LorOutput; TNode; 23,23,25,25);
      %END;
      TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
     %END;
     BUF(PrevPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;
     
FEEDBACK(N1, N10);

LINV(P13;L17);

V8MAC(%SF2632, %SF2560, N2, L1, %FF00, P22, N11, %SF00, L9, N17, P23, P23);
V8MAC(%SF2633, %SF2561, N3, L2, %FF320, P21, N12, %SF320, L10, N18, P22, P21);
V8MAC(%SF2634, %SF2562, N4, L3, %FF640, P20, N13, %SF640, L11, N19, P21, P20);
V8MAC(%SF2635, %SF2563, N5, L4, %FF960, P19, N14, %SF960, L12, N20, P20, P19);
V8MAC(%SF2636, %SF2564, N6, L5, %FF1280, P18, N15, %SF1280, L13, N21, P17, P18);
V8MAC(%SF2637, %SF2565, N7, L6, %FF1600, P17, N16, %SF1600, L14, N22, P16, P17);
V8MAC(%SF2638, %SF2566, N8, L7, %FF1920, P16, N17, %SF1920, L15, N23, P15, P16);
V8MAC(%SF2639, %SF2567, N9, L8, %FF2240, P15, N18, %SF2240, L16, N24, P14, P14);
%EndModel


%StartModel
%Manufacturer:Lattice
%Type:22V10
%PartNumber:LATTICE'GAL22V10-15L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
     N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 P9 ~P9 N9 ~N9
     P10 ~P10 N10 ~N10 P11 ~P11 P13 ~P13 *

%MACRO LOR16(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572,%InFuse+616,%InFuse+660; OutLNode);
%MACEND;

%MACRO LOR14(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572; OutLNode);
%MACEND;

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,
     %InFuse+484; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 6,6,12,0,8,8,20,20,15,15,8,8,12,0,8,8,20,20,15,15);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 6,6,12,0,8,8,18,18,15,15,8,8,12,0,8,8,20,20,15,15);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 13,13,15,15);
    %ELSE
     INV(OrOutput; TNode; 13,13,15,15);
     TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 13,13,15,15);
    %ELSE
     BUF(OrOutput; TNode; 13,13,15,15);
     TSB(TNode, %InFuse; OutPin; 13,13,13,13,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF5764; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF88, L1);
LOR10(%FF484, L2);
LOR12(%FF968, L3);
LOR14(%FF1540, L4);
LOR16(%FF2200, L5);
LOR16(%FF2948, L6);
LOR14(%FF3696, L7);
LOR12(%FF4356, L8);
LOR10(%FF4928, L9);
LOR8(%FF5412, L10);

V10Mac(%SF5809, %SF5808, N1, L1, N11, P23, %FF44, %SF44, L11);
V10Mac(%SF5811, %SF5810, N2, L2, N12, P22, %FF440, %SF440, L12);
V10Mac(%SF5813, %SF5812, N3, L3, N13, P21, %FF924, %SF924, L13);
V10Mac(%SF5815, %SF5814, N4, L4, N14, P20, %FF1496, %SF1496, L14);
V10Mac(%SF5817, %SF5816, N5, L5, N15, P19, %FF2156, %SF2156, L15);
V10Mac(%SF5819, %SF5818, N6, L6, N16, P18, %FF2904, %SF2904, L16);
V10Mac(%SF5821, %SF5820, N7, L7, N17, P17, %FF3652, %SF3652, L17);
V10Mac(%SF5823, %SF5822, N8, L8, N18, P16, %FF4312, %SF4312, L18);
V10Mac(%SF5825, %SF5824, N9, L9, N19, P15, %FF4884, %SF4884, L19);
V10Mac(%SF5827, %SF5826, N10, L10, N20, P14, %FF5368, %SF5368, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:22V10
%PartNumber:LATTICE'GAL22V10-25L
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
     N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 P9 ~P9 N9 ~N9
     P10 ~P10 N10 ~N10 P11 ~P11 P13 ~P13 *

%MACRO LOR16(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572,%InFuse+616,%InFuse+660; OutLNode);
%MACEND;

%MACRO LOR14(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572; OutLNode);
%MACEND;

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,
     %InFuse+484; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 13,13,15,0,15,15,23,23,25,25,15,15,15,0,15,15,25,25,25,25);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 10,10,15,0,10,10,25,25,20,20,10,10,15,0,10,10,25,25,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 23,23,25,25);
    %ELSE
     INV(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 23,23,25,25);
    %ELSE
     BUF(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF5764; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF88, L1);
LOR10(%FF484, L2);
LOR12(%FF968, L3);
LOR14(%FF1540, L4);
LOR16(%FF2200, L5);
LOR16(%FF2948, L6);
LOR14(%FF3696, L7);
LOR12(%FF4356, L8);
LOR10(%FF4928, L9);
LOR8(%FF5412, L10);

V10Mac(%SF5809, %SF5808, N1, L1, N11, P23, %FF44, %SF44, L11);
V10Mac(%SF5811, %SF5810, N2, L2, N12, P22, %FF440, %SF440, L12);
V10Mac(%SF5813, %SF5812, N3, L3, N13, P21, %FF924, %SF924, L13);
V10Mac(%SF5815, %SF5814, N4, L4, N14, P20, %FF1496, %SF1496, L14);
V10Mac(%SF5817, %SF5816, N5, L5, N15, P19, %FF2156, %SF2156, L15);
V10Mac(%SF5819, %SF5818, N6, L6, N16, P18, %FF2904, %SF2904, L16);
V10Mac(%SF5821, %SF5820, N7, L7, N17, P17, %FF3652, %SF3652, L17);
V10Mac(%SF5823, %SF5822, N8, L8, N18, P16, %FF4312, %SF4312, L18);
V10Mac(%SF5825, %SF5824, N9, L9, N19, P15, %FF4884, %SF4884, L19);
V10Mac(%SF5827, %SF5826, N10, L10, N20, P14, %FF5368, %SF5368, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:22V10
%PartNumber:LATTICE'GAL22V10-20LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
     N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 P9 ~P9 N9 ~N9
     P10 ~P10 N10 ~N10 P11 ~P11 P13 ~P13 *

%MACRO LOR16(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572,%InFuse+616,%InFuse+660; OutLNode);
%MACEND;

%MACRO LOR14(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572; OutLNode);
%MACEND;

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,
     %InFuse+484; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 8,8,15,0,10,10,23,23,20,20,10,10,15,0,10,10,25,25,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 8,8,15,0,10,10,23,23,20,20,10,10,15,0,10,10,25,25,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 18,18,20,20);
    %ELSE
     INV(OrOutput; TNode; 18,18,20,20);
     TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 18,18,20,20);
    %ELSE
     BUF(OrOutput; TNode; 18,18,20,20);
     TSB(TNode, %InFuse; OutPin; 18,18,18,18,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF5764; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF88, L1);
LOR10(%FF484, L2);
LOR12(%FF968, L3);
LOR14(%FF1540, L4);
LOR16(%FF2200, L5);
LOR16(%FF2948, L6);
LOR14(%FF3696, L7);
LOR12(%FF4356, L8);
LOR10(%FF4928, L9);
LOR8(%FF5412, L10);

V10Mac(%SF5809, %SF5808, N1, L1, N11, P23, %FF44, %SF44, L11);
V10Mac(%SF5811, %SF5810, N2, L2, N12, P22, %FF440, %SF440, L12);
V10Mac(%SF5813, %SF5812, N3, L3, N13, P21, %FF924, %SF924, L13);
V10Mac(%SF5815, %SF5814, N4, L4, N14, P20, %FF1496, %SF1496, L14);
V10Mac(%SF5817, %SF5816, N5, L5, N15, P19, %FF2156, %SF2156, L15);
V10Mac(%SF5819, %SF5818, N6, L6, N16, P18, %FF2904, %SF2904, L16);
V10Mac(%SF5821, %SF5820, N7, L7, N17, P17, %FF3652, %SF3652, L17);
V10Mac(%SF5823, %SF5822, N8, L8, N18, P16, %FF4312, %SF4312, L18);
V10Mac(%SF5825, %SF5824, N9, L9, N19, P15, %FF4884, %SF4884, L19);
V10Mac(%SF5827, %SF5826, N10, L10, N20, P14, %FF5368, %SF5368, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:22V10
%PartNumber:LATTICE'GAL22V10-25LI
%LastNode ? ?
%NumPins: 24
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
     N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 P9 ~P9 N9 ~N9
     P10 ~P10 N10 ~N10 P11 ~P11 P13 ~P13 *

%MACRO LOR16(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572,%InFuse+616,%InFuse+660; OutLNode);
%MACEND;

%MACRO LOR14(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,%InFuse+484,
     %InFuse+528,%InFuse+572; OutLNode);
%MACEND;

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396,%InFuse+440,
     %InFuse+484; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308,%InFuse+352,%InFuse+396; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 13,13,15,0,15,15,23,23,25,25,15,15,15,0,15,15,25,25,25,25);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 13,13,15,0,15,15,23,23,25,25,15,15,15,0,15,15,25,25,25,25);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 23,23,25,25);
    %ELSE
     INV(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 23,23,25,25);
    %ELSE
     BUF(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, %InFuse; OutPin; 23,23,23,23,25,25,25,25);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF5764; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF88, L1);
LOR10(%FF484, L2);
LOR12(%FF968, L3);
LOR14(%FF1540, L4);
LOR16(%FF2200, L5);
LOR16(%FF2948, L6);
LOR14(%FF3696, L7);
LOR12(%FF4356, L8);
LOR10(%FF4928, L9);
LOR8(%FF5412, L10);

V10Mac(%SF5809, %SF5808, N1, L1, N11, P23, %FF44, %SF44, L11);
V10Mac(%SF5811, %SF5810, N2, L2, N12, P22, %FF440, %SF440, L12);
V10Mac(%SF5813, %SF5812, N3, L3, N13, P21, %FF924, %SF924, L13);
V10Mac(%SF5815, %SF5814, N4, L4, N14, P20, %FF1496, %SF1496, L14);
V10Mac(%SF5817, %SF5816, N5, L5, N15, P19, %FF2156, %SF2156, L15);
V10Mac(%SF5819, %SF5818, N6, L6, N16, P18, %FF2904, %SF2904, L16);
V10Mac(%SF5821, %SF5820, N7, L7, N17, P17, %FF3652, %SF3652, L17);
V10Mac(%SF5823, %SF5822, N8, L8, N18, P16, %FF4312, %SF4312, L18);
V10Mac(%SF5825, %SF5824, N9, L9, N19, P15, %FF4884, %SF4884, L19);
V10Mac(%SF5827, %SF5826, N10, L10, N20, P14, %FF5368, %SF5368, L20);
%EndModel



%StartModel
%Manufacturer:Lattice
%Type:18V10
%PartNumber:LATTICE'GAL18V10-15LC
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
         N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 N9 ~N9 N10 ~N10 *

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252,%InFuse+288,%InFuse+324; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 10,10,10,0,8,8,20,20,10,15,10,10,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 10,10,10,0,8,8,20,20,10,15,10,10,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     INV(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     BUF(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF3420; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF72, L1);
LOR8(%FF396, L2);
LOR8(%FF720, L3);
LOR8(%FF1044, L4);
LOR10(%FF1368, L5);
LOR10(%FF1764, L6);
LOR8(%FF2160, L7);
LOR8(%FF2484, L8);
LOR8(%FF2808, L9);
LOR8(%FF3132, L10);

V10Mac(%SF3457, %SF3456, N1, L1, N11, P19, %FF36, %SF36, L11);
V10Mac(%SF3459, %SF3458, N2, L2, N12, P18, %FF360, %SF360, L12);
V10Mac(%SF3461, %SF3460, N3, L3, N13, P17, %FF684, %SF684, L13);
V10Mac(%SF3463, %SF3462, N4, L4, N14, P16, %FF1008, %SF1008, L14);
V10Mac(%SF3465, %SF3464, N5, L5, N15, P15, %FF1332, %SF1332, L15);
V10Mac(%SF3467, %SF3466, N6, L6, N16, P14, %FF1728, %SF1728, L16);
V10Mac(%SF3469, %SF3468, N7, L7, N17, P13, %FF2124, %SF2124, L17);
V10Mac(%SF3471, %SF3470, N8, L8, N18, P12, %FF2448, %SF2448, L18);
V10Mac(%SF3473, %SF3472, N9, L9, N19, P11, %FF2772, %SF2772, L19);
V10Mac(%SF3475, %SF3474, N10, L10, N20, P9, %FF3096, %SF3096, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:18V10
%PartNumber:LATTICE'GAL18V10-20LC
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
         N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 N9 ~N9 N10 ~N10 *

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252,%InFuse+288,%InFuse+324; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 12,12,12,0,8,8,10,10,15,15,12,12,12,0,8,8,10,10,15,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 12,12,12,0,8,8,10,10,15,15,12,12,12,0,8,8,10,10,15,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     INV(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     BUF(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF3420; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF72, L1);
LOR8(%FF396, L2);
LOR8(%FF720, L3);
LOR8(%FF1044, L4);
LOR10(%FF1368, L5);
LOR10(%FF1764, L6);
LOR8(%FF2160, L7);
LOR8(%FF2484, L8);
LOR8(%FF2808, L9);
LOR8(%FF3132, L10);

V10Mac(%SF3457, %SF3456, N1, L1, N11, P19, %FF36, %SF36, L11);
V10Mac(%SF3459, %SF3458, N2, L2, N12, P18, %FF360, %SF360, L12);
V10Mac(%SF3461, %SF3460, N3, L3, N13, P17, %FF684, %SF684, L13);
V10Mac(%SF3463, %SF3462, N4, L4, N14, P16, %FF1008, %SF1008, L14);
V10Mac(%SF3465, %SF3464, N5, L5, N15, P15, %FF1332, %SF1332, L15);
V10Mac(%SF3467, %SF3466, N6, L6, N16, P14, %FF1728, %SF1728, L16);
V10Mac(%SF3469, %SF3468, N7, L7, N17, P13, %FF2124, %SF2124, L17);
V10Mac(%SF3471, %SF3470, N8, L8, N18, P12, %FF2448, %SF2448, L18);
V10Mac(%SF3473, %SF3472, N9, L9, N19, P11, %FF2772, %SF2772, L19);
V10Mac(%SF3475, %SF3474, N10, L10, N20, P9, %FF3096, %SF3096, L20);
%EndModel
;Data for the following device is PRELIMINARY
%StartModel
%Manufacturer:Lattice
%Type:18V10
%PartNumber:LATTICE'GAL18V10-15LI
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
         N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 N9 ~N9 N10 ~N10 *

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252,%InFuse+288,%InFuse+324; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 8,8,10,0,8,8,20,20,10,15,8,8,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 8,8,10,0,8,8,20,20,10,15,8,8,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     INV(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     BUF(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF3420; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF72, L1);
LOR8(%FF396, L2);
LOR8(%FF720, L3);
LOR8(%FF1044, L4);
LOR10(%FF1368, L5);
LOR10(%FF1764, L6);
LOR8(%FF2160, L7);
LOR8(%FF2484, L8);
LOR8(%FF2808, L9);
LOR8(%FF3132, L10);

V10Mac(%SF3457, %SF3456, N1, L1, N11, P19, %FF36, %SF36, L11);
V10Mac(%SF3459, %SF3458, N2, L2, N12, P18, %FF360, %SF360, L12);
V10Mac(%SF3461, %SF3460, N3, L3, N13, P17, %FF684, %SF684, L13);
V10Mac(%SF3463, %SF3462, N4, L4, N14, P16, %FF1008, %SF1008, L14);
V10Mac(%SF3465, %SF3464, N5, L5, N15, P15, %FF1332, %SF1332, L15);
V10Mac(%SF3467, %SF3466, N6, L6, N16, P14, %FF1728, %SF1728, L16);
V10Mac(%SF3469, %SF3468, N7, L7, N17, P13, %FF2124, %SF2124, L17);
V10Mac(%SF3471, %SF3470, N8, L8, N18, P12, %FF2448, %SF2448, L18);
V10Mac(%SF3473, %SF3472, N9, L9, N19, P11, %FF2772, %SF2772, L19);
V10Mac(%SF3475, %SF3474, N10, L10, N20, P9, %FF3096, %SF3096, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:18V10
%PartNumber:LATTICE'GAL18V10-20LI
%LastNode ? ?
%NumPins: 20
%FDF AND 0 P1 ~P1 N1 ~N1 P2 ~P2 N2 ~N2 P3 ~P3 N3 ~N3 P4 ~P4 N4 ~N4 P5 ~P5
         N5 ~N5 P6 ~P6 N6 ~N6 P7 ~P7 N7 ~N7 P8 ~P8 N8 ~N8 N9 ~N9 N10 ~N10 *

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252,%InFuse+288,%InFuse+324; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+36,%InFuse+72,%InFuse+108,%InFuse+144,%InFuse+180,
     %InFuse+216,%InFuse+252; OutLNode);
%MACEND;

%MACRO V10Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 12,12,12,0,8,8,25,25,15,15,12,12,12,0,8,8,25,25,15,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 12,12,12,0,8,8,25,25,15,15,12,12,12,0,8,8,25,25,15,15);
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     INV(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     INV(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+35 = 1 %THEN
     BUF(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     BUF(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF3420; L21);
LNOR(%FF00, IPH; L22);

LOR8(%FF72, L1);
LOR8(%FF396, L2);
LOR8(%FF720, L3);
LOR8(%FF1044, L4);
LOR10(%FF1368, L5);
LOR10(%FF1764, L6);
LOR8(%FF2160, L7);
LOR8(%FF2484, L8);
LOR8(%FF2808, L9);
LOR8(%FF3132, L10);

V10Mac(%SF3457, %SF3456, N1, L1, N11, P19, %FF36, %SF36, L11);
V10Mac(%SF3459, %SF3458, N2, L2, N12, P18, %FF360, %SF360, L12);
V10Mac(%SF3461, %SF3460, N3, L3, N13, P17, %FF684, %SF684, L13);
V10Mac(%SF3463, %SF3462, N4, L4, N14, P16, %FF1008, %SF1008, L14);
V10Mac(%SF3465, %SF3464, N5, L5, N15, P15, %FF1332, %SF1332, L15);
V10Mac(%SF3467, %SF3466, N6, L6, N16, P14, %FF1728, %SF1728, L16);
V10Mac(%SF3469, %SF3468, N7, L7, N17, P13, %FF2124, %SF2124, L17);
V10Mac(%SF3471, %SF3470, N8, L8, N18, P12, %FF2448, %SF2448, L18);
V10Mac(%SF3473, %SF3472, N9, L9, N19, P11, %FF2772, %SF2772, L19);
V10Mac(%SF3475, %SF3474, N10, L10, N20, P9, %FF3096, %SF3096, L20);
%EndModel

%StartModel
%Manufacturer:Lattice
%Type:26CV12
%PartNumber:LATTICE'GAL26CV12-15LC
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P28 ~P28 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5
     N4 ~N4 P6 ~P6 N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8
     P11 ~P11 N9 ~N9 P12 ~P12 N10 ~N10 P13 ~P13 N11 ~N11 P14 ~P14 N12 ~N12 *

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468,%InFuse+520,
     %InFuse+572; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364; OutLNode);
%MACEND;

%MACRO V12Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 10,10,10,0,8,8,20,20,10,15,10,10,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 10,10,10,0,8,8,20,20,10,15,10,10,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     INV(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     BUF(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF6292; L25);
LNOR(%FF00, IPH; L26);

LOR8(%FF104, L1);
LOR8(%FF572, L2);
LOR8(%FF1040, L3);
LOR8(%FF1508, L4);
LOR10(%FF1976, L5);
LOR12(%FF2548, L6);
LOR12(%FF3224, L7);
LOR10(%FF3900, L8);
LOR8(%FF4472, L9);
LOR8(%FF4940, L10);
LOR8(%FF5408,L11);
LOR8(%FF5876,L12);

V12Mac(%SF6345, %SF6344, N1, L1, N13, P27, %FF52, %SF52, L13);
V12Mac(%SF6347, %SF6346, N2, L2, N14, P26, %FF520, %SF520, L14);
V12Mac(%SF6349, %SF6348, N3, L3, N15, P25, %FF988, %SF988, L15);
V12Mac(%SF6351, %SF6350, N4, L4, N16, P24, %FF1456, %SF1456, L16);
V12Mac(%SF6353, %SF6352, N5, L5, N17, P23, %FF1924, %SF1924, L17);
V12Mac(%SF6355, %SF6354, N6, L6, N18, P22, %FF2496, %SF2496, L18);
V12Mac(%SF6357, %SF6356, N7, L7, N19, P20, %FF3172, %SF3172, L19);
V12Mac(%SF6359, %SF6358, N8, L8, N20, P19, %FF3848, %SF3848, L20);
V12Mac(%SF6361, %SF6360, N9, L9, N21, P18, %FF4420, %SF4420, L21);
V12Mac(%SF6363, %SF6362, N10, L10, N22, P17, %FF4888, %SF4888, L22);
V12Mac(%SF6365, %SF6364, N11, L11, N23, P16, %FF5356, %SF5356, L23);
V12Mac(%SF6367, %SF6366, N12, L12, N24, P15, %FF5824, %SF5824, L24);

%EndModel

%StartModel
%Manufacturer:Lattice
%Type:26CV12
%PartNumber:LATTICE'GAL26CV12-20LC
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P28 ~P28 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5
     N4 ~N4 P6 ~P6 N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8
     P11 ~P11 N9 ~N9 P12 ~P12 N10 ~N10 P13 ~P13 N11 ~N11 P14 ~P14 N12 ~N12 *

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468,%InFuse+520,
     %InFuse+572; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364; OutLNode);
%MACEND;

%MACRO V12Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 12,12,12,0,8,8,10,10,15,15,12,12,12,0,8,8,10,10,15,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 12,12,12,0,8,8,10,10,15,15,12,12,12,0,8,8,10,10,15,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     INV(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     BUF(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF6292; L25);
LNOR(%FF00, IPH; L26);

LOR8(%FF104, L1);
LOR8(%FF572, L2);
LOR8(%FF1040, L3);
LOR8(%FF1508, L4);
LOR10(%FF1976, L5);
LOR12(%FF2548, L6);
LOR12(%FF3224, L7);
LOR10(%FF3900, L8);
LOR8(%FF4472, L9);
LOR8(%FF4940, L10);
LOR8(%FF5408,L11);
LOR8(%FF5876,L12);

V12Mac(%SF6345, %SF6344, N1, L1, N13, P27, %FF52, %SF52, L13);
V12Mac(%SF6347, %SF6346, N2, L2, N14, P26, %FF520, %SF520, L14);
V12Mac(%SF6349, %SF6348, N3, L3, N15, P25, %FF988, %SF988, L15);
V12Mac(%SF6351, %SF6350, N4, L4, N16, P24, %FF1456, %SF1456, L16);
V12Mac(%SF6353, %SF6352, N5, L5, N17, P23, %FF1924, %SF1924, L17);
V12Mac(%SF6355, %SF6354, N6, L6, N18, P22, %FF2496, %SF2496, L18);
V12Mac(%SF6357, %SF6356, N7, L7, N19, P20, %FF3172, %SF3172, L19);
V12Mac(%SF6359, %SF6358, N8, L8, N20, P19, %FF3848, %SF3848, L20);
V12Mac(%SF6361, %SF6360, N9, L9, N21, P18, %FF4420, %SF4420, L21);
V12Mac(%SF6363, %SF6362, N10, L10, N22, P17, %FF4888, %SF4888, L22);
V12Mac(%SF6365, %SF6364, N11, L11, N23, P16, %FF5356, %SF5356, L23);
V12Mac(%SF6367, %SF6366, N12, L12, N24, P15, %FF5824, %SF5824, L24);

%EndModel
;Data for the following device is PRELIMINARY
%StartModel
%Manufacturer:Lattice
%Type:26CV12
%PartNumber:LATTICE'GAL26CV12-15LI
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P28 ~P28 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5
     N4 ~N4 P6 ~P6 N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8
     P11 ~P11 N9 ~N9 P12 ~P12 N10 ~N10 P13 ~P13 N11 ~N11 P14 ~P14 N12 ~N12 *

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468,%InFuse+520,
     %InFuse+572; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364; OutLNode);
%MACEND;

%MACRO V12Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 8,8,10,0,8,8,20,20,10,15,8,8,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 8,8,10,0,8,8,20,20,10,15,8,8,10,0,8,8,20,20,10,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     INV(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(OrOutput; OutPin; 15,15,15,15);
    %ELSE
     BUF(OrOutput; TNode; 15,15,15,15);
     TSB(TNode, %InFuse; OutPin; 15,15,15,15,15,15,15,15);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF6292; L25);
LNOR(%FF00, IPH; L26);

LOR8(%FF104, L1);
LOR8(%FF572, L2);
LOR8(%FF1040, L3);
LOR8(%FF1508, L4);
LOR10(%FF1976, L5);
LOR12(%FF2548, L6);
LOR12(%FF3224, L7);
LOR10(%FF3900, L8);
LOR8(%FF4472, L9);
LOR8(%FF4940, L10);
LOR8(%FF5408,L11);
LOR8(%FF5876,L12);

V12Mac(%SF6345, %SF6344, N1, L1, N13, P27, %FF52, %SF52, L13);
V12Mac(%SF6347, %SF6346, N2, L2, N14, P26, %FF520, %SF520, L14);
V12Mac(%SF6349, %SF6348, N3, L3, N15, P25, %FF988, %SF988, L15);
V12Mac(%SF6351, %SF6350, N4, L4, N16, P24, %FF1456, %SF1456, L16);
V12Mac(%SF6353, %SF6352, N5, L5, N17, P23, %FF1924, %SF1924, L17);
V12Mac(%SF6355, %SF6354, N6, L6, N18, P22, %FF2496, %SF2496, L18);
V12Mac(%SF6357, %SF6356, N7, L7, N19, P20, %FF3172, %SF3172, L19);
V12Mac(%SF6359, %SF6358, N8, L8, N20, P19, %FF3848, %SF3848, L20);
V12Mac(%SF6361, %SF6360, N9, L9, N21, P18, %FF4420, %SF4420, L21);
V12Mac(%SF6363, %SF6362, N10, L10, N22, P17, %FF4888, %SF4888, L22);
V12Mac(%SF6365, %SF6364, N11, L11, N23, P16, %FF5356, %SF5356, L23);
V12Mac(%SF6367, %SF6366, N12, L12, N24, P15, %FF5824, %SF5824, L24);

%EndModel

%StartModel
%Manufacturer:Lattice
%Type:26CV12
%PartNumber:LATTICE'GAL26CV12-20LI
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P28 ~P28 P2 ~P2 N1 ~N1 P3 ~P3 N2 ~N2 P4 ~P4 N3 ~N3 P5 ~P5
     N4 ~N4 P6 ~P6 N5 ~N5 P8 ~P8 N6 ~N6 P9 ~P9 N7 ~N7 P10 ~P10 N8 ~N8
     P11 ~P11 N9 ~N9 P12 ~P12 N10 ~N10 P13 ~P13 N11 ~N11 P14 ~P14 N12 ~N12 *

%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468,%InFuse+520,
     %InFuse+572; OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364,%InFuse+416,%InFuse+468; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+52,%InFuse+104,%InFuse+156,%InFuse+208,%InFuse+260,
     %InFuse+312,%InFuse+364; OutLNode);
%MACEND;

%MACRO V12Mac(S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF, TLNode:%TEXT);
 %CASE %S1,%S0
   0:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 12,12,12,0,8,8,25,25,15,15,12,12,12,0,8,8,25,25,15,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L25; TLNode);
     DQFFC(TLNode, P1, L26; TNode; 12,12,12,0,8,8,25,25,15,15,12,12,12,0,8,8,25,25,15,15);
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     INV(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     INV(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+51 = 1 %THEN
     BUF(OrOutput; OutPin; 20,20,20,20);
    %ELSE
     BUF(OrOutput; TNode; 20,20,20,20);
     TSB(TNode, %InFuse; OutPin; 20,20,20,20,20,20,20,20);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  %END;
%MACEND;

LAND(%FF6292; L25);
LNOR(%FF00, IPH; L26);

LOR8(%FF104, L1);
LOR8(%FF572, L2);
LOR8(%FF1040, L3);
LOR8(%FF1508, L4);
LOR10(%FF1976, L5);
LOR12(%FF2548, L6);
LOR12(%FF3224, L7);
LOR10(%FF3900, L8);
LOR8(%FF4472, L9);
LOR8(%FF4940, L10);
LOR8(%FF5408,L11);
LOR8(%FF5876,L12);

V12Mac(%SF6345, %SF6344, N1, L1, N13, P27, %FF52, %SF52, L13);
V12Mac(%SF6347, %SF6346, N2, L2, N14, P26, %FF520, %SF520, L14);
V12Mac(%SF6349, %SF6348, N3, L3, N15, P25, %FF988, %SF988, L15);
V12Mac(%SF6351, %SF6350, N4, L4, N16, P24, %FF1456, %SF1456, L16);
V12Mac(%SF6353, %SF6352, N5, L5, N17, P23, %FF1924, %SF1924, L17);
V12Mac(%SF6355, %SF6354, N6, L6, N18, P22, %FF2496, %SF2496, L18);
V12Mac(%SF6357, %SF6356, N7, L7, N19, P20, %FF3172, %SF3172, L19);
V12Mac(%SF6359, %SF6358, N8, L8, N20, P19, %FF3848, %SF3848, L20);
V12Mac(%SF6361, %SF6360, N9, L9, N21, P18, %FF4420, %SF4420, L21);
V12Mac(%SF6363, %SF6362, N10, L10, N22, P17, %FF4888, %SF4888, L22);
V12Mac(%SF6365, %SF6364, N11, L11, N23, P16, %FF5356, %SF5356, L23);
V12Mac(%SF6367, %SF6366, N12, L12, N24, P15, %FF5824, %SF5824, L24);

%EndModel

