module PRIOR15W 
title '15-Input Priority Encoder'
"PRIOR15W device 'P20L8'; 

" Input pins
P0, P1, P2, P3, P4, P5, P6, P7     pin 1, 2, 3, 4, 5, 6, 7, 8; 
P8, P9, P10, P11, P12, P13, P14    pin 9, 10, 11, 13, 14, 23, 16; 
!EN                                pin 17;

" Output pins
!Y3, !Y2, !Y1, !Y0                 pin 18, 19, 20, 21 istype 'com'; 
GS, !ENOUT                         pin 15, 22         istype 'com';

" Sets
Y = [Y3..Y0];

equations

WHEN !EN THEN Y = 0;
ELSE WHEN P14 THEN Y = 14;
  ELSE WHEN P13 THEN Y = 13;
    ELSE WHEN P12 THEN Y = 12;
      ELSE WHEN P11 THEN Y = 11;
        ELSE WHEN P10 THEN Y = 10;
          ELSE WHEN P9 THEN Y = 9;
            ELSE WHEN P8 THEN Y = 8;
              ELSE WHEN P7 THEN Y = 7;
                ELSE WHEN P6 THEN Y = 6;
                  ELSE WHEN P5 THEN Y = 5;
                    ELSE WHEN P4 THEN Y = 4;
                      ELSE WHEN P3 THEN Y = 3;
                        ELSE WHEN P2 THEN Y = 2;
                          ELSE WHEN P1 THEN Y = 1;
                            ELSE WHEN P0 THEN Y = 0;
                              ELSE {Y = 0; ENOUT = 1;};

GS = EN&(P14#P13#P12#P11#P10#P9#P8#P7#P6#P5#P4#P3#P2#P1#P0);

end PRIOR15W
