⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfifo_epc.jam

📁 VERILOG HDL 实际工控项目源码
💻 JAM
📖 第 1 页 / 共 4 页
字号:
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 L48;
V2 = A12[i];
A52[i] =
A5[V2] - (80 * A6[V2]);
L48:
NEXT i;
CALL L95;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
IF(!(V101 || V103 || V108 || V107 ||
V100 || V102
) &&
V105) THEN GOTO L75;
IF (V101) THEN CALL L97;
IF (V42 != 0) THEN GOTO L75;
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 L49;
A18[9..0] = $071;
CALL L431;
WAIT 10000 USEC;
L49:
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 L61;
A18[9..0] = $332;
CALL L431;
WAIT 10000 USEC;
V203 = 0;
L61:
FOR i = 0 TO V1;
IF (((A17[i] & 512) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 512;
NEXT i;
IF (V4 != 512) THEN
GOTO L62;
A18[9..0] = $044;
CALL L431;
WAIT 10000 USEC;
L62:
FOR i = 0 TO V1;
IF (((A17[i] & 2048) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 2048;
NEXT i;
IF (V4 != 2048) THEN
GOTO L63;
IF (V103 || V102) THEN V38 = 1;
V38 = 0;
WAIT 10000 USEC;
L63:
FOR i = 0 TO V1;
IF (((A17[i] & 16384) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 16384;
NEXT i;
IF (V4 != 16384) THEN
GOTO L75;
V203 = 0;
L75:
ENDPROC;
PROCEDURE L81 USES DEVICE_DATA, TEMP_DATA, L96, L431, L97, L102
, L114
;
IF (V42 == 1) THEN GOTO L89;
CALL L96;
IF (!V76 || (V42 != 0)) THEN GOTO L83;
A18[9..0] = $003;
V4 = 32;
CALL L431;
L83:
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 L84;
A18[9..0] = $079;
CALL L431;
WAIT 10000 USEC;
L84:
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 L85;
A18[9..0] = $006;
CALL L431;
L85:
FOR i = 0 TO V1;
IF (((A17[i] & (512 | 2048)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 512 | 2048;
NEXT i;
IF (V4 != (512 | 2048)) THEN
GOTO L86;
A18[9..0] = $04A;
CALL L431;
WAIT 10000 USEC;
L86:
FOR i = 0 TO V1;
IF (((A17[i] & 16384) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 16384;
NEXT i;
IF (V4 != 16384) THEN
GOTO L87;
A18[9..0] = $201;
IF (V228 == 1) THEN A18[9..0] = $166;
CALL L431;
WAIT 10000 USEC;
L87:
IF (!V76 || (V42 != 0)) THEN GOTO L88;
WAIT IDLE, 256 CYCLES, 10 USEC, IDLE;
V80 = 0;
CALL L97;
IF (V42 != 0) THEN V42 = 10;
IF (V42 != 0) THEN GOTO L89;
L88:
A18[9..0] = $3FF;
CALL L431;
IF (V105 && (V42 == 0)) THEN CALL L102;
IF (V146 && (V42 == 0)) THEN CALL L114;
L89:
IF (V42 == 0) THEN
PRINT "DONE";
IF (V42 == 1) THEN
PRINT "Invalid option combination specified";
IF (V42 == 6) THEN
PRINT "Unrecognized device";
IF (V42 == 7) THEN
PRINT "Device revision is not supported";
IF ((V42 == 10) && (V103)) THEN
PRINT "Device programming failure";
IF (V42 == 9) THEN
PRINT "Device is not blank";
IF (V42 == 11) THEN
PRINT "Device verify failure";
IF ((V42 == 10) && (V101)) THEN
PRINT "Device configuration failure";
IF (V42 == 4) THEN
PRINT "Unable to read USERCODE/UES from device #", V84 + 1;
IF (V42 == 12) THEN
PRINT "Failed to configure Excalibur stripe";
IF (V42 == 14) THEN
PRINT "Failed to erase or program ASC device";
ENDPROC;
PROCEDURE L90 USES DEVICE_DATA, TEMP_DATA;
j = 0;
FOR i = 0 TO V1;
IF ((j <= V3) &&
((A13[i] & V4) != 0) &&
((A13[i] & 4) != 0)) THEN j = i + 1;
NEXT i;
IF (j > V3) THEN GOTO L91;
V2 = 0;
V3 = 0;
GOTO L94;
L91:
V2 = A12[j - 1];
V3 = j;
IF(!V216) THEN GOTO L92;
V2 = A105[j - 1];
L92:
IF ((V4 == 32) || (V4 == 256) ||
(V4 == 512) || (V4 == 2048) ||
(V4 == 16384) || (V4 == 32768))
THEN GOTO L94;
IF (V58) THEN GOTO L93;
A41[9..0] = $066;
GOTO L94;
L93:
A41[9..0] = $006;
L94:
IF (V4 == 1) THEN A40[9..0] = $00E;
IF (V4 == 1) THEN A44[9..0] = $012;
IF (V4 == 2) THEN A40[9..0] = $38E;
IF (V4 == 2) THEN A44[9..0] = $392;
ENDPROC;
PROCEDURE L95 USES DEVICE_DATA, TEMP_DATA, L96
;
CALL L96;
V10 = 0;
V14 = 0;
V15 = 0;
V89 = 0;
V49 = 1;
V34 = 0;
V51 = -1;
V52 = -1;
V45 = 0;
V29 = 1;
IF (V103) THEN V29 = 0;
IF (V102 && V74) THEN V29 = 2;
ENDPROC;
PROCEDURE L96 USES DEVICE_DATA, TEMP_DATA;
FOR i = 0 TO V1;
A17[i] = (A13[i] | A48[i]);
IF (((A17[i] & 4) != 0) &&
((A17[i] & (1 | 256 | 2 | 512 | 2048 | 16384)) != 0) &&
!V102 && !V100 && !V103 && !V108 &&
!V107 && !V106 && V101) THEN
A17[i] = A17[i] & ~4;
IF (((A17[i] & 4) != 0) &&
((A17[i] & 32) != 0) && ((A17[i] & 32768) == 0) && !V101 &&
(V102 || V100 || V103 || V108 ||
V107 || V106)) THEN
A17[i] = A17[i] & ~4;
NEXT i;
ENDPROC;
PROCEDURE L97 USES DEVICE_DATA, TEMP_DATA, L96;
INTEGER V79 = 32 * V0;
BOOLEAN A46[V79];
INTEGER A47[8];
INTEGER V145;
CALL L96;
STATE IDLE;
V27 = 0;
FOR i = 0 TO V1;
A18[9..0] = A39[(A25[i] - 1)..0];
IF ((A17[i] & (1 | 2 | 256 | 512 | 2048 | 16384)) != 0) THEN
A18[9..0] = $059;
IF ((A17[i] & 32) != 0) THEN
A18[9..0] = $006;
A32[(V27 + (A25[i] - 1))..V27] = A18[(A25[i] - 1)..0];
V27 = V27 + A25[i];
NEXT i;
IRSCAN V27, A32[(V27 - 1)..0];
WAIT IRPAUSE, 5 USEC, IDLE;
WAIT 3 CYCLES;
DRSCAN V79, A46[(V79 - 1)..0], CAPTURE A46[(V79 - 1)..0];
V27 = 0;
FOR i = 0 TO V1;
IF (A46[V27] == 1) THEN GOTO L98;
IF (V80) THEN
PRINT "Device #", V0 - i, " unable to read IDCODE";
IF (V101 && ((A17[i] & 32) != 0) &&
((A17[i] & 4) != 0)) THEN V42 = 6;
GOTO L99;
L98:
FOR j = 0 TO 7;
A47[j] = 0;
FOR k = 0 TO 3;
IF (A46[V27 + (4 * j) + k]) THEN
A47[j] = A47[j] | (1 << k);
NEXT k;
A47[j] = A47[j] + 48;
IF (A47[j] >= 58) THEN A47[j] = A47[j] + 7;
NEXT j;
IF (V80) THEN
PRINT "Device #", V0 - i, " IDCODE is ",
CHR$(A47[7]), CHR$(A47[6]),
CHR$(A47[5]), CHR$(A47[4]),
CHR$(A47[3]), CHR$(A47[2]),
CHR$(A47[1]), CHR$(A47[0]);
IF (V101 && ((A17[i] & 32) != 0) &&
((A17[i] & 4) != 0) && (A47[0] != 68) &&
(A47[1] != 68)) THEN
V42 = 6;
V27 = V27 + 31;
L99:
V27 = V27 + 1;
NEXT i;
V27 = 0;
FOR i = 0 TO V1;
IF(A61[i] != 0) THEN GOTO L100;
IF(A46[V27] != 0) THEN
V42 = 6;
V27 = V27 + 1;
NEXT i;
GOTO L101;
L100:
V145 = 0;
FOR j = 0 TO 31;
IF(A46[(V27 + j)]) THEN
V145 = V145 + (1 << j);
NEXT j;
V27 = V27 + 32;
IF(A61[i] != V145) THEN
V42 = 6;
NEXT i;
L101:
ENDPROC;
PROCEDURE L102 USES DEVICE_DATA, TEMP_DATA, L96, L431, L108;
j = 0;
k = V1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L103;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 256) == 0) &&
((A17[V1 - V84] & 32) == 0) &&
((A17[V1 - V84] & 512) == 0) &&
((A17[V1 - V84] & 16384) == 0) &&
((A17[V1 - V84] & 2048) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L107;
j = V84;
k = V84;
L103:
CALL L96;
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 L104;
A18[9..0] = $006;
CALL L431;
WAIT 10000 USEC;
L104:
FOR i = 0 TO V1;
IF (((A17[i] & (512 | 2048)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 512 | 2048;
NEXT i;
IF (V4 != (512 | 2048)) THEN
GOTO L105;
A18[9..0] = $04A;
CALL L431;
WAIT 10000 USEC;
L105:
FOR i = 0 TO V1;
IF (((A17[i] & 16384) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 16384;
NEXT i;
IF (V4 != 16384) THEN
GOTO L106;
A18[9..0] = $201;
CALL L431;
WAIT 10000 USEC;
L106:
A18[9..0] = $3FF;
CALL L431;
STATE IDLE;
FOR i = 0 TO (V19 - 1);
A30[i] = 1;
NEXT i;
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L96;
V4 = 0;
IF (((A17[V1 - V84] & 256) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 256;
IF (((A17[V1 - V84] & 16384) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 16384;
IF (((A17[V1 - V84] & 32) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 32;
IF (((A17[V1 - V84] & 512) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 512;
IF (((A17[V1 - V84] & 2048) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 2048;
IF (V4 != 0) THEN CALL L108;
POP k; POP j; POP i;
NEXT i;
L107:
V84 = 0;
ENDPROC;
PROCEDURE L108 USES DEVICE_DATA, TEMP_DATA, L431, L109;
j = V1 - V84;
FOR i = 0 TO V1;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0) && (i != j)) THEN
A17[i] = A17[i] | 8;
NEXT i;
IF (V4 == 256) THEN
A18[9..0] = $007;
IF (V4 == 16384) THEN
A18[9..0] = $007;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -