📄 latch.jam
字号:
' Copyright (C) 1988-2002 Altera Corporation
' Any megafunction design, and related net list (encrypted or decrypted),
' support information, device programming or simulation file, and any other
' associated documentation or information provided by Altera or a partner
' under Altera's Megafunction Partnership Program may be used only to
' program PLD devices (but not masked PLD devices) from Altera. Any other
' use of such megafunction design, net list, support information, device
' programming or simulation file, or any other related documentation or
' information is prohibited for any other purpose, including, but not
' limited to modification, reverse engineering, de-compiling, or use with
' any other silicon devices, unless such use is explicitly licensed under
' a separate agreement with Altera or a megafunction partner. Title to
' the intellectual property, including patents, copyrights, trademarks,
' trade secrets, or maskworks, embodied in any such megafunction design,
' net list, support information, device programming or simulation file, or
' any other related documentation or information provided by Altera or a
' megafunction partner, remains with Altera, the megafunction partner, or
' their respective licensors. No other licenses, including any licenses
' needed under any third party's intellectual property, are provided herein.
'Device #1: EPM7032S - d:\vhdl_ex\latch.pof Sat Nov 15 04:14:28 2003
NOTE "CREATOR" "Altera Jam/STAPL Composer Version 10.2 06/28/2002";
NOTE "DATE" "2003/11/15";
NOTE "DEVICE" "EPM7032S";
NOTE "FILE" "latch.pof";
NOTE "TARGET" "1";
NOTE "IDCODE" "070320DD";
NOTE "UES" "FFFF";
NOTE "CHECKSUM" "000726C9";
NOTE "SAVE_DATA" "DEVICE_DATA";
NOTE "SAVE_DATA_VARIABLES" "V0, A12, A13, A21, A22, A25, A43";
NOTE "STAPL_VERSION" "JESD71";
NOTE "JAM_VERSION" "2.0";
NOTE "ALG_VERSION" "14";
ACTION PROGRAM = L0, DO_BLANK_CHECK OPTIONAL, DO_VERIFY RECOMMENDED, DO_SECURE OPTIONAL,
DO_READ_UES OPTIONAL,
L15;
ACTION BLANKCHECK = L7, L15;
ACTION VERIFY = L8,
DO_READ_UES OPTIONAL,
L15;
ACTION ERASE = L12, L15;
ACTION READ_UES = L11, L15;
DATA DEVICE_DATA;
INTEGER V0 = 1;
INTEGER V1 = 0;
INTEGER A12[1] = 1;
INTEGER A59[1] = 0;
INTEGER A60[1] = 1;
INTEGER A61[1] = 117645533;
INTEGER A13[1] = 5;
INTEGER A25[1] = 10;
INTEGER A43[1] = 0;
BOOLEAN A21[20320] = @
id000u@@@@3q6aP86Zmm4CO163@@@Vwz@@xDsrcsXqzuz@@tXVm@@zRGM2@pz@po
@Zr_@Ly@ougjt@@d2GHF_3_@@zzUltpxzUV1eWA03Slt@deBX@@@ze09_0Ue7mZy
WGSlt@dH81ltx@c3Xgq9X@@@V_lt@L0Cm@_@NQmSy@@xd2WYe5Le@x@sV@tlx@_l
A094oeYa1dySa1zV@@j7nm@@@UyW4y_@@NGmWm3du@@VN@@@V505gLQW@@@_619K
18Xrbsu@_@FUGEF4C00;
BOOLEAN A22[15328] = @
yT000u@@@@3q6aP86Zmm4CO1_1@y@@_@@@z@@@6xd@idJZJEXJm@@zVYK2@_@@HX
76c@7iz@lu@nmqw@V_t@@@B00000@@@_@V00000a0GG40200000C00000_lBW1@@
@@_xb@ys@@71oG201_@NgK5LL42aW@@@V@@Vz_@@@z@@KfAlgALt0@@F@_d@@TLL
N52aW@@@Vz@@@n09ug@@70;
ENDDATA;
DATA TEMP_DATA;
INTEGER A0[32] =
95, 23, 23, 23, 96, 96, 96, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 15, 791, 791, 791, 791, 317, 293, 281, 273, 261, 253, 237, 791;
INTEGER A1[32] =
3144, 16, 16, 16,3144,1574, 716, 360, 183,1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 280, 240, 200, 160, 640, 480, 400, 320, 240, 160, 80,3144;
INTEGER A2[32] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 165, 165, 165, 0, 0, 0, 0, 0, 0, 0, 165;
INTEGER A3[32] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 96, 80, 64, 0, 0, 0, 0, 0, 0, 0, 112;
INTEGER A4[32] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 600, 552, 504, 0, 0, 0, 0, 0, 0, 0, 648;
INTEGER A5[32] =
3144, 18, 18, 18,3144,1574, 716, 360, 183,1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 56, 48, 40, 32, 128, 96, 80, 64, 48, 32, 16,3144;
INTEGER A6[32] =
32, 0, 0, 0, 32, 16, 8, 4, 2, 16, 8, 4, 2, 32, 24, 16, 8, 4, 2, 0, 0, 0, 0, 0, 16, 12, 10, 8, 6, 4, 2, 32;
INTEGER A7[32] =
0, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 0, 0, 0, 0, 0, 0, 0, 7;
INTEGER A8[32] =
512, 0, 0, 0, 512, 256, 128, 64, 32, 256, 128, 64, 32, 512, 384, 256, 128, 64, 32, 0, 560, 480, 400, 320, 256, 192, 160, 128, 96, 64, 32, 560;
INTEGER A9[21] =
12, 3, 131, 8, 3, 131, 0, 0, 0, 6, 3, 131, 0, 0, 0, 3, 1, 118, 1, 3, 126;
INTEGER A10[14] =
12, 3, 8, 3, 8, 3, 6, 3, 0, 0, 3, 1, 1, 1;
INTEGER A51[19] =
294, 0, 0, 0, 294, 148, 38, 20, 2, 148, 38, 20, 2, 294, 0, 148, 38, 20, 2;
INTEGER A49[14] =
12, 114, 8, 114, 8, 114, 6, 114, 0, 0, 3, 109, 1, 109;
INTEGER A11[5 * 3 * 31] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (39 << 16) + 0, 233, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (23 << 16) + 0, 237, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (7 << 16) + 6, 113, 137,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0,
0, 0, 0, 0, 0, 0,1025, 4, 0, 1, 1, 0,1025, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94,
0, 0, 0, 1, 0, 98, 2, 1, 96, 1, 0, 97, 0, 2, 96,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 0, 96,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
129, 10, 98, 1, 0, 98, 2, 1, 96, 1, 0, 97, 0, 0, 96,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 97, 1, 0, 97, 0, 2, 96, 0, 1, 96,
0, 0, 0, 0, 0, 0, 1, 31, 97, 4, 31, 98, 1, 0, 98;
INTEGER A14[64] =
8600,6400,4800,3600,2800,2000,1540,1140, 860, 640, 480, 360, 280, 200, 154, 116,
86, 64, 50, 36, 28, 24, 20, 16, 14, 12, 11, 9, 7, 5, 4, 3,
2000,1600,1300,1000, 900, 800, 720, 660, 600, 560, 520, 480, 440, 400, 380, 360,
340, 300, 280, 260, 240, 220, 200, 180, 160, 140, 120, 100, 80, 60, 40, 20;
INTEGER A15[16] =
60000,28000,10800,4200,1660, 660, 260, 100, 500, 200, 100, 60, 40, 30, 20, 10;
INTEGER A54[30] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 0, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65;
INTEGER A55[30] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65;
INTEGER A56[8] =
255, 1, 255, 56, 255, 57, 255, 65;
' VARIABLES
INTEGER A17[1];
INTEGER A48[1];
INTEGER A52[1];
BOOLEAN A32[60];
BOOLEAN A33[10];
BOOLEAN A39[10];
BOOLEAN A26[400];
BOOLEAN A27[5];
BOOLEAN A28[237];
BOOLEAN A31[160];
BOOLEAN A57[160];
BOOLEAN A45[237];
BOOLEAN A29[237];
BOOLEAN A30[237];
BOOLEAN A34[50];
BOOLEAN A35[50];
BOOLEAN A36[50];
BOOLEAN A37[50];
BOOLEAN A38[70];
INTEGER V2 = 0;
INTEGER V3 = 0;
INTEGER V4 = 32;
BOOLEAN b;
INTEGER i;
INTEGER j;
INTEGER k;
INTEGER l;
INTEGER V10;
INTEGER V11;
INTEGER V12;
INTEGER V13;
BOOLEAN A18[21];
BOOLEAN A19[20];
BOOLEAN A20[10];
INTEGER V14;
INTEGER V15;
INTEGER V89;
INTEGER V16;
INTEGER V87;
INTEGER V17;
INTEGER V181;
INTEGER V18;
INTEGER V19;
INTEGER V20;
INTEGER V21;
INTEGER V88;
INTEGER V94;
INTEGER V22;
INTEGER V179;
INTEGER V23;
INTEGER V24;
INTEGER V25;
INTEGER V26;
INTEGER V27;
INTEGER V28;
INTEGER V29 = 1;
INTEGER A16[15];
INTEGER V30;
INTEGER V31;
INTEGER V32 = 0;
INTEGER V33 = 0;
INTEGER V34 = 1;
INTEGER V35 = 0;
INTEGER V36 = 0;
INTEGER V37 = 0;
INTEGER V38 = 0;
INTEGER V72 = 0;
INTEGER V73 = 0;
BOOLEAN V39 = 0;
BOOLEAN V40 = 0;
INTEGER V41 = 0;
INTEGER V42 = 0;
BOOLEAN V43 = 0;
BOOLEAN V44 = 0;
BOOLEAN V45 = 0;
INTEGER V46;
INTEGER V47;
INTEGER V48;
BOOLEAN V49 = 0;
INTEGER V51 = -1;
INTEGER V52 = -1;
BOOLEAN V74 = 0;
BOOLEAN V75 = 0;
BOOLEAN V56 = 0;
BOOLEAN V57 = 0;
BOOLEAN V58 = 1;
BOOLEAN A40[10];
BOOLEAN A41[10];
BOOLEAN A44[10];
BOOLEAN V76 = 0;
BOOLEAN V80 = 1;
BOOLEAN V81 = 0;
BOOLEAN V82 = 0;
INTEGER V83 = 5;
INTEGER V84 = 0;
INTEGER V86 = 0;
BOOLEAN V91 = 0;
INTEGER V68 = 0;
INTEGER V69 = 0;
INTEGER V96 = 94;
BOOLEAN V97 = 1;
BOOLEAN V102 = 0;
BOOLEAN V100 = 0;
BOOLEAN V103 = 0;
BOOLEAN V108 = 0;
BOOLEAN V104 = 0;
BOOLEAN V105 = 0;
BOOLEAN V107 = 0;
BOOLEAN V106 = 0;
BOOLEAN V101 = 0;
BOOLEAN USE_EXTEND_IR_DELAY_METHOD = 0;
BOOLEAN USE_FIXED_ALGORITHM = 0;
ENDDATA;
PROCEDURE L0 USES TEMP_DATA;
V102 = 1;
V103 = 1;
ENDPROC;
PROCEDURE DO_BLANK_CHECK USES TEMP_DATA;
V100 = 1;
ENDPROC;
PROCEDURE DO_VERIFY USES TEMP_DATA;
V108 = 1;
ENDPROC;
PROCEDURE DO_SECURE USES TEMP_DATA;
V107 = 1;
V106 = 1;
ENDPROC;
PROCEDURE DO_READ_UES USES TEMP_DATA;
V104 = 1;
ENDPROC;
PROCEDURE L7 USES TEMP_DATA;
V100 = 1;
ENDPROC;
PROCEDURE L8 USES TEMP_DATA;
V108 = 1;
ENDPROC;
PROCEDURE L11 USES TEMP_DATA;
V104 = 1;
ENDPROC;
PROCEDURE L12 USES TEMP_DATA;
V102 = 1;
ENDPROC;
PROCEDURE L15 USES DEVICE_DATA, TEMP_DATA, L22, L49,
L149,
L150, L105, L82, L126,
L319,
L67, L60, L42;
CALL L22;
V3 = 0;
V4 = 1;
CALL L49;
IF (V2 == 0) THEN GOTO L17;
IF (V42 == 0) THEN CALL L150;
IF ((V42 == 0) && V102) THEN CALL L105;
IF ((V42 == 0) && V100) THEN CALL L149;
IF ((V42 == 0) && V103) THEN CALL L82;
IF ((V42 == 0) && V108) THEN CALL L126;
IF ((V42 == 0) && V107) THEN CALL L319;
L17:
IF ((V42 == 0) && V104) THEN CALL L67;
CALL L42;
EXIT V42;
ENDPROC;
PROCEDURE L22 USES DEVICE_DATA, TEMP_DATA,
L53, L338, L55;
INTEGER V66 = 0;
INTEGER V90 = 0;
INTEGER V95 = 0;
INTEGER V67 = 0;
INTEGER V180 = 0;
IF (V103) THEN V102 = 1;
IF (V106) THEN V107 = 1;
IF ((V102 || V100) && !V103 &&
(V108 || V107)) THEN V42 = 1;
IF (V42 != 0) THEN GOTO L41;
V21 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L23;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L23:
V21 = V21 + j;
V66 = V66 + k;
NEXT i;
l = 0;
FOR i = 4 TO 0 STEP -1;
FOR j = 0 TO V1;
IF (((A13[j] & 1) == 0) ||
((A13[j] & 4) == 0)) THEN GOTO L24;
V2 = A12[j];
FOR k = 0 TO (A1[V2] - 1);
IF ((k % 5) == i) THEN A26[l] = 1;
l = l + 1;
NEXT k;
GOTO L25;
L24:
l = l + 1;
L25:
NEXT j;
NEXT i;
V88 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 256) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L26;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
IF ((V2 >= 23) && (V2 <= 27)) THEN
V96 = 95;
L26:
V88 = V88 + j;
V90 = V90 + k;
NEXT i;
V94 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 512) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L27;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L27:
V94 = V94 + j;
V95 = V95 + k;
NEXT i;
V179 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 2048) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L28;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L28:
V179 = V179 + j;
V180 = V180 + k;
NEXT i;
V22 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 2) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L29;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L29:
V22 = V22 + j;
V67 = V67 + k;
NEXT i;
l = 0;
FOR i = 4 TO 0 STEP -1;
FOR j = 0 TO V1;
IF (((A13[j] & 2) == 0) ||
((A13[j] & 4) == 0)) THEN GOTO L30;
V2 = A12[j];
FOR k = 0 TO (A1[V2] - 1);
IF ((k % 5) == i) THEN A27[l] = 1;
l = l + 1;
NEXT k;
GOTO L31;
L30:
l = l + 1;
L31:
NEXT j;
NEXT i;
V16 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L32;
V2 = A12[i];
j = A0[V2];
L32:
V16 = V16 + j;
NEXT i;
V87 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 256) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L33;
V2 = A12[i];
j = A0[V2];
L33:
V87 = V87 + j;
NEXT i;
V17 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 2) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L34;
V2 = A12[i];
j = A0[V2];
L34:
V17 = V17 + j;
NEXT i;
V181 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 2048) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L35;
V2 = A12[i];
j = A0[V2];
L35:
V181 = V181 + j;
NEXT i;
V18 = V17;
IF (V16 > V18) THEN V18 = V16;
IF (V87 > V18) THEN V18 = V87;
IF (V181 > V18) THEN V18 = V181;
V20 = 32 + V1;
IF ((2 * 5 * 5 * V67) > V20) THEN V20 = 2 * 5 * 5 * V67;
IF ((2 * 5 * V66) > V20) THEN V20 = 2 * 5 * V66;
IF (V90 > V20) THEN V20 = V90;
IF (V95 > V20) THEN V20 = V95;
IF (V180 > V20) THEN V20 = V180;
V19 = V18;
IF (V21 > V19) THEN V19 = V21;
IF (V88 > V19) THEN V19 = V88;
IF (V94 > V19) THEN V19 = V94;
IF (V179 > V19) THEN V19 = V179;
IF (V20 > V19) THEN V19 = V20;
FOR i = 0 TO (V19 - 1);
A29[i] = 0;
A30[i] = 1;
NEXT i;
V33 = 0;
FOR i = 0 TO V1;
IF (((A13[i] & 2) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L36;
V2 = A12[i];
IF (V33 < A7[V2]) THEN
V33 = A7[V2];
L36:
NEXT i;
V12 = 0;
V13 = 0;
FOR i = 0 TO V1;
V12 = V12 + A25[i];
IF (A25[i] > V13) THEN V13 = A25[i];
NEXT i;
FOR i = 0 TO (V13 - 1);
A39[i] = 1;
NEXT i;
FOR i = 0 TO 4;
j = 10 * i;
A34[(j + 9)..j] = $016;
A35[(j + 9)..j] = $01A;
A36[(j + 9)..j] = $022;
A37[(j + 9)..j] = $026;
FOR k = 0 TO 2;
b = 0;
IF ((i & (1 << k)) != 0) THEN b = 1;
A34[j + k + 7] = b;
A35[j + k + 7] = b;
A36[j + k + 7] = b;
A37[j + k + 7] = b;
NEXT k;
NEXT i;
FOR i = 0 TO 6;
j = 10 * i;
A38[(j + 9)..j] = $02A;
FOR k = 0 TO 2;
b = 0;
IF ((i & (1 << k)) != 0) THEN b = 1;
A38[j + k + 7] = b;
NEXT k;
NEXT i;
FOR i = 0 TO V1;
A52[i] = 0;
IF (((A13[i] & 256) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L37;
V2 = A12[i];
A52[i] =
A5[V2] - (80 * A6[V2]);
L37:
NEXT i;
CALL L53;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
IF (V101) THEN CALL L55;
IF (V42 != 0) THEN GOTO L41;
FOR i = 0 TO V1;
IF (((A17[i] & (1 | 2)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 1 | 2;
NEXT i;
IF (V4 != (1 | 2)) THEN
GOTO L38;
A18[9..0] = $071;
CALL L338;
WAIT 10000 USEC;
L38:
FOR i = 0 TO V1;
IF (((A17[i] & 256) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 256;
NEXT i;
IF (V4 != 256) THEN
GOTO L39;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -