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


;MODELS WERE TAKEN FROM 1988 CYPRESS CMOS DATA BOOK.

;VALUES FOR TYPICAL DELAYS WERE NOT GIVEN.  USED
;`MAX' VALUES - 10 ns FOR `OTHER' DELAYS.
;DELAYS FOR SETUP,HOLD,PULSE WIDTH, ENABLE/DISABLE
;ARE MODELED THE SAME FOR `OTHER' AND `MAX' DELAYS.

%StartModel
%Manufacturer:Cypress
%Type:16L8
%PartNumber:PALC16L8-25
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P1 ~P1 P3 ~P3 P18 ~P18 P4 ~P4 P17 ~P17 P5 ~P5 P16 ~P16
     P6 ~P6 P15 ~P15 P7 ~P7 P14 ~P14 P8 ~P8 P13 ~P13 P9 ~P9 P11 ~P11 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 15,15,25,25);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 15,15,25,25);
  TSB(TNode, %InFuse; OutPin; 25,25,25,25,25,25,25,25);
 %END;
%MACEND;

NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR7ENABLE(%SF256, %FF256, P18, N2);
NOR7ENABLE(%SF512, %FF512, P17, N3);
NOR7ENABLE(%SF768, %FF768, P16, N4);
NOR7ENABLE(%SF1024, %FF1024, P15, N5);
NOR7ENABLE(%SF1280, %FF1280, P14, N6);
NOR7ENABLE(%SF1536, %FF1536, P13, N7);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16L8
%PartNumber:PALC16L8-35
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P1 ~P1 P3 ~P3 P18 ~P18 P4 ~P4 P17 ~P17 P5 ~P5 P16 ~P16
     P6 ~P6 P15 ~P15 P7 ~P7 P14 ~P14 P8 ~P8 P13 ~P13 P9 ~P9 P11 ~P11 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 25,25,35,35);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 25,25,35,35);
  TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
 %END;
%MACEND;

NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR7ENABLE(%SF256, %FF256, P18, N2);
NOR7ENABLE(%SF512, %FF512, P17, N3);
NOR7ENABLE(%SF768, %FF768, P16, N4);
NOR7ENABLE(%SF1024, %FF1024, P15, N5);
NOR7ENABLE(%SF1280, %FF1280, P14, N6);
NOR7ENABLE(%SF1536, %FF1536, P13, N7);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R4
%PartNumber:PALC16R4-25
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P19 ~P19 P3 ~P3 P18 ~P18 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4
     P6 ~P6 N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 P13 ~P13 P9 ~P9 P12 ~P12 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 15,15,25,25);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 15,15,25,25);
  TSB(TNode, %InFuse; OutPin; 25,25,25,25,25,25,25,25);
 %END;
%MACEND;

%MACRO NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;5,5,20,0,15,15,15,15,20,0,15,15);
 TSB(NodeInp,L1;OutPin;20,20,20,20,20,20,20,20);
%MACEND;

LINV(P11;L1);
NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR7ENABLE(%SF256, %FF256, P18, N2);
NOR8DFF(%FF512, N3, L2, P17);
NOR8DFF(%FF768, N4, L3, P16);
NOR8DFF(%FF1024, N5, L4, P15);
NOR8DFF(%FF1280, N6, L5, P14);
NOR7ENABLE(%SF1536, %FF1536, P13, N7);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R4
%PartNumber:PALC16R4-35
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P19 ~P19 P3 ~P3 P18 ~P18 P4 ~P4 N3 ~N3 P5 ~P5 N4 ~N4
     P6 ~P6 N5 ~N5 P7 ~P7 N6 ~N6 P8 ~P8 P13 ~P13 P9 ~P9 P12 ~P12 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 25,25,35,35);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 25,25,35,35);
  TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
 %END;
%MACEND;

%MACRO NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;15,15,30,0,20,20,25,25,30,0,20,20);
 TSB(NodeInp,L1;OutPin;25,25,25,25,25,25,25,25);
%MACEND;

LINV(P11;L1);
NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR7ENABLE(%SF256, %FF256, P18, N2);
NOR8DFF(%FF512, N3, L2, P17);
NOR8DFF(%FF768, N4, L3, P16);
NOR8DFF(%FF1024, N5, L4, P15);
NOR8DFF(%FF1280, N6, L5, P14);
NOR7ENABLE(%SF1536, %FF1536, P13, N7);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R6
%PartNumber:PALC16R6-25
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P19 ~P19 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 P12 ~P12 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 15,15,25,25);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 15,15,25,25);
  TSB(TNode, %InFuse; OutPin; 25,25,25,25,25,25,25,25);
 %END;
%MACEND;

%MACRO NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;5,5,20,0,15,15,15,15,20,0,15,15);
 TSB(NodeInp,L1;OutPin;20,20,20,20,20,20,20,20);
%MACEND;

LINV(P11;L1);
NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR8DFF(%FF256, N2, L2, P18);
NOR8DFF(%FF512, N3, L3, P17);
NOR8DFF(%FF768, N4, L4, P16);
NOR8DFF(%FF1024, N5, L5, P15);
NOR8DFF(%FF1280, N6, L6, P14);
NOR8DFF(%FF1536, N7, L7, P13);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R6
%PartNumber:PALC16R6-35
%LastNode ? ?
%NumPins:20
%FDF AND 0 P2 ~P2 P19 ~P19 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 P12 ~P12 *

%MACRO NOR7ENABLE(EnableFuse:%SF, InFuse:%FF, OutPin:%TEXT, TNode:%TEXT);
 %IF %EnableFuse..%EnableFuse+31 = 1 %THEN
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; OutPin; 25,25,35,35);
 %ELSE
  NOR(%InFuse+32, %InFuse+64, %InFuse+96, %InFuse+128, %InFuse+160,
     %InFuse+192, %InFuse+224; TNode; 25,25,35,35);
  TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
 %END;
%MACEND;

%MACRO NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;15,15,30,0,20,20,25,25,30,0,20,20);
 TSB(NodeInp,L1;OutPin;25,25,25,25,25,25,25,25);
%MACEND;

LINV(P11;L1);
NOR7ENABLE(%SF00, %FF00, P19, N1);
NOR8DFF(%FF256, N2, L2, P18);
NOR8DFF(%FF512, N3, L3, P17);
NOR8DFF(%FF768, N4, L4, P16);
NOR8DFF(%FF1024, N5, L5, P15);
NOR8DFF(%FF1280, N6, L6, P14);
NOR8DFF(%FF1536, N7, L7, P13);
NOR7ENABLE(%SF1792, %FF1792, P12, N8);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R8
%PartNumber:PALC16R8-25
%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 NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;5,5,20,0,15,15,15,15,20,0,15,15);
 TSB(NodeInp,L1;OutPin;20,20,20,20,20,20,20,20);
%MACEND;

LINV(P11;L1);
NOR8DFF(%FF00, N1, L2, P19);
NOR8DFF(%FF256, N2, L3, P18);
NOR8DFF(%FF512, N3, L4, P17);
NOR8DFF(%FF768, N4, L5, P16);
NOR8DFF(%FF1024, N5, L6, P15);
NOR8DFF(%FF1280, N6, L7, P14);
NOR8DFF(%FF1536, N7, L8, P13);
NOR8DFF(%FF1792, N8, L9, P12);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:16R8
%PartNumber:PALC16R8-35
%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 NOR8DFF(InFuse:%FF, NodeInp:%TEXT, TLNode:%TEXT, OutPin:%TEXT);
 LNOR(%InFuse,%InFuse+32,%InFuse+64,%InFuse+96,%InFuse+128,%InFuse+160,%InFuse+192,%InFuse+224;TLNode);
 DQFF(TLNode,P1;NodeInp;15,15,30,0,20,20,25,25,30,0,20,20);
 TSB(NodeInp,L1;OutPin;25,25,25,25,25,25,25,25);
%MACEND;

LINV(P11;L1);
NOR8DFF(%FF00, N1, L2, P19);
NOR8DFF(%FF256, N2, L3, P18);
NOR8DFF(%FF512, N3, L4, P17);
NOR8DFF(%FF768, N4, L5, P16);
NOR8DFF(%FF1024, N5, L6, P15);
NOR8DFF(%FF1280, N6, L7, P14);
NOR8DFF(%FF1536, N7, L8, P13);
NOR8DFF(%FF1792, N8, L9, P12);
%EndModel


%StartModel
%Manufacturer:Cypress
%Type:20G10
%PartNumber:PLDC20G10-15
%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 LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO G10Mac(S2:%SF, S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF);
 %CASE %S2,%S1,%S0
   0:
     DQFFC(OrOutput, P1, IPL; TNode; 8,8,12,0,11,11,1,1,1,1,10,10,12,0,11,11,1,1,1,1);
    %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:
     DQFFC(OrOutput, P1, IPL; TNode; 8,8,12,0,11,11,1,1,1,1,10,10,12,0,11,11,1,1,1,1);
    %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);
  |4:
     DQFFC(OrOutput, P1, IPL; TNode; 8,8,12,0,11,11,1,1,1,1,10,10,12,0,11,11,1,1,1,1);
     ITSB(TNode, L11; OutPin; 10,10,10,10,12,12,12,12);
     INV(TNode; FeedBack; 0,0,0,0);
  |5:
     DQFFC(OrOutput, P1, IPL; TNode; 8,8,12,0,11,11,1,1,1,1,10,10,12,0,11,11,1,1,1,1);
     TSB(TNode, L11; OutPin; 10,10,10,10,12,12,12,12);
     INV(TNode; FeedBack; 0,0,0,0);
  |6:
     INV(OrOutput; TNode; 13,13,15,15);
     TSB(TNode, L11; OutPin; 10,10,10,10,12,12,12,12);
     BUF(OutPin; FeedBack; 0,0,0,0);
  |7:
     BUF(OrOutput; TNode; 13,13,15,15);
     TSB(TNode, L11; OutPin; 10,10,10,10,12,12,12,12);
     BUF(OutPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L11);

LOR8(%FF44, L1);
LOR8(%FF440, L2);
LOR8(%FF836, L3);
LOR8(%FF1232, L4);
LOR8(%FF1628, L5);
LOR8(%FF2024, L6);
LOR8(%FF2420, L7);
LOR8(%FF2816, L8);
LOR8(%FF3212, L9);
LOR8(%FF3608, L10);


G10Mac(%SF3960, %SF3961, %SF3962, N1, L1, N11, P23, %FF00, %SF00);
G10Mac(%SF3963, %SF3964, %SF3965, N2, L2, N12, P22, %FF396, %SF396);
G10Mac(%SF3966, %SF3967, %SF3968, N3, L3, N13, P21, %FF792, %SF792);
G10Mac(%SF3969, %SF3970, %SF3971, N4, L4, N14, P20, %FF1188, %SF1188);
G10Mac(%SF3972, %SF3973, %SF3974, N5, L5, N15, P19, %FF1584, %SF1584);
G10Mac(%SF3975, %SF3976, %SF3977, N6, L6, N16, P18, %FF1980, %SF1980);
G10Mac(%SF3978, %SF3979, %SF3980, N7, L7, N17, P17, %FF2376, %SF2376);
G10Mac(%SF3981, %SF3982, %SF3983, N8, L8, N18, P16, %FF2772, %SF2772);
G10Mac(%SF3984, %SF3985, %SF3986, N9, L9, N19, P15, %FF3168, %SF3168);
G10Mac(%SF3987, %SF3988, %SF3989, N10, L10, N20, P14, %FF3564, %SF3564);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:20G10
%PartNumber:PLDC20G10-25
%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 LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO G10Mac(S2:%SF, S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF);
 %CASE %S2,%S1,%S0
   0:
     DQFFC(OrOutput, P1, IPL; TNode; 13,13,15,0,15,15,1,1,1,1,15,15,15,0,15,15,1,1,1,1);
    %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:
     DQFFC(OrOutput, P1, IPL; TNode; 13,13,15,0,15,15,1,1,1,1,15,15,15,0,15,15,1,1,1,1);
    %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);
  |4:
     DQFFC(OrOutput, P1, IPL; TNode; 13,13,15,0,15,15,1,1,1,1,15,15,15,0,15,15,1,1,1,1);
     ITSB(TNode, L11; OutPin; 18,18,18,18,20,20,20,20);
     INV(TNode; FeedBack; 0,0,0,0);
  |5:
     DQFFC(OrOutput, P1, IPL; TNode; 13,13,15,0,15,15,1,1,1,1,15,15,15,0,15,15,1,1,1,1);
     TSB(TNode, L11; OutPin; 18,18,18,18,20,20,20,20);
     INV(TNode; FeedBack; 0,0,0,0);
  |6:
     INV(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, L11; OutPin; 18,18,18,18,20,20,20,20);
     BUF(OutPin; FeedBack; 0,0,0,0);
  |7:
     BUF(OrOutput; TNode; 23,23,25,25);
     TSB(TNode, L11; OutPin; 18,18,18,18,20,20,20,20);
     BUF(OutPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L11);

LOR8(%FF44, L1);
LOR8(%FF440, L2);
LOR8(%FF836, L3);
LOR8(%FF1232, L4);
LOR8(%FF1628, L5);
LOR8(%FF2024, L6);
LOR8(%FF2420, L7);
LOR8(%FF2816, L8);
LOR8(%FF3212, L9);
LOR8(%FF3608, L10);


G10Mac(%SF3960, %SF3961, %SF3962, N1, L1, N11, P23, %FF00, %SF00);
G10Mac(%SF3963, %SF3964, %SF3965, N2, L2, N12, P22, %FF396, %SF396);
G10Mac(%SF3966, %SF3967, %SF3968, N3, L3, N13, P21, %FF792, %SF792);
G10Mac(%SF3969, %SF3970, %SF3971, N4, L4, N14, P20, %FF1188, %SF1188);
G10Mac(%SF3972, %SF3973, %SF3974, N5, L5, N15, P19, %FF1584, %SF1584);
G10Mac(%SF3975, %SF3976, %SF3977, N6, L6, N16, P18, %FF1980, %SF1980);
G10Mac(%SF3978, %SF3979, %SF3980, N7, L7, N17, P17, %FF2376, %SF2376);
G10Mac(%SF3981, %SF3982, %SF3983, N8, L8, N18, P16, %FF2772, %SF2772);
G10Mac(%SF3984, %SF3985, %SF3986, N9, L9, N19, P15, %FF3168, %SF3168);
G10Mac(%SF3987, %SF3988, %SF3989, N10, L10, N20, P14, %FF3564, %SF3564);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:20G10
%PartNumber:PLDC20G10-35
%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 LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+44,%InFuse+88,%InFuse+132,%InFuse+176,%InFuse+220,
     %InFuse+264,%InFuse+308; OutLNode);
%MACEND;

%MACRO G10Mac(S2:%SF, S1:%SF, S0:%SF, FeedBack:%TEXT, OrOutput:%TEXT, TNode:%TEXT,
              OutPin:%TEXT, InFuse:%FF, EnableFuse:%SF);
 %CASE %S2,%S1,%S0
   0:
     DQFFC(OrOutput, P1, IPL; TNode; 23,23,30,0,20,20,1,1,1,1,25,25,30,0,20,20,1,1,1,1);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 33,33,33,33,35,35,35,35);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     DQFFC(OrOutput, P1, IPL; TNode; 23,23,30,0,20,20,1,1,1,1,25,25,30,0,20,20,1,1,1,1);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 33,33,33,33,35,35,35,35);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 33,33,35,35);
    %ELSE
     INV(OrOutput; TNode; 33,33,35,35);
     TSB(TNode, %InFuse; OutPin; 33,33,33,33,35,35,35,35);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 33,33,35,35);
    %ELSE
     BUF(OrOutput; TNode; 33,33,35,35);
     TSB(TNode, %InFuse; OutPin; 33,33,33,33,35,35,35,35);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |4:
     DQFFC(OrOutput, P1, IPL; TNode; 23,23,30,0,20,20,1,1,1,1,25,25,30,0,20,20,1,1,1,1);
     ITSB(TNode, L11; OutPin; 23,23,23,23,25,25,25,25);
     INV(TNode; FeedBack; 0,0,0,0);
  |5:
     DQFFC(OrOutput, P1, IPL; TNode; 23,23,30,0,20,20,1,1,1,1,25,25,30,0,20,20,1,1,1,1);
     TSB(TNode, L11; OutPin; 23,23,23,23,25,25,25,25);
     INV(TNode; FeedBack; 0,0,0,0);
  |6:
     INV(OrOutput; TNode; 33,33,35,35);
     TSB(TNode, L11; OutPin; 23,23,23,23,25,25,25,25);
     BUF(OutPin; FeedBack; 0,0,0,0);
  |7:
     BUF(OrOutput; TNode; 33,33,35,35);
     TSB(TNode, L11; OutPin; 23,23,23,23,25,25,25,25);
     BUF(OutPin; FeedBack; 0,0,0,0);
 %END;
%MACEND;

LINV(P13;L11);

LOR8(%FF44, L1);
LOR8(%FF440, L2);
LOR8(%FF836, L3);
LOR8(%FF1232, L4);
LOR8(%FF1628, L5);
LOR8(%FF2024, L6);
LOR8(%FF2420, L7);
LOR8(%FF2816, L8);
LOR8(%FF3212, L9);
LOR8(%FF3608, L10);


G10Mac(%SF3960, %SF3961, %SF3962, N1, L1, N11, P23, %FF00, %SF00);
G10Mac(%SF3963, %SF3964, %SF3965, N2, L2, N12, P22, %FF396, %SF396);
G10Mac(%SF3966, %SF3967, %SF3968, N3, L3, N13, P21, %FF792, %SF792);
G10Mac(%SF3969, %SF3970, %SF3971, N4, L4, N14, P20, %FF1188, %SF1188);
G10Mac(%SF3972, %SF3973, %SF3974, N5, L5, N15, P19, %FF1584, %SF1584);
G10Mac(%SF3975, %SF3976, %SF3977, N6, L6, N16, P18, %FF1980, %SF1980);
G10Mac(%SF3978, %SF3979, %SF3980, N7, L7, N17, P17, %FF2376, %SF2376);
G10Mac(%SF3981, %SF3982, %SF3983, N8, L8, N18, P16, %FF2772, %SF2772);
G10Mac(%SF3984, %SF3985, %SF3986, N9, L9, N19, P15, %FF3168, %SF3168);
G10Mac(%SF3987, %SF3988, %SF3989, N10, L10, N20, P14, %FF3564, %SF3564);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:22V10
%PartNumber:PALC22V10-15
%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; 10,10,12,0,11,11,15,15,20,20,10,10,12,0,11,11,15,15,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 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,12,0,11,11,15,15,20,20,10,10,12,0,11,11,15,15,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 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+43 = 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+43 = 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(%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:Cypress
%Type:22V10
%PartNumber:PALC22V10-20
%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; 15,15,12,0,13,13,25,25,20,20,15,15,12,0,13,13,25,25,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 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; 15,15,12,0,13,13,25,25,20,20,15,15,12,0,13,13,25,25,20,20);
    %IF %EnableFuse..%EnableFuse+43 = 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+43 = 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+43 = 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(%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:Cypress
%Type:22V10
%PartNumber:PALC22V10-25
%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; 15,15,15,0,15,15,25,25,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; 25,25,25,25,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 15,15,15,0,15,15,25,25,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; 25,25,25,25,25,25,25,25);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 25,25,25,25);
    %ELSE
     INV(OrOutput; TNode; 25,25,25,25);
     TSB(TNode, %InFuse; OutPin; 25,25,25,25,25,25,25,25);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 25,25,25,25);
    %ELSE
     BUF(OrOutput; TNode; 25,25,25,25);
     TSB(TNode, %InFuse; OutPin; 25,25,25,25,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:Cypress
%Type:22V10
%PartNumber:PALC22V10-35
%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; 25,25,30,0,25,25,35,35,35,35,25,25,30,0,25,25,35,35,35,35);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(TNode; OutPin; 0,0,0,0);
    %ELSE
     ITSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |1:
     LOR(OrOutput, L21; TLNode);
     DQFFC(TLNode, P1, L22; TNode; 25,25,30,0,25,25,35,35,35,35,25,25,30,0,25,25,35,35,35,35);
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(TNode; OutPin; 0,0,0,0);
    %ELSE
     TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
    %END;
    INV(TNode; FeedBack; 0,0,0,0);
  |2:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     INV(OrOutput; OutPin; 35,35,35,35);
    %ELSE
     INV(OrOutput; TNode; 35,35,35,35);
     TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
    %END;
    BUF(OutPin; FeedBack; 0,0,0,0);
  |3:
    %IF %EnableFuse..%EnableFuse+43 = 1 %THEN
     BUF(OrOutput; OutPin; 35,35,35,35);
    %ELSE
     BUF(OrOutput; TNode; 35,35,35,35);
     TSB(TNode, %InFuse; OutPin; 35,35,35,35,35,35,35,35);
    %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:Cypress
%Type:22V10
%PartNumber:PALC22V10B-15
%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; 10,10,10,0,6,6,20,20,15,10,10,10,10,0,6,6,20,20,15,10);
    %IF %EnableFuse..%EnableFuse+43 = 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,6,6,20,20,15,10,10,10,10,0,6,6,20,20,15,10);
    %IF %EnableFuse..%EnableFuse+43 = 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+43 = 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+43 = 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(%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:Cypress
%Type:CY7C330
%PartNumber:CY7C330-33
%LastNode ? ?
%NumPins: 28
%FDF AND 0 N23 ~N23 N24 ~N24 N25 ~N25 N26 ~N26 N27 ~N27 N28 ~N28 N29 ~N29
           N30 ~N30 N31 ~N31 N32 ~N32 N33 ~N33 ~N1 N1 ~N13 N13 ~N2 N2 ~N3 N3
	   ~N14 N14 ~N4 N4 ~N5 N5 ~N15 N15 ~N6 N6 ~N19 N19 ~N20 N20 ~N7 N7
	   ~N16 N16 ~N8 N8 ~N21 N21 ~N22 N22 ~N9 N9 ~N17 N17 ~N10 N10 ~N11 N11
	   ~N18 N18 ~N12 N12 *

%MACRO LOR19(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056,%InFuse+1122,
     %InFuse+1188; LorOutput);
%MACEND;

%MACRO LOR17(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056; LorOutput);
%MACEND;

%MACRO LOR15(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924; LorOutput);
%MACEND;

%MACRO LOR13(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792; LorOutput);
%MACEND;

%MACRO LOR11(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660; LorOutput);
%MACEND;

%MACRO LOR9(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528; LorOutput);
%MACEND;

%MACRO INPUTMac(S4:%SF, InPin:%TEXT, TNode:%TEXT);

 %IF %SF17070 = 0 %THEN
   DQFF(InPin, P2; TNode; 1,1,10,5,12,12,1,1,10,5,12,12);
 %ELSE
   %IF %S4 = 0 %THEN
     DQFF(InPin, P2; TNode; 1,1,10,5,12,12,1,1,10,5,12,12);
   %ELSE
     DQFF(InPin, P3; TNode; 1,1,10,5,12,12,1,1,10,5,12,12);
   %END;
  %END;

%MACEND;

%MACRO INPUTREGMac(S2:%SF, InPin:%TEXT, OutInReg:%TEXT);

 %IF %S2 = 0 %THEN
    DQFFC(InPin, P2, IPL; OutInReg; 10,10,10,5,12,12,1,1,1,1,10,10,10,5,12,12,1,1,1,1);
 %ELSE
    DQFFC(InPin, P3, IPL; OutInReg; 10,10,10,5,12,12,1,1,1,1,10,10,10,5,12,12,1,1,1,1);
 %END;

%MACEND;

%MACRO HIDDENMac(LorOutput:%TEXT, XorFuse:%SF, XorOutput:%TEXT,
                 TLNode1:%TEXT, TLNode2:%TEXT, TLNode:%TEXT,
		 HiddenRegOutput:%TEXT, FeedBack:%TEXT);
 %IF %XorFuse..%XorFuse+65 = 1 %THEN
   LNOR(LorOutput; XorOutput);
 %ELSE
   LOR(LorOutput; XorOutput);
 %END;
 LAND(XorOutput, L2; TLNode1);
 LAND(XorOutput, L1; TLNode2);
 LOR(TLNode1, TLNode2, L3; TLNode);
 DQFFC(TLNode, P1, IPL; HiddenRegOutput;1,1,10,5,12,12,1,1,1,1,1,1,10,5,12,12,1,1,1,1);
 INV(HiddenRegOutput; FeedBack; 0,0,0,0);


%MACEND;

%MACRO 330Mac(S0:%SF, LorOutput:%TEXT, InFuse:%FF, XorOutput:%TEXT,
              TLNode1:%TEXT, TLNode2:%TEXT, RegInput:%TEXT,
	      RegOutput:%TEXT, TLNode:%TEXT, Outpin:%TEXT, OutInReg:%TEXT,
	      FeedBack:%TEXT, Output:%TEXT, Enable:%TEXT, EnableFuse:%SF,
	      XorFuse:%SF);

 %IF %XorFuse..%XorFuse+65 = 1 %THEN
    LINV(LorOutput; XorOutput);
    LAND(XorOutput, L2; TLNode1);
    LAND(XorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %ELSE
    LAND(LorOutput, L2; TLNode1);
    LAND(LorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %END;
    DQFFC(RegInput, P1, IPL; RegOutput; 10,10,20,0,12,12,1,1,1,1,10,10,20,0,12,12,1,1,1,1);

 %IF %S0+1 = 0 %THEN
    INV(RegOutput; FeedBack; 10,10,10,10);
 %ELSE
    BUF(OutInReg; FeedBack; 10,10,10,10);
 %END;

 %IF %S0 = 0 %THEN
    %IF %EnableFuse..%EnableFuse+65 = 1 %THEN
     INV(RegOutput; Outpin; 10,10,10,10);
    %ELSE
     BUF(RegOutput; Output; 10,10,10,10);
     AND(%InFuse; Enable; 20,20,20,20);
     ITSB(Output, Enable; Outpin; 30,30,30,30,30,30,30,30);
    %END;
 %ELSE
    BUF(RegOutput; Output; 10,10,10,10);
    ITSB(Output, L4; Outpin; 30,30,30,30,30,30,30,30);
 %END;

%MACEND;

%MACRO SHAREDMUXMac(S3:%SF, OutInReg:%TEXT, SharedInput:%TEXT, NextOutInReg:%TEXT);

 %IF %S3 = 0 %THEN
    BUF(OutInReg; SharedInput; 10,10,10,10);
 %ELSE
    BUF(NextOutInReg; SharedInput; 10,10,10,10);
 %END;

%MACEND;


LNAND(%FF00; L1);
LAND(%FF16962; L2);
LAND(L1,L2;L3);
LINV(P14;L4);

LOR9(%FF198, L5);
LOR19(%FF924, L6);
LOR11(%FF2310, L7);
LOR17(%FF3168, L8);
LOR13(%FF4422, L9);
LOR15(%FF5412, L10);
LOR19(%FF6468, L11);
LOR11(%FF7788, L12);
LOR15(%FF8646, L13);
LOR13(%FF9768, L14);
LOR17(%FF10692, L15);
LOR13(%FF11880, L16);
LOR17(%FF12870, L17);
LOR11(%FF14124, L18);
LOR19(%FF14982, L19);
LOR9(%FF16368, L20);

INPUTMac(%SF17071, P3, N23);
INPUTMac(%SF17072, P4, N24);
INPUTMac(%SF17073, P5, N25);
INPUTMac(%SF17074, P6, N26);
INPUTMac(%SF17075, P7, N27);
INPUTMac(%SF17076, P9, N28);
INPUTMac(%SF17077, P10, N29);
INPUTMac(%SF17078, P11, N30);
INPUTMac(%SF17079, P12, N31);
INPUTMac(%SF17080, P13, N32);
INPUTMac(%SF17081, P14, N33);

INPUTREGMac(%SF17030, P28, N34);
INPUTREGMac(%SF17034, P27, N35);
INPUTREGMac(%SF17037, P26, N36);
INPUTREGMac(%SF17041, P25, N37);
INPUTREGMac(%SF17044, P24, N38);
INPUTREGMac(%SF17048, P23, N39);
INPUTREGMac(%SF17051, P20, N40);
INPUTREGMac(%SF17055, P19, N41);
INPUTREGMac(%SF17058, P18, N42);
INPUTREGMac(%SF17062, P17, N43);
INPUTREGMac(%SF17065, P16, N44);
INPUTREGMac(%SF17069, P15, N45);

330Mac(%SF17028, L5, %FF66, L21, L22, L23, L24, N46, L25, P28, N34, N1,
       N62, N74, %SF66, %SF132);
330Mac(%SF17032, L6, %FF792, L26, L27, L28, L29, N47, L30, P27, N35, N2,
       N63, N75, %SF792, %SF858);
330Mac(%SF17035, L7, %FF2178, L31, L32, L33, L34, N48, L35, P26, N36, N3,
       N64, N76, %SF2178, %SF2244);
330Mac(%SF17039, L8, %FF3036, L36, L37, L38, L39, N49, L40, P25, N37, N4,
       N65, N77, %SF3036, %SF3102);
330Mac(%SF17042, L9, %FF4290, L41, L42, L43, L44, N50, L45, P24, N38, N5,
       N66, N78, %SF4290, %SF4356);
330Mac(%SF17046, L10, %FF5280, L46, L47, L48, L49, N51, L50, P23, N39, N6,
       N67, N79, %SF5280, %SF5346);
330Mac(%SF17049, L13, %FF8514, L51, L52, L53, L54, N52, L55, P20, N40, N7,
       N68, N80, %SF8514, %SF8580);
330Mac(%SF17053, L14, %FF9636, L56, L57, L58, L59, N53, L60, P19, N41, N8,
       N69, N81, %SF9636, %SF9702);
330Mac(%SF17056, L17, %FF12738, L61, L62, L63, L64, N54, L65, P18, N42, N9,
       N70, N82, %SF12738, %SF12804);
330Mac(%SF17060, L18, %FF13992, L66, L67, L68, L69, N55, L70, P17, N43, N10,
       N71, N83, %SF13992, %SF14058);
330Mac(%SF17063, L19, %FF14850, L71, L72, L73, L74, N56, L75, P16, N44, N11,
       N72, N84, %SF14850, %SF14916);
330Mac(%SF17067, L20, %FF16236, L76, L77, L78, L79, N57, L80, P15, N45, N12,
       N73, N85, %SF16236, %SF16302);

HIDDENMac(L11, %SF6402, L81, L82, L83, L84, N58, N19);
HIDDENMac(L12, %SF7722, L85, L86, L87, L88, N59, N20);
HIDDENMac(L15, %SF10626, L89, L90, L91, L92, N60, N21);
HIDDENMac(L16, %SF11814, L93, L94, L95, L96, N61, N22);

SHAREDMUXMac(%SF17031, N34, N13, N35);
SHAREDMUXMac(%SF17038, N36, N14, N37);
SHAREDMUXMac(%SF17045, N38, N15, N39);
SHAREDMUXMac(%SF17052, N40, N16, N41);
SHAREDMUXMac(%SF17059, N42, N17, N43);
SHAREDMUXMac(%SF17066, N44, N18, N45);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:CY7C330
%PartNumber:CY7C330-50
%LastNode ? ?
%NumPins: 28
%FDF AND 0 N23 ~N23 N24 ~N24 N25 ~N25 N26 ~N26 N27 ~N27 N28 ~N28 N29 ~N29
           N30 ~N30 N31 ~N31 N32 ~N32 N33 ~N33 ~N1 N1 ~N13 N13 ~N2 N2 ~N3 N3
	   ~N14 N14 ~N4 N4 ~N5 N5 ~N15 N15 ~N6 N6 ~N19 N19 ~N20 N20 ~N7 N7
	   ~N16 N16 ~N8 N8 ~N21 N21 ~N22 N22 ~N9 N9 ~N17 N17 ~N10 N10 ~N11 N11
	   ~N18 N18 ~N12 N12 *

%MACRO LOR19(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056,%InFuse+1122,
     %InFuse+1188; LorOutput);
%MACEND;

%MACRO LOR17(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056; LorOutput);
%MACEND;

%MACRO LOR15(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924; LorOutput);
%MACEND;

%MACRO LOR13(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792; LorOutput);
%MACEND;

%MACRO LOR11(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660; LorOutput);
%MACEND;

%MACRO LOR9(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528; LorOutput);
%MACEND;

%MACRO INPUTMac(S4:%SF, InPin:%TEXT, TNode:%TEXT);

 %IF %SF17070 = 0 %THEN
   DQFF(InPin, P2; TNode; 1,1,5,5,8,8,1,1,5,5,8,8);
 %ELSE
   %IF %S4 = 0 %THEN
     DQFF(InPin, P2; TNode; 1,1,5,5,8,8,1,1,5,5,8,8);
   %ELSE
     DQFF(InPin, P3; TNode; 1,1,5,5,8,8,1,1,5,5,8,8);
   %END;
  %END;

%MACEND;

%MACRO INPUTREGMac(S2:%SF, InPin:%TEXT, OutInReg:%TEXT);

 %IF %S2 = 0 %THEN
    DQFFC(InPin, P2, IPL; OutInReg; 10,10,5,5,8,8,1,1,1,1,10,10,5,5,8,8,1,1,1,1);
 %ELSE
    DQFFC(InPin, P3, IPL; OutInReg; 10,10,5,5,8,8,1,1,1,1,10,10,5,5,8,8,1,1,1,1);
 %END;

%MACEND;

%MACRO HIDDENMac(LorOutput:%TEXT, XorFuse:%SF, XorOutput:%TEXT,
                 TLNode1:%TEXT, TLNode2:%TEXT, TLNode:%TEXT,
		 HiddenRegOutput:%TEXT, FeedBack:%TEXT);
 %IF %XorFuse..%XorFuse+65 = 1 %THEN
   LNOR(LorOutput; XorOutput);
 %ELSE
   LOR(LorOutput; XorOutput);
 %END;
 LAND(XorOutput, L2; TLNode1);
 LAND(XorOutput, L1; TLNode2);
 LOR(TLNode1, TLNode2, L3; TLNode);
 DQFFC(TLNode, P1, IPL; HiddenRegOutput;1,1,5,5,8,8,1,1,1,1,1,1,5,5,8,8,1,1,1,1);
 INV(HiddenRegOutput; FeedBack; 0,0,0,0);

%MACEND;

%MACRO 330Mac(S0:%SF, LorOutput:%TEXT, InFuse:%FF, XorOutput:%TEXT,
              TLNode1:%TEXT, TLNode2:%TEXT, RegInput:%TEXT,
	      RegOutput:%TEXT, TLNode:%TEXT, Outpin:%TEXT, OutInReg:%TEXT,
	      FeedBack:%TEXT, Output:%TEXT, Enable:%TEXT, EnableFuse:%SF,
	      XorFuse:%SF);

 %IF %XorFuse..%XorFuse+65 = 1 %THEN
    LINV(LorOutput; XorOutput);
    LAND(XorOutput, L2; TLNode1);
    LAND(XorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %ELSE
    LAND(LorOutput, L2; TLNode1);
    LAND(LorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %END;
    DQFFC(RegInput, P1, IPL; RegOutput; 10,10,15,15,8,8,1,1,1,1,10,10,15,15,8,8,1,1,1,1);

 %IF %S0+1 = 0 %THEN
    INV(RegOutput; FeedBack; 10,10,10,10);
 %ELSE
    BUF(OutInReg; FeedBack; 10,10,10,10);
 %END;

 %IF %S0 = 0 %THEN
    %IF %EnableFuse..%EnableFuse+65 = 1 %THEN
     INV(RegOutput; Outpin; 5,5,5,5);
    %ELSE
     BUF(RegOutput; Output; 5,5,5,5);
     AND(%InFuse; Enable; 10,10,10,10);
     ITSB(Output, Enable; Outpin; 20,20,20,20,20,20,20,20);
    %END;
 %ELSE
    BUF(RegOutput; Output; 5,5,5,5);
    ITSB(Output, L4; Outpin; 20,20,20,20,20,20,20,20);
 %END;

%MACEND;

%MACRO SHAREDMUXMac(S3:%SF, OutInReg:%TEXT, SharedInput:%TEXT, NextOutInReg:%TEXT);

 %IF %S3 = 0 %THEN
    BUF(OutInReg; SharedInput; 10,10,10,10);
 %ELSE
    BUF(NextOutInReg; SharedInput; 10,10,10,10);
 %END;

%MACEND;

LNAND(%FF00; L1);
LAND(%FF16962; L2);
LAND(L1,L2;L3);
LINV(P14;L4);

LOR9(%FF198, L5);
LOR19(%FF924, L6);
LOR11(%FF2310, L7);
LOR17(%FF3168, L8);
LOR13(%FF4422, L9);
LOR15(%FF5412, L10);
LOR19(%FF6468, L11);
LOR11(%FF7788, L12);
LOR15(%FF8646, L13);
LOR13(%FF9768, L14);
LOR17(%FF10692, L15);
LOR13(%FF11880, L16);
LOR17(%FF12870, L17);
LOR11(%FF14124, L18);
LOR19(%FF14982, L19);
LOR9(%FF16368, L20);

INPUTMac(%SF17071, P3, N23);
INPUTMac(%SF17072, P4, N24);
INPUTMac(%SF17073, P5, N25);
INPUTMac(%SF17074, P6, N26);
INPUTMac(%SF17075, P7, N27);
INPUTMac(%SF17076, P9, N28);
INPUTMac(%SF17077, P10, N29);
INPUTMac(%SF17078, P11, N30);
INPUTMac(%SF17079, P12, N31);
INPUTMac(%SF17080, P13, N32);
INPUTMac(%SF17081, P14, N33);

INPUTREGMac(%SF17030, P28, N34);
INPUTREGMac(%SF17034, P27, N35);
INPUTREGMac(%SF17037, P26, N36);
INPUTREGMac(%SF17041, P25, N37);
INPUTREGMac(%SF17044, P24, N38);
INPUTREGMac(%SF17048, P23, N39);
INPUTREGMac(%SF17051, P20, N40);
INPUTREGMac(%SF17055, P19, N41);
INPUTREGMac(%SF17058, P18, N42);
INPUTREGMac(%SF17062, P17, N43);
INPUTREGMac(%SF17065, P16, N44);
INPUTREGMac(%SF17069, P15, N45);

330Mac(%SF17028, L5, %FF66, L21, L22, L23, L24, N46, L25, P28, N34, N1,
       N62, N74, %SF66, %SF132);
330Mac(%SF17032, L6, %FF792, L26, L27, L28, L29, N47, L30, P27, N35, N2,
       N63, N75, %SF792, %SF858);
330Mac(%SF17035, L7, %FF2178, L31, L32, L33, L34, N48, L35, P26, N36, N3,
       N64, N76, %SF2178, %SF2244);
330Mac(%SF17039, L8, %FF3036, L36, L37, L38, L39, N49, L40, P25, N37, N4,
       N65, N77, %SF3036, %SF3102);
330Mac(%SF17042, L9, %FF4290, L41, L42, L43, L44, N50, L45, P24, N38, N5,
       N66, N78, %SF4290, %SF4356);
330Mac(%SF17046, L10, %FF5280, L46, L47, L48, L49, N51, L50, P23, N39, N6,
       N67, N79, %SF5280, %SF5346);
330Mac(%SF17049, L13, %FF8514, L51, L52, L53, L54, N52, L55, P20, N40, N7,
       N68, N80, %SF8514, %SF8580);
330Mac(%SF17053, L14, %FF9636, L56, L57, L58, L59, N53, L60, P19, N41, N8,
       N69, N81, %SF9636, %SF9702);
330Mac(%SF17056, L17, %FF12738, L61, L62, L63, L64, N54, L65, P18, N42, N9,
       N70, N82, %SF12738, %SF12804);
330Mac(%SF17060, L18, %FF13992, L66, L67, L68, L69, N55, L70, P17, N43, N10,
       N71, N83, %SF13992, %SF14058);
330Mac(%SF17063, L19, %FF14850, L71, L72, L73, L74, N56, L75, P16, N44, N11,
       N72, N84, %SF14850, %SF14916);
330Mac(%SF17067, L20, %FF16236, L76, L77, L78, L79, N57, L80, P15, N45, N12,
       N73, N85, %SF16236, %SF16302);

HIDDENMac(L11, %SF6402, L81, L82, L83, L84, N58, N19);
HIDDENMac(L12, %SF7722, L85, L86, L87, L88, N59, N20);
HIDDENMac(L15, %SF10626, L89, L90, L91, L92, N60, N21);
HIDDENMac(L16, %SF11814, L93, L94, L95, L96, N61, N22);

SHAREDMUXMac(%SF17031, N34, N13, N35);
SHAREDMUXMac(%SF17038, N36, N14, N37);
SHAREDMUXMac(%SF17045, N38, N15, N39);
SHAREDMUXMac(%SF17052, N40, N16, N41);
SHAREDMUXMac(%SF17059, N42, N17, N43);
SHAREDMUXMac(%SF17066, N44, N18, N45);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:CY7C330
%PartNumber:CY7C330-66
%LastNode ? ?
%NumPins: 28
%FDF AND 0 N23 ~N23 N24 ~N24 N25 ~N25 N26 ~N26 N27 ~N27 N28 ~N28 N29 ~N29
           N30 ~N30 N31 ~N31 N32 ~N32 N33 ~N33 ~N1 N1 ~N13 N13 ~N2 N2 ~N3 N3
	   ~N14 N14 ~N4 N4 ~N5 N5 ~N15 N15 ~N6 N6 ~N19 N19 ~N20 N20 ~N7 N7
	   ~N16 N16 ~N8 N8 ~N21 N21 ~N22 N22 ~N9 N9 ~N17 N17 ~N10 N10 ~N11 N11
	   ~N18 N18 ~N12 N12 *

%MACRO LOR19(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056,%InFuse+1122,
     %InFuse+1188; LorOutput);
%MACEND;

%MACRO LOR17(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924,%InFuse+990,%InFuse+1056; LorOutput);
%MACEND;

%MACRO LOR15(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792,%InFuse+858,%InFuse+924; LorOutput);
%MACEND;

%MACRO LOR13(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660,%InFuse+726,
     %InFuse+792; LorOutput);
%MACEND;

%MACRO LOR11(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528,%InFuse+594,%InFuse+660; LorOutput);
%MACEND;

%MACRO LOR9(InFuse:%FF, LorOutput:%TEXT);
 LOR(%InFuse,%InFuse+66,%InFuse+132,%InFuse+198,%InFuse+264,%InFuse+330,
     %InFuse+396,%InFuse+462,%InFuse+528; LorOutput);
%MACEND;

%MACRO INPUTMac(S4:%SF, InPin:%TEXT, TNode:%TEXT);

 %IF %SF17070 = 0 %THEN
   DQFF(InPin, P2; TNode; 1,1,3,5,6,6,1,1,3,5,6,6);
 %ELSE
   %IF %S4 = 0 %THEN
     DQFF(InPin, P2; TNode; 1,1,3,5,6,6,1,1,3,5,6,6);
   %ELSE
     DQFF(InPin, P3; TNode; 1,1,3,5,6,6,1,1,3,5,6,6);
   %END;
  %END;

%MACEND;

%MACRO INPUTREGMac(S2:%SF, InPin:%TEXT, OutInReg:%TEXT);

 %IF %S2 = 0 %THEN
    DQFFC(InPin, P2, IPL; OutInReg; 5,5,3,5,6,6,1,1,1,1,5,5,3,5,1,1,1,1,6,6);
 %ELSE
    DQFFC(InPin, P3, IPL; OutInReg; 5,5,3,5,6,6,1,1,1,1,5,5,3,5,1,1,1,1,6,6);
 %END;

%MACEND;

%MACRO HIDDENMac(LorOutput:%TEXT, XorFuse:%SF, XorOutput:%TEXT,
                 TLNode1:%TEXT, TLNode2:%TEXT, TLNode:%TEXT,
		 HiddenRegOutput:%TEXT, FeedBack:%TEXT);
 %IF %XorFuse..%XorFuse+65 = 1 %THEN
   LNOR(LorOutput; XorOutput);
 %ELSE
   LOR(LorOutput; XorOutput);
 %END;
 LAND(XorOutput, L2; TLNode1);
 LAND(XorOutput, L1; TLNode2);
 LOR(TLNode1, TLNode2, L3; TLNode);
 DQFFC(TLNode, P1, IPL; HiddenRegOutput;1,1,3,5,6,6,1,1,1,1,1,1,3,5,6,6,1,1,1,1);
 INV(HiddenRegOutput; FeedBack; 0,0,0,0);

%MACEND;

%MACRO 330Mac(S0:%SF, LorOutput:%TEXT, InFuse:%FF, XorOutput:%TEXT,
              TLNode1:%TEXT, TLNode2:%TEXT, RegInput:%TEXT,
	      RegOutput:%TEXT, TLNode:%TEXT, Outpin:%TEXT, OutInReg:%TEXT,
	      FeedBack:%TEXT, Output:%TEXT, Enable:%TEXT, EnableFuse:%SF,
	      XorFuse:%SF);

 %IF %XorFuse..%XorFuse+65 = 1 %THEN
    LINV(LorOutput; XorOutput);
    LAND(XorOutput, L2; TLNode1);
    LAND(XorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %ELSE
    LAND(LorOutput, L2; TLNode1);
    LAND(LorOutput, L1; TLNode2);
    LOR(TLNode1, TLNode2, L3; RegInput);
 %END;
    DQFFC(RegInput, P1, IPL; RegOutput; 2,2,10,5,6,6,1,1,1,1,2,2,10,5,6,6,1,1,1,1);

 %IF %S0+1 = 0 %THEN
    INV(RegOutput; FeedBack; 10,10,10,10);
 %ELSE
    BUF(OutInReg; FeedBack; 10,10,10,10);
 %END;

 %IF %S0 = 0 %THEN
    %IF %EnableFuse..%EnableFuse+65 = 1 %THEN
     INV(RegOutput; Outpin; 10,10,10,10);
    %ELSE
     BUF(RegOutput; Output; 10,10,10,10);
     AND(%InFuse; Enable; 20,20,20,20);
     ITSB(Output, Enable; Outpin; 30,30,30,30,30,30,30,30);
    %END;
 %ELSE
    BUF(RegOutput; Output; 10,10,10,10);
    ITSB(Output, L4; Outpin; 30,30,30,30,30,30,30,30);
 %END;

%MACEND;

%MACRO SHAREDMUXMac(S3:%SF, OutInReg:%TEXT, SharedInput:%TEXT, NextOutInReg:%TEXT);

 %IF %S3 = 0 %THEN
    BUF(OutInReg; SharedInput; 10,10,10,10);
 %ELSE
    BUF(NextOutInReg; SharedInput; 10,10,10,10);
 %END;

%MACEND;


LNAND(%FF00; L1);
LAND(%FF16962; L2);
LAND(L1,L2;L3);
LINV(P14;L4);

LOR9(%FF198, L5);
LOR19(%FF924, L6);
LOR11(%FF2310, L7);
LOR17(%FF3168, L8);
LOR13(%FF4422, L9);
LOR15(%FF5412, L10);
LOR19(%FF6468, L11);
LOR11(%FF7788, L12);
LOR15(%FF8646, L13);
LOR13(%FF9768, L14);
LOR17(%FF10692, L15);
LOR13(%FF11880, L16);
LOR17(%FF12870, L17);
LOR11(%FF14124, L18);
LOR19(%FF14982, L19);
LOR9(%FF16368, L20);

INPUTMac(%SF17071, P3, N23);
INPUTMac(%SF17072, P4, N24);
INPUTMac(%SF17073, P5, N25);
INPUTMac(%SF17074, P6, N26);
INPUTMac(%SF17075, P7, N27);
INPUTMac(%SF17076, P9, N28);
INPUTMac(%SF17077, P10, N29);
INPUTMac(%SF17078, P11, N30);
INPUTMac(%SF17079, P12, N31);
INPUTMac(%SF17080, P13, N32);
INPUTMac(%SF17081, P14, N33);

INPUTREGMac(%SF17030, P28, N34);
INPUTREGMac(%SF17034, P27, N35);
INPUTREGMac(%SF17037, P26, N36);
INPUTREGMac(%SF17041, P25, N37);
INPUTREGMac(%SF17044, P24, N38);
INPUTREGMac(%SF17048, P23, N39);
INPUTREGMac(%SF17051, P20, N40);
INPUTREGMac(%SF17055, P19, N41);
INPUTREGMac(%SF17058, P18, N42);
INPUTREGMac(%SF17062, P17, N43);
INPUTREGMac(%SF17065, P16, N44);
INPUTREGMac(%SF17069, P15, N45);

330Mac(%SF17028, L5, %FF66, L21, L22, L23, L24, N46, L25, P28, N34, N1,
       N62, N74, %SF66, %SF132);
330Mac(%SF17032, L6, %FF792, L26, L27, L28, L29, N47, L30, P27, N35, N2,
       N63, N75, %SF792, %SF858);
330Mac(%SF17035, L7, %FF2178, L31, L32, L33, L34, N48, L35, P26, N36, N3,
       N64, N76, %SF2178, %SF2244);
330Mac(%SF17039, L8, %FF3036, L36, L37, L38, L39, N49, L40, P25, N37, N4,
       N65, N77, %SF3036, %SF3102);
330Mac(%SF17042, L9, %FF4290, L41, L42, L43, L44, N50, L45, P24, N38, N5,
       N66, N78, %SF4290, %SF4356);
330Mac(%SF17046, L10, %FF5280, L46, L47, L48, L49, N51, L50, P23, N39, N6,
       N67, N79, %SF5280, %SF5346);
330Mac(%SF17049, L13, %FF8514, L51, L52, L53, L54, N52, L55, P20, N40, N7,
       N68, N80, %SF8514, %SF8580);
330Mac(%SF17053, L14, %FF9636, L56, L57, L58, L59, N53, L60, P19, N41, N8,
       N69, N81, %SF9636, %SF9702);
330Mac(%SF17056, L17, %FF12738, L61, L62, L63, L64, N54, L65, P18, N42, N9,
       N70, N82, %SF12738, %SF12804);
330Mac(%SF17060, L18, %FF13992, L66, L67, L68, L69, N55, L70, P17, N43, N10,
       N71, N83, %SF13992, %SF14058);
330Mac(%SF17063, L19, %FF14850, L71, L72, L73, L74, N56, L75, P16, N44, N11,
       N72, N84, %SF14850, %SF14916);
330Mac(%SF17067, L20, %FF16236, L76, L77, L78, L79, N57, L80, P15, N45, N12,
       N73, N85, %SF16236, %SF16302);

HIDDENMac(L11, %SF6402, L81, L82, L83, L84, N58, N19);
HIDDENMac(L12, %SF7722, L85, L86, L87, L88, N59, N20);
HIDDENMac(L15, %SF10626, L89, L90, L91, L92, N60, N21);
HIDDENMac(L16, %SF11814, L93, L94, L95, L96, N61, N22);

SHAREDMUXMac(%SF17031, N34, N13, N35);
SHAREDMUXMac(%SF17038, N36, N14, N37);
SHAREDMUXMac(%SF17045, N38, N15, N39);
SHAREDMUXMac(%SF17052, N40, N16, N41);
SHAREDMUXMac(%SF17059, N42, N17, N43);
SHAREDMUXMac(%SF17066, N44, N18, N45);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:CY7C331
%PartNumber:CY7C331-20
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P2 ~P2 N1 ~N1 N13 ~N13 N2 ~N2 P3 ~P3 P4 ~P4 N3 ~N3 N14 ~N14
     N4 ~N4 P5 ~P5 P6 ~P6 N5 ~N5 N15 ~N15 N6 ~N6 P7 ~P7 P9 ~P9 N7 ~N7 N16 ~N16
     N8 ~N8 P10 ~P10 P11 ~P11 N9 ~N9 N17 ~N17 N10 ~N10 P12 ~P12 P13 ~P13
     N11 ~N11 N18 ~N18 N12 ~N12 P14 ~P14 *


%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558,%InFuse+620,%InFuse+682;
     OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434; OutLNode);
%MACEND;

%MACRO LOR6(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310;
     OutLNode);
%MACEND;

%MACRO LOR4(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186; OutLNode);
%MACEND;

%MACRO OUTPUTREGMac(XorFuse:%SF, OutLNode:%TEXT, InFuse:%FF, RegInput:%TEXT,
       SETNode:%TEXT, CLRNode:%TEXT, OutRegClock:%TEXT, OutRegOutput:%TEXT,
       SRNode:%TEXT, InvSRNode:%TEXT, DOutput:%TEXT, QOutput:%TEXT,
       Output:%TEXT, TNode:%TEXT, SETFuse:%SF, RESETFuse:%SF);

%IF %XorFuse..%XorFuse+61 = 1 %THEN
  LNAND(OutLNode; RegInput);
%ELSE
  LAND(OutLNode; RegInput);
%END;

   LNOR(%InFuse+62; SETNode);
   LNOR(%InFuse+186, IPH; CLRNode);
   AND(%InFuse+124; OutRegClock; 0,0,0,0);

   DQFFPC(RegInput, OutRegClock, SETNode, CLRNode; OutRegOutput; 1,1,12,8,12,12,1,1,20,20,1,1,12,8,12,12,1,1,20,20);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  INV(RegInput; TNode; 20,20,20,20);
 %ELSE
  LAND(%InFuse+62, %InFuse+186; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, RegInput; DOutput);
  LAND(InvSRNode,OutRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  INV(Output; TNode; 20,20,20,20);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 20,20,20,20);
  %ELSE
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 20,20,20,20);
  %END;
 %END;
%MACEND;

%MACRO INPUTREGMac(InFuse:%FF, InRegSet:%TEXT, InRegClear:%TEXT, InRegClock:%TEXT,
       OutPin:%TEXT, InRegOutput:%TEXT, SRNode:%TEXT, InvSRNode:%TEXT,
       DOutput:%TEXT, QOutput:%TEXT, InputOutput:%TEXT, SETFuse:%SF,
       RESETFuse:%SF, Output:%TEXT);

   LNOR(%InFuse+310; InRegSet);
   LNOR(%InFuse+372, IPH; InRegClear);
   AND(%InFuse+248; InRegClock; 0,0,0,0);

   DQFFPC(OutPin, InRegClock, InRegSet, InRegClear; InRegOutput; 15,15,2,11,12,12,15,15,40,40,15,15,2,11,12,12,15,15,40,40);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  BUF(OutPin; InputOutput; 0,0,0,0);
 %ELSE
  LAND(%InFuse+310, %InFuse+372; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, OutPut; DOutput);
  LAND(InvSRNode,InRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  BUF(Output; InputOutput; 0,0,0,0);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %ELSE
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %END;
 %END;
 %MACEND;

%MACRO 331Mac(S0:%SF, TNode:%TEXT, OutPin:%TEXT, FeedBack:%TEXT,
              InputOutput:%TEXT, InFuse:%FF, Enable:%TEXT, EnableFuse:%SF);

 %IF %S0+1 = 0 %THEN
    BUF(TNode; FeedBack; 0,0,0,0);
 %ELSE
    BUF(InputOutput; FeedBack; 0,0,0,0);
 %END;

 %IF %S0 = 0 %THEN
  %IF %EnableFuse..%EnableFuse+61 = 1 %THEN
    BUF(TNode; OutPin; 0,0,0,0);
  %ELSE
    AND(%InFuse; Enable; 20,20,20,20);
    TSB(TNode, Enable; OutPin; 17,17,17,17,17,17,17,17);
  %END;
 %ELSE
    TSB(TNode, L1; OutPin; 17,17,17,17,17,17,17,17);
 %END;

%MACEND;


%MACRO SHAREDMUXMac(S2:%SF, InputOutput:%TEXT, NextRegOutput:%TEXT,
                    SharedInput:%TEXT);

 %IF %S2 = 0 %THEN
    BUF(InputOutput; SharedInput; 0,0,0,0);
 %ELSE
    BUF(NextRegOutput; SharedInput; 0,0,0,0);
 %END;

%MACEND;

SET(LARGEMODEL);

LINV(P14;L1);

LOR4(%FF496, L2);
LOR12(%FF1240, L3);
LOR6(%FF2480, L4);
LOR10(%FF3348, L5);
LOR8(%FF4464, L6);
LOR8(%FF5456, L7);
LOR8(%FF6448, L8);
LOR8(%FF7440, L9);
LOR10(%FF8432, L10);
LOR6(%FF9548, L11);
LOR12(%FF10416, L12);
LOR4(%FF11656, L13);

OUTPUTREGMac(%SF434, L2, %FF00, L14, L26, L38, N19, N31, L50, L62, L74,
             L86, L98, N67, %SF62, %SF186);
OUTPUTREGMac(%SF1178, L3, %FF744, L15, L27, L39, N20, N32, L51, L63, L75,
             L87, L99, N68, %SF806, %SF930);
OUTPUTREGMac(%SF2418, L4, %FF1984, L16, L28, L40, N21, N33, L52, L64, L76,
             L88, L100, N69, %SF2046, %SF2170);
OUTPUTREGMac(%SF3286, L5, %FF2852, L17, L29, L41, N22, N34, L53, L65, L77,
             L89, L101, N70, %SF2914, %SF3038);
OUTPUTREGMac(%SF4402, L6, %FF3968, L18, L30, L42, N23, N35, L54, L66, L78,
             L90, L102, N71, %SF4030, %SF4154);
OUTPUTREGMac(%SF5394, L7, %FF4960, L19, L31, L43, N24, N36, L55, L67, L79,
             L91, L103, N72, %SF5022, %SF5146);
OUTPUTREGMac(%SF6386, L8, %FF5952, L20, L32, L44, N25, N37, L56, L68, L80,
             L92, L104, N73, %SF6014, %SF6138);
OUTPUTREGMac(%SF7378, L9, %FF6944, L21, L33, L45, N26, N38, L57, L69, L81,
             L93, L105, N74, %SF7006, %SF7130);
OUTPUTREGMac(%SF8370, L10, %FF7936, L22, L34, L46, N27, N39, L58, L70, L82,
             L94, L106, N75, %SF7998, %SF8122);
OUTPUTREGMac(%SF9486, L11, %FF9052, L23, L35, L47, N28, N40, L59, L71, L83,
             L95, L107, N76, %SF9114, %SF9238);
OUTPUTREGMac(%SF10354, L12, %FF9920, L24, L36, L48, N29, N41, L60, L72, L84,
             L96, L108, N77, %SF9982, %SF10106);
OUTPUTREGMac(%SF11594, L13, %FF11160, L25, L37, L49, N30, N42, L61, L73, L85,
             L97, L109, N78, %SF11222, %SF11346);

INPUTREGMac(%FF00, L110, L122, N43, P28, N79, L134, L146, L158, L170, N55,
            %SF310, %SF372, L182);
INPUTREGMac(%FF744, L111, L123, N44, P27, N80, L135, L147, L159, L171, N56
            %SF1054, %SF1116, L183);
INPUTREGMac(%FF1984, L112, L124, N45, P26, N81, L136, L148, L160, L172, N57
            %SF2294, %SF2356, L184);
INPUTREGMac(%FF2852, L113, L125, N46, P25, N82, L137, L149, L161, L173, N58
            %SF3162, %SF3224, L185);
INPUTREGMac(%FF3968, L114, L126, N47, P24, N83, L138, L150, L162, L174, N59
            %SF4278, %SF4340, L186);
INPUTREGMac(%FF4960, L115, L127, N48, P23, N84, L139, L151, L163, L175, N60
            %SF5270, %SF5330, L187);
INPUTREGMac(%FF5952, L116, L128, N49, P20, N85, L140, L152, L164, L176, N61
            %SF6262, %SF6324, L188);
INPUTREGMac(%FF6944, L117, L129, N50, P19, N86, L141, L153, L165, L177, N62
            %SF7254, %SF7316, L189);
INPUTREGMac(%FF7936, L118, L130, N51, P18, N87, L142, L154, L166, L178, N63
            %SF8246, %SF8308, L190);
INPUTREGMac(%FF9052, L119, L131, N52, P17, N88, L143, L155, L167, L179, N64
            %SF9362, %SF9424, L191);
INPUTREGMac(%FF9920, L120, L132, N53, P16, N89, L144, L156, L168, L180, N65
            %SF10230, %SF10292, L192);
INPUTREGMac(%FF11160, L121, L133, N54, P15, N90, L145, L157, L169, L181, N66
            %SF11470, %SF11532, L193);

331Mac(%SF11904, N67, P28, N1, N55, %FF00, N91, %SF00);
331Mac(%SF11907, N68, P27, N2, N56, %FF744, N92, %SF744);
331Mac(%SF11909, N69, P26, N3, N57, %FF1984, N93, %SF1984);
331Mac(%SF11912, N70, P25, N4, N58, %FF2852, N94, %SF2852);
331Mac(%SF11914, N71, P24, N5, N59, %FF3968, N95, %SF3968);
331Mac(%SF11917, N72, P23, N6, N60, %FF4960, N96, %SF4960);
331Mac(%SF11919, N73, P20, N7, N61, %FF5952, N97, %SF5952);
331Mac(%SF11922, N74, P19, N8, N62, %FF6944, N98, %SF6944);
331Mac(%SF11924, N75, P18, N9, N63, %FF7936, N99, %SF7936);
331Mac(%SF11927, N76, P17, N10, N64, %FF9052, N100, %SF9052);
331Mac(%SF11929, N77, P16, N11, N65, %FF9920, N101, %SF9920);
331Mac(%SF11932, N78, P15, N12, N66, %FF11222, N102, %SF11222);

SHAREDMUXMac(%SF11906, N55, N56, N13);
SHAREDMUXMac(%SF11911, N57, N58, N14);
SHAREDMUXMac(%SF11916, N59, N60, N15);
SHAREDMUXMac(%SF11921, N61, N62, N16);
SHAREDMUXMac(%SF11926, N63, N64, N17);
SHAREDMUXMac(%SF11931, N65, N66, N18);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:CY7C331
%PartNumber:CY7C331-25
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P2 ~P2 N1 ~N1 N13 ~N13 N2 ~N2 P3 ~P3 P4 ~P4 N3 ~N3 N14 ~N14
     N4 ~N4 P5 ~P5 P6 ~P6 N5 ~N5 N15 ~N15 N6 ~N6 P7 ~P7 P9 ~P9 N7 ~N7 N16 ~N16
     N8 ~N8 P10 ~P10 P11 ~P11 N9 ~N9 N17 ~N17 N10 ~N10 P12 ~P12 P13 ~P13
     N11 ~N11 N18 ~N18 N12 ~N12 P14 ~P14 *


%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558,%InFuse+620,%InFuse+682;
     OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434; OutLNode);
%MACEND;

%MACRO LOR6(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310;
     OutLNode);
%MACEND;

%MACRO LOR4(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186; OutLNode);
%MACEND;

%MACRO OUTPUTREGMac(XorFuse:%SF, OutLNode:%TEXT, InFuse:%FF, RegInput:%TEXT,
       SETNode:%TEXT, CLRNode:%TEXT, OutRegClock:%TEXT, OutRegOutput:%TEXT,
       SRNode:%TEXT, InvSRNode:%TEXT, DOutput:%TEXT, QOutput:%TEXT,
       Output:%TEXT, TNode:%TEXT, SETFuse:%SF, RESETFuse:%SF);

%IF %XorFuse..%XorFuse+61 = 1 %THEN
  LNAND(OutLNode; RegInput);
%ELSE
  LAND(OutLNode; RegInput);
%END;

   LNOR(%InFuse+62; SETNode);
   LNOR(%InFuse+186, IPH; CLRNode);
   AND(%InFuse+124; OutRegClock; 0,0,0,0);

   DQFFPC(RegInput, OutRegClock, SETNode, CLRNode; OutRegOutput; 1,1,12,8,15,15,1,1,25,25,1,1,12,8,15,15,1,1,25,25);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  INV(RegInput; TNode; 25,25,25,25);
 %ELSE
  LAND(%InFuse+62, %InFuse+186; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, RegInput; DOutput);
  LAND(InvSRNode,OutRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  INV(Output; TNode; 25,25,25,25);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 25,25,25,25);
  %ELSE
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 25,25,25,25);
  %END;
 %END;
%MACEND;

%MACRO INPUTREGMac(InFuse:%FF, InRegSet:%TEXT, InRegClear:%TEXT, InRegClock:%TEXT,
       OutPin:%TEXT, InRegOutput:%TEXT, SRNode:%TEXT, InvSRNode:%TEXT,
       DOutput:%TEXT, QOutput:%TEXT, InputOutput:%TEXT, SETFuse:%SF,
       RESETFuse:%SF, Output:%TEXT);

   LNOR(%InFuse+310; InRegSet);
   LNOR(%InFuse+372, IPH; InRegClear);
   AND(%InFuse+248; InRegClock; 0,0,0,0);

   DQFFPC(OutPin, InRegClock, InRegSet, InRegClear; InRegOutput; 15,15,2,13,15,15,15,15,40,40,15,15,2,13,15,15,15,15,40,40);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  BUF(OutPin; InputOutput; 0,0,0,0);
 %ELSE
  LAND(%InFuse+310, %InFuse+372; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, OutPut; DOutput);
  LAND(InvSRNode,InRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  BUF(Output; InputOutput; 0,0,0,0);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %ELSE
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %END;
 %END;
 %MACEND;

%MACRO 331Mac(S0:%SF, TNode:%TEXT, OutPin:%TEXT, FeedBack:%TEXT,
              InputOutput:%TEXT, InFuse:%FF, Enable:%TEXT, EnableFuse:%SF);

 %IF %S0+1 = 0 %THEN
    BUF(TNode; FeedBack; 0,0,0,0);
 %ELSE
    BUF(InputOutput; FeedBack; 0,0,0,0);
 %END;

 %IF %S0 = 0 %THEN
  %IF %EnableFuse..%EnableFuse+61 = 1 %THEN
    BUF(TNode; OutPin; 25,25,25,25);
  %ELSE
    AND(%InFuse; Enable; 25,25,25,25);
    TSB(TNode, Enable; OutPin; 20,20,20,20,20,20,20,20);
  %END;
 %ELSE
    TSB(TNode, L1; OutPin; 20,20,20,20,20,20,20,20);
 %END;

%MACEND;


%MACRO SHAREDMUXMac(S2:%SF, InputOutput:%TEXT, NextRegOutput:%TEXT,
                    SharedInput:%TEXT);

 %IF %S2 = 0 %THEN
    BUF(InputOutput; SharedInput; 0,0,0,0);
 %ELSE
    BUF(NextRegOutput; SharedInput; 0,0,0,0);
 %END;

%MACEND;

SET(LARGEMODEL);

LINV(P14;L1);

LOR4(%FF496, L2);
LOR12(%FF1240, L3);
LOR6(%FF2480, L4);
LOR10(%FF3348, L5);
LOR8(%FF4464, L6);
LOR8(%FF5456, L7);
LOR8(%FF6448, L8);
LOR8(%FF7440, L9);
LOR10(%FF8432, L10);
LOR6(%FF9548, L11);
LOR12(%FF10416, L12);
LOR4(%FF11656, L13);

OUTPUTREGMac(%SF434, L2, %FF00, L14, L26, L38, N19, N31, L50, L62, L74,
             L86, L98, N67, %SF62, %SF186);
OUTPUTREGMac(%SF1178, L3, %FF744, L15, L27, L39, N20, N32, L51, L63, L75,
             L87, L99, N68, %SF806, %SF930);
OUTPUTREGMac(%SF2418, L4, %FF1984, L16, L28, L40, N21, N33, L52, L64, L76,
             L88, L100, N69, %SF2046, %SF2170);
OUTPUTREGMac(%SF3286, L5, %FF2852, L17, L29, L41, N22, N34, L53, L65, L77,
             L89, L101, N70, %SF2914, %SF3038);
OUTPUTREGMac(%SF4402, L6, %FF3968, L18, L30, L42, N23, N35, L54, L66, L78,
             L90, L102, N71, %SF4030, %SF4154);
OUTPUTREGMac(%SF5394, L7, %FF4960, L19, L31, L43, N24, N36, L55, L67, L79,
             L91, L103, N72, %SF5022, %SF5146);
OUTPUTREGMac(%SF6386, L8, %FF5952, L20, L32, L44, N25, N37, L56, L68, L80,
             L92, L104, N73, %SF6014, %SF6138);
OUTPUTREGMac(%SF7378, L9, %FF6944, L21, L33, L45, N26, N38, L57, L69, L81,
             L93, L105, N74, %SF7006, %SF7130);
OUTPUTREGMac(%SF8370, L10, %FF7936, L22, L34, L46, N27, N39, L58, L70, L82,
             L94, L106, N75, %SF7998, %SF8122);
OUTPUTREGMac(%SF9486, L11, %FF9052, L23, L35, L47, N28, N40, L59, L71, L83,
             L95, L107, N76, %SF9114, %SF9238);
OUTPUTREGMac(%SF10354, L12, %FF9920, L24, L36, L48, N29, N41, L60, L72, L84,
             L96, L108, N77, %SF9982, %SF10106);
OUTPUTREGMac(%SF11594, L13, %FF11160, L25, L37, L49, N30, N42, L61, L73, L85,
             L97, L109, N78, %SF11222, %SF11346);

INPUTREGMac(%FF00, L110, L122, N43, P28, N79, L134, L146, L158, L170, N55,
            %SF310, %SF372, L182);
INPUTREGMac(%FF744, L111, L123, N44, P27, N80, L135, L147, L159, L171, N56
            %SF1054, %SF1116, L183);
INPUTREGMac(%FF1984, L112, L124, N45, P26, N81, L136, L148, L160, L172, N57
            %SF2294, %SF2356, L184);
INPUTREGMac(%FF2852, L113, L125, N46, P25, N82, L137, L149, L161, L173, N58
            %SF3162, %SF3224, L185);
INPUTREGMac(%FF3968, L114, L126, N47, P24, N83, L138, L150, L162, L174, N59
            %SF4278, %SF4340, L186);
INPUTREGMac(%FF4960, L115, L127, N48, P23, N84, L139, L151, L163, L175, N60
            %SF5270, %SF5330, L187);
INPUTREGMac(%FF5952, L116, L128, N49, P20, N85, L140, L152, L164, L176, N61
            %SF6262, %SF6324, L188);
INPUTREGMac(%FF6944, L117, L129, N50, P19, N86, L141, L153, L165, L177, N62
            %SF7254, %SF7316, L189);
INPUTREGMac(%FF7936, L118, L130, N51, P18, N87, L142, L154, L166, L178, N63
            %SF8246, %SF8308, L190);
INPUTREGMac(%FF9052, L119, L131, N52, P17, N88, L143, L155, L167, L179, N64
            %SF9362, %SF9424, L191);
INPUTREGMac(%FF9920, L120, L132, N53, P16, N89, L144, L156, L168, L180, N65
            %SF10230, %SF10292, L192);
INPUTREGMac(%FF11160, L121, L133, N54, P15, N90, L145, L157, L169, L181, N66
            %SF11470, %SF11532, L193);

331Mac(%SF11904, N67, P28, N1, N55, %FF00, N91, %SF00);
331Mac(%SF11907, N68, P27, N2, N56, %FF744, N92, %SF744);
331Mac(%SF11909, N69, P26, N3, N57, %FF1984, N93, %SF1984);
331Mac(%SF11912, N70, P25, N4, N58, %FF2852, N94, %SF2852);
331Mac(%SF11914, N71, P24, N5, N59, %FF3968, N95, %SF3968);
331Mac(%SF11917, N72, P23, N6, N60, %FF4960, N96, %SF4960);
331Mac(%SF11919, N73, P20, N7, N61, %FF5952, N97, %SF5952);
331Mac(%SF11922, N74, P19, N8, N62, %FF6944, N98, %SF6944);
331Mac(%SF11924, N75, P18, N9, N63, %FF7936, N99, %SF7936);
331Mac(%SF11927, N76, P17, N10, N64, %FF9052, N100, %SF9052);
331Mac(%SF11929, N77, P16, N11, N65, %FF9920, N101, %SF9920);
331Mac(%SF11932, N78, P15, N12, N66, %FF11222, N102, %SF11222);

SHAREDMUXMac(%SF11906, N55, N56, N13);
SHAREDMUXMac(%SF11911, N57, N58, N14);
SHAREDMUXMac(%SF11916, N59, N60, N15);
SHAREDMUXMac(%SF11921, N61, N62, N16);
SHAREDMUXMac(%SF11926, N63, N64, N17);
SHAREDMUXMac(%SF11931, N65, N66, N18);

%EndModel


%StartModel
%Manufacturer:Cypress
%Type:CY7C331
%PartNumber:CY7C331-35
%LastNode ? ?
%NumPins: 28
%FDF AND 0 P1 ~P1 P2 ~P2 N1 ~N1 N13 ~N13 N2 ~N2 P3 ~P3 P4 ~P4 N3 ~N3 N14 ~N14
     N4 ~N4 P5 ~P5 P6 ~P6 N5 ~N5 N15 ~N15 N6 ~N6 P7 ~P7 P9 ~P9 N7 ~N7 N16 ~N16
     N8 ~N8 P10 ~P10 P11 ~P11 N9 ~N9 N17 ~N17 N10 ~N10 P12 ~P12 P13 ~P13
     N11 ~N11 N18 ~N18 N12 ~N12 P14 ~P14 *


%MACRO LOR12(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558,%InFuse+620,%InFuse+682;
     OutLNode);
%MACEND;

%MACRO LOR10(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434,%InFuse+496,%InFuse+558; OutLNode);
%MACEND;

%MACRO LOR8(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310,
     %InFuse+372,%InFuse+434; OutLNode);
%MACEND;

%MACRO LOR6(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186,%InFuse+248,%InFuse+310;
     OutLNode);
%MACEND;

%MACRO LOR4(InFuse:%FF, OutLNode:%TEXT);
 LOR(%InFuse,%InFuse+62,%InFuse+124,%InFuse+186; OutLNode);
%MACEND;

%MACRO OUTPUTREGMac(XorFuse:%SF, OutLNode:%TEXT, InFuse:%FF, RegInput:%TEXT,
       SETNode:%TEXT, CLRNode:%TEXT, OutRegClock:%TEXT, OutRegOutput:%TEXT,
       SRNode:%TEXT, InvSRNode:%TEXT, DOutput:%TEXT, QOutput:%TEXT,
       Output:%TEXT, TNode:%TEXT, SETFuse:%SF, RESETFuse:%SF);

%IF %XorFuse..%XorFuse+61 = 1 %THEN
  LNAND(OutLNode; RegInput);
%ELSE
  LAND(OutLNode; RegInput);
%END;

   LNOR(%InFuse+62; SETNode);
   LNOR(%InFuse+186, IPH; CLRNode);
   AND(%InFuse+124; OutRegClock; 0,0,0,0);

   DQFFPC(RegInput, OutRegClock, SETNode, CLRNode; OutRegOutput; 1,1,12,8,20,20,1,1,35,35,1,1,12,8,20,20,1,1,35,35);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  INV(RegInput; TNode; 35,35,35,35);
 %ELSE
  LAND(%InFuse+62, %InFuse+186; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, RegInput; DOutput);
  LAND(InvSRNode,OutRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  INV(Output; TNode; 35,35,35,35);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 35,35,35,35);
  %ELSE
    LAND(%InFuse+62, %InFuse+186; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, RegInput; DOutput);
    LAND(InvSRNode,OutRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    INV(Output; TNode; 35,35,35,35);
  %END;
 %END;
%MACEND;

%MACRO INPUTREGMac(InFuse:%FF, InRegSet:%TEXT, InRegClear:%TEXT, InRegClock:%TEXT,
       OutPin:%TEXT, InRegOutput:%TEXT, SRNode:%TEXT, InvSRNode:%TEXT,
       DOutput:%TEXT, QOutput:%TEXT, InputOutput:%TEXT, SETFuse:%SF,
       RESETFuse:%SF, Output:%TEXT);

   LNOR(%InFuse+310; InRegSet);
   LNOR(%InFuse+372, IPH; InRegClear);
   AND(%InFuse+248; InRegClock; 0,0,0,0);

   DQFFPC(OutPin, InRegClock, InRegSet, InRegClear; InRegOutput; 20,20,2,15,20,20,20,20,55,55,20,20,2,15,20,20,20,20,55,55);

%IF %SETFuse..%SETFuse+61 = 1 %THEN
 %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
  BUF(OutPin; InputOutput; 0,0,0,0);
 %ELSE
  LAND(%InFuse+310, %InFuse+372; SRNode);
  LINV(SRNode; InvSRNode);
  LAND(SRNode, OutPut; DOutput);
  LAND(InvSRNode,InRegOutPut; QOutput);
  LOR(QOutput, DOutput; Output);
  BUF(Output; InputOutput; 0,0,0,0);
 %END;
%ELSE
  %IF %RESETFuse..%RESETFuse+61 = 1 %THEN
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %ELSE
    LAND(%InFuse+310, %InFuse+372; SRNode);
    LINV(SRNode; InvSRNode);
    LAND(SRNode, OutPin; DOutput);
    LAND(InvSRNode,InRegOutPut; QOutput);
    LOR(QOutput, DOutput; Output);
    BUF(Output; InputOutput; 0,0,0,0);
  %END;
 %END;
 %MACEND;

%MACRO 331Mac(S0:%SF, TNode:%TEXT, OutPin:%TEXT, FeedBack:%TEXT,
              InputOutput:%TEXT, InFuse:%FF, Enable:%TEXT, EnableFuse:%SF);

 %IF %S0+1 = 0 %THEN
    BUF(TNode; FeedBack; 0,0,0,0);
 %ELSE
    BUF(InputOutput; FeedBack; 0,0,0,0);
 %END;

 %IF %S0 = 0 %THEN
  %IF %EnableFuse..%EnableFuse+61 = 1 %THEN
    BUF(TNode; OutPin; 0,0,0,0);
  %ELSE
    AND(%InFuse; Enable; 35,35,35,35);
    TSB(TNode, Enable; OutPin; 30,30,30,30,30,30,30,30);
  %END;
 %ELSE
    TSB(TNode, L1; OutPin; 30,30,30,30,30,30,30,30);
 %END;

%MACEND;


%MACRO SHAREDMUXMac(S2:%SF, InputOutput:%TEXT, NextRegOutput:%TEXT,
                    SharedInput:%TEXT);

 %IF %S2 = 0 %THEN
    BUF(InputOutput; SharedInput; 0,0,0,0);
 %ELSE
    BUF(NextRegOutput; SharedInput; 0,0,0,0);
 %END;

%MACEND;

SET(LARGEMODEL);

LINV(P14;L1);

LOR4(%FF496, L2);
LOR12(%FF1240, L3);
LOR6(%FF2480, L4);
LOR10(%FF3348, L5);
LOR8(%FF4464, L6);
LOR8(%FF5456, L7);
LOR8(%FF6448, L8);
LOR8(%FF7440, L9);
LOR10(%FF8432, L10);
LOR6(%FF9548, L11);
LOR12(%FF10416, L12);
LOR4(%FF11656, L13);

OUTPUTREGMac(%SF434, L2, %FF00, L14, L26, L38, N19, N31, L50, L62, L74,
             L86, L98, N67, %SF62, %SF186);
OUTPUTREGMac(%SF1178, L3, %FF744, L15, L27, L39, N20, N32, L51, L63, L75,
             L87, L99, N68, %SF806, %SF930);
OUTPUTREGMac(%SF2418, L4, %FF1984, L16, L28, L40, N21, N33, L52, L64, L76,
             L88, L100, N69, %SF2046, %SF2170);
OUTPUTREGMac(%SF3286, L5, %FF2852, L17, L29, L41, N22, N34, L53, L65, L77,
             L89, L101, N70, %SF2914, %SF3038);
OUTPUTREGMac(%SF4402, L6, %FF3968, L18, L30, L42, N23, N35, L54, L66, L78,
             L90, L102, N71, %SF4030, %SF4154);
OUTPUTREGMac(%SF5394, L7, %FF4960, L19, L31, L43, N24, N36, L55, L67, L79,
             L91, L103, N72, %SF5022, %SF5146);
OUTPUTREGMac(%SF6386, L8, %FF5952, L20, L32, L44, N25, N37, L56, L68, L80,
             L92, L104, N73, %SF6014, %SF6138);
OUTPUTREGMac(%SF7378, L9, %FF6944, L21, L33, L45, N26, N38, L57, L69, L81,
             L93, L105, N74, %SF7006, %SF7130);
OUTPUTREGMac(%SF8370, L10, %FF7936, L22, L34, L46, N27, N39, L58, L70, L82,
             L94, L106, N75, %SF7998, %SF8122);
OUTPUTREGMac(%SF9486, L11, %FF9052, L23, L35, L47, N28, N40, L59, L71, L83,
             L95, L107, N76, %SF9114, %SF9238);
OUTPUTREGMac(%SF10354, L12, %FF9920, L24, L36, L48, N29, N41, L60, L72, L84,
             L96, L108, N77, %SF9982, %SF10106);
OUTPUTREGMac(%SF11594, L13, %FF11160, L25, L37, L49, N30, N42, L61, L73, L85,
             L97, L109, N78, %SF11222, %SF11346);

INPUTREGMac(%FF00, L110, L122, N43, P28, N79, L134, L146, L158, L170, N55,
            %SF310, %SF372, L182);
INPUTREGMac(%FF744, L111, L123, N44, P27, N80, L135, L147, L159, L171, N56
            %SF1054, %SF1116, L183);
INPUTREGMac(%FF1984, L112, L124, N45, P26, N81, L136, L148, L160, L172, N57
            %SF2294, %SF2356, L184);
INPUTREGMac(%FF2852, L113, L125, N46, P25, N82, L137, L149, L161, L173, N58
            %SF3162, %SF3224, L185);
INPUTREGMac(%FF3968, L114, L126, N47, P24, N83, L138, L150, L162, L174, N59
            %SF4278, %SF4340, L186);
INPUTREGMac(%FF4960, L115, L127, N48, P23, N84, L139, L151, L163, L175, N60
            %SF5270, %SF5330, L187);
INPUTREGMac(%FF5952, L116, L128, N49, P20, N85, L140, L152, L164, L176, N61
            %SF6262, %SF6324, L188);
INPUTREGMac(%FF6944, L117, L129, N50, P19, N86, L141, L153, L165, L177, N62
            %SF7254, %SF7316, L189);
INPUTREGMac(%FF7936, L118, L130, N51, P18, N87, L142, L154, L166, L178, N63
            %SF8246, %SF8308, L190);
INPUTREGMac(%FF9052, L119, L131, N52, P17, N88, L143, L155, L167, L179, N64
            %SF9362, %SF9424, L191);
INPUTREGMac(%FF9920, L120, L132, N53, P16, N89, L144, L156, L168, L180, N65
            %SF10230, %SF10292, L192);
INPUTREGMac(%FF11160, L121, L133, N54, P15, N90, L145, L157, L169, L181, N66
            %SF11470, %SF11532, L193);

331Mac(%SF11904, N67, P28, N1, N55, %FF00, N91, %SF00);
331Mac(%SF11907, N68, P27, N2, N56, %FF744, N92, %SF744);
331Mac(%SF11909, N69, P26, N3, N57, %FF1984, N93, %SF1984);
331Mac(%SF11912, N70, P25, N4, N58, %FF2852, N94, %SF2852);
331Mac(%SF11914, N71, P24, N5, N59, %FF3968, N95, %SF3968);
331Mac(%SF11917, N72, P23, N6, N60, %FF4960, N96, %SF4960);
331Mac(%SF11919, N73, P20, N7, N61, %FF5952, N97, %SF5952);
331Mac(%SF11922, N74, P19, N8, N62, %FF6944, N98, %SF6944);
331Mac(%SF11924, N75, P18, N9, N63, %FF7936, N99, %SF7936);
331Mac(%SF11927, N76, P17, N10, N64, %FF9052, N100, %SF9052);
331Mac(%SF11929, N77, P16, N11, N65, %FF9920, N101, %SF9920);
331Mac(%SF11932, N78, P15, N12, N66, %FF11222, N102, %SF11222);

SHAREDMUXMac(%SF11906, N55, N56, N13);
SHAREDMUXMac(%SF11911, N57, N58, N14);
SHAREDMUXMac(%SF11916, N59, N60, N15);
SHAREDMUXMac(%SF11921, N61, N62, N16);
SHAREDMUXMac(%SF11926, N63, N64, N17);
SHAREDMUXMac(%SF11931, N65, N66, N18);

%EndModel
