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

📄 myfifo_epc.jam

📁 VERILOG HDL 实际工控项目源码
💻 JAM
📖 第 1 页 / 共 4 页
字号:
IF ((V4 == 512) || (V4 == 2048)) THEN
A18[9..0] = $079;
IF (V4 == 32) THEN
A18[9..0] = $007;
CALL L431;
DRSCAN 32 + j, A30[(32 + j - 1)..0], CAPTURE A31[(32 + j - 1)..0];
V86 = 0;
FOR i = 0 TO 31;
IF (A31[i + j]) THEN
V86 = V86 | (1 << i);
NEXT i;
if (!(((V4 == 512) || (V4 == 2048)) && V103)) THEN
CALL L109;
ENDPROC;
PROCEDURE L109 USES DEVICE_DATA, TEMP_DATA;
INTEGER A58[8];
EXPORT "DEVICE", V84 + 1;
EXPORT "USERCODE", V86;
FOR i = 0 TO 7;
V27 = 0;
A58[i] = V86 & 15;
IF (A58[i] > 9) THEN V27 = 7;
A58[i] = A58[i] + 48 + V27;
V86 = V86 >> 4;
NEXT i;
PRINT "Device #", V84 + 1, " USERCODE code is ",
CHR$(A58[7]), CHR$(A58[6]),
CHR$(A58[5]), CHR$(A58[4]),
CHR$(A58[3]), CHR$(A58[2]),
CHR$(A58[1]), CHR$(A58[0]);
ENDPROC;
PROCEDURE L110 USES DEVICE_DATA, TEMP_DATA, L96
;
j = 0;
k = V1;
V34 = 1;
V29 = 1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L112;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 1) == 0) &&
((A17[V1 - V84] & 2) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L113;
L111:
j = V84;
k = V84;
L112:
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L96;
V86 = 0;
POP k; POP j; POP i;
NEXT i;
L113:
V84 = 0;
ENDPROC;
PROCEDURE L114 USES TEMP_DATA, L431;
V4 = 512 | 2048;
A18[9..0] = $061;
CALL L431;
WAIT IDLE, 1000 USEC, IDLE;
A18[9..0] = $3FF;
CALL L431;
ENDPROC;
PROCEDURE L120 USES DEVICE_DATA, TEMP_DATA;
INTEGER V85[8];
EXPORT "DEVICE", V84 + 1;
EXPORT "UES", V86;
FOR i = 0 TO 3;
V27 = 0;
V85[i] = V86 & 15;
IF (V85[i] > 9) THEN V27 = 7;
V85[i] = V85[i] + 48 + V27;
V86 = V86 >> 4;
NEXT i;
PRINT "Device #", V84 + 1, " UES code is ",
CHR$(V85[3]), CHR$(V85[2]),
CHR$(V85[1]), CHR$(V85[0]);
ENDPROC;
PROCEDURE L142 USES DEVICE_DATA, TEMP_DATA, L95, L491, L431, L485;
PRINT "programming EPC device(s)...";
CALL L95;
CALL L491;
A18[9..0] = $10A;
CALL L431;
A18[9..0] = $006;
CALL L431;
FOR V10 = 0 TO 26495;
V30 = V89;
V31 = V30 + (V23 - 1);
DRSCAN V23, A53[V31..V30];
IF (V10 != 0) THEN GOTO L143;
A18[9..0] = $196;
CALL L431;
L143:
WAIT V37 USEC;
V89 = V89 + V23;
NEXT V10;
CALL L485;
IF (!V40) THEN V42 = 10;
ENDPROC;
PROCEDURE L144 USES DEVICE_DATA, TEMP_DATA, L95, L491, L511, L431, L485;
CALL L95;
CALL L491;
b = 0;
CALL L511;
A18[9..0] = $10A;
CALL L431;
A18[9..0] = $006;
CALL L431;
DRSCAN V23, A31[(V23 - 1)..0];
A18[9..0] = $196;
CALL L431;
WAIT V37 USEC;
CALL L485;
IF (!V40) THEN V42 = 10;
ENDPROC;
PROCEDURE L167 USES DEVICE_DATA, TEMP_DATA, L431, L490;
PRINT "erasing EPC device(s)...";
A18[9..0] = $192;
CALL L431;
CALL L490;
IF (!V40) THEN V42 = 10;
ENDPROC;
PROCEDURE L199 USES DEVICE_DATA, TEMP_DATA, L95, L491, L431, L511, L318, L485;
IF (V74) THEN PRINT "blank checking EPC device(s)...";
IF (!V74) THEN PRINT "verifying EPC device(s)...";
L200:
CALL L95;
CALL L491;
V29 = 1;
A18[9..0] = $10A;
CALL L431;
A18[9..0] = $122;
CALL L431;
WAIT 20 USEC;
b = 0;
IF (V102) THEN b = 1;
CALL L511;
V10 = 0;
CALL L318;
IF (V42 != 0) THEN GOTO L201;
FOR V10 = 1 TO 26495;
CALL L318;
IF (V42 != 0) THEN V10 = 26495;
NEXT V10;
CALL L485;
L201:
ENDPROC;
PROCEDURE L219 USES DEVICE_DATA, TEMP_DATA
, L199
;
V74 = 1;
IF (V4 == 512) THEN CALL L199;
IF (V103) THEN V74 = 0;
ENDPROC;
PROCEDURE L246 USES DEVICE_DATA, TEMP_DATA, L95, L431, L318;
CALL L95;
V37 = 0;
V38 = 0;
V29 = 1;
V24 = 0;
FOR i = 0 TO V1;
IF (((A17[i] & 512) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L247;
V24 = V24 + 31;
L247:
V24 = V24 + 1;
NEXT i;
V34 = 1;
IF (USE_FIXED_ALGORITHM) THEN GOTO L248;
A18[9..0] = $042;
CALL L431;
CALL L318;
GOTO L249;
L248:
FOR i = 0 TO V20 - 1;
A31[i] = 0;
A57[i] = 0;
NEXT i;
L249:
V30 = V24 - 1;
FOR i = V1 TO 0 STEP -1;
IF (((A17[i] & 512) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L254;
V2 = A12[i];
V30 = V30 - 31;
V27 = 0;
FOR j = 3 TO 0 STEP -1;
A16[j] = 0;
FOR k = 0 TO 7;
IF (USE_FIXED_ALGORITHM) THEN GOTO L250;
IF (A31[k + V27 + V30]) THEN
A16[j] = A16[j] | (1 << k);
GOTO L251;
L250:
IF ((A56[j << 1] & (1 << k)) != 0) THEN
A31[k + V27 + V30] = 1;
IF ((A56[(j << 1) + 1] & (1 << k)) != 0) THEN
A57[k + V27 + V30] = 1;
L251:
NEXT k;
IF (USE_FIXED_ALGORITHM) THEN
A16[j] = A56[j << 1];
V27 = V27 + 8;
NEXT j;
IF (!USE_FIXED_ALGORITHM) THEN GOTO L252;
PUSH i; PUSH V30;
A18[9..0] = $042;
CALL L431;
CALL L318;
POP V30; POP i;
IF (V39) THEN V42 = 6;
L252:
IF (A16[0] != 65)
THEN V42 = 6;
IF (V42 != 0) THEN GOTO L254;
V35 = ((A16[1] - 48) * 10) + (A16[2] - 48);
V36 = A16[3] & 31;
V27 = 5 * 3 * (V2 - 1);
V40 = 0;
V72 = 500;
V73 = 20000;
FOR j = 0 TO (5 - 1);
IF (V40 ||
(V35 != A11[V27]) ||
(V36 != A11[V27 + 1])) THEN
GOTO L253;
V40 = 1;
L253:
V27 = V27 + 3;
NEXT j;
j = 0;
k = 0;
IF (((V36 >> 4) & 15) > 9) THEN j = 7;
IF ((V36 & 15) > 9) THEN k = 7;
PRINT "Device #", V0 - i ," Silicon ID is ",
CHR$(A16[0]), CHR$(A16[1]), CHR$(A16[2]),
"(", CHR$(((V36 >> 4) & 15) + 48 + j),
CHR$((V36 & 15) + 48 + k), ")"
;
IF (V72 > V37) THEN V37 = V72;
IF (V73 > V38) THEN V38 = V73;
IF (!V40) THEN V42 = 7;
L254:
V30 = V30 - 1;
NEXT i;
ENDPROC;
PROCEDURE L313 USES DEVICE_DATA, TEMP_DATA
;
IF (V34 == 0) THEN GOTO L314;
IF (!USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A30[(V24 - 1)..0], CAPTURE A31[V31..V30];
IF (USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A30[(V24 - 1)..0], COMPARE A31[V31..V30],
A57[V31..V30], V40;
GOTO L317;
L314:
IF (V74) THEN GOTO L316;
IF (V10 == 0) THEN GOTO L315;
DRSCAN V24, A30[(V24 - 1)..0], COMPARE A53[V31..V30],
A30[(V24 - 1)..0], V40;
IF (!V40) THEN V39 = 1;
GOTO L317;
L315:
DRSCAN V24, A30[(V24 - 1)..0], COMPARE A31[V31..V30],
A30[(V24 - 1)..0], V40;
GOTO L317;
L316:
DRSCAN V24, A30[(V24 - 1)..0],
COMPARE A30[(V24 - 1)..0], A30[(V24 - 1)..0],
V40;
L317:
IF (!V40) THEN V39 = 1;
ENDPROC;
PROCEDURE L318 USES DEVICE_DATA, TEMP_DATA, L313;
V39 = 0;
V40 = 1;
IF (V34 == 1) THEN GOTO L319;
V30 = V89;
V31 = V30 + (V24 - 1);
GOTO L320;
L319:
V30 = 0;
V31 = V24 - 1;
L320:
CALL L313;
V89 = V89 + V24;
IF (!V39 || (V34 == 1)) THEN
GOTO L321;
IF (V74) THEN V42 = 9;
IF (!V74) THEN V42 = 11;
L321:
ENDPROC;
PROCEDURE L431 USES DEVICE_DATA, TEMP_DATA;
V41 = 0;
V27 = 0;
IF (!V56) THEN GOTO L432;
V56 = 0;
V41 = 50;
IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L432;
V27 = 50;
A32[49..0] = A30[49..0];
L432:
FOR i = 0 TO V1;
IF ((A17[i] & 8) != 0) THEN GOTO L433;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0)) THEN GOTO L435;
A33[(A25[i] - 1)..0] = A39[(A25[i] - 1)..0];
IF (((A17[i] & 1) != 0) &&
((A17[i] & 4) != 0)) THEN
A33[(A25[i] - 1)..0] = $03E;
A32[(V27 + (A25[i] - 1))..V27] = A33[(A25[i] - 1)..0];
V27 = V27 + A25[i];
GOTO L438;
L433:
IF ((A17[i] & 2) != 0) THEN GOTO L434;
A32[(V27 + 9)..V27] = $3FF;
IF ((A17[i] & 1) != 0) THEN
A32[(V27 + 9)..V27] = $03E;
V27 = V27 + 10;
GOTO L438;
L434:
IF (!V57) THEN GOTO L435;
A32[(V27 + 9)..V27] = $02A;
V27 = V27 + 10;
GOTO L438;
L435:
l = 0;
IF ((A18[20] == 1) && ((A17[i] & 64) != 0)) THEN
l = 10;
A32[(V27 + 9)..V27] = A18[(l + 9)..l];
V27 = V27 + 10;
GOTO L438;
L438:
NEXT i;
IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN
GOTO L439;
STATE DRPAUSE;
WAIT DRPAUSE, 5 USEC, DRPAUSE;
L439:
IRSCAN V27, A32[(V27 - 1)..0];
V57 = 0;
WAIT IRPAUSE, V83 USEC, IRPAUSE;
IF (V91) THEN GOTO L440;
STATE IDLE;
WAIT 3 CYCLES;
L440:
ENDPROC;
PROCEDURE L485 USES DEVICE_DATA, TEMP_DATA, L431;
A18[9..0] = $03E;
CALL L431;
WAIT 20 USEC;
j = 0;
FOR i = 0 TO V1;
IF (((A17[i] & 512) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L486;
j = j + 2;
L486:
j = j + 1;
NEXT i;
DRSCAN j, A30[(j - 1)..0], COMPARE A29[(j - 1)..0],
A30[(j - 1)..0], V40;
ENDPROC;
PROCEDURE L490 USES DEVICE_DATA, TEMP_DATA
, L485
;
j = V38 / 10;
IF (j < 1) THEN j = 1;
FOR i = 0 TO j - 1;
PUSH i; PUSH j;
IF (V4 == 512) THEN WAIT IDLE, 10000 USEC, IDLE;
IF (V4 == 512) THEN CALL L485;
POP j; POP i;
IF (V40) THEN i = j - 1;
NEXT i;
ENDPROC;
PROCEDURE L491 USES DEVICE_DATA, TEMP_DATA;
V23 = 0;
V24 = 0;
FOR i = 0 TO (V19 - 1);
A30[i] = 1;
NEXT i;
FOR i = 0 TO V1;
V25 = 1;
V26 = 1;
IF(V216) THEN V25 = 0;
IF(V216) THEN V26 = 0;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L492;
V2 = A12[i];
IF(V216) THEN V2 = A105[i];
V25 = A1[V2];
V26 = A5[V2];
GOTO L493;
L492:
IF (V74) THEN A30[V24] = 0;
L493:
V23 = V23 + V25;
V24 = V24 + V26;
NEXT i;
V49 = 0;
ENDPROC;
PROCEDURE L511 USES DEVICE_DATA, TEMP_DATA;
j = 0;
FOR i = 0 to (V23 - 1);
A31[i] = A53[i];
NEXT i;
FOR i = 0 TO V1;
k = 1;
IF (((A17[i] & 512) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L512;
V2 = A12[i];
k = A1[V2];
A31[j + 30] = b;
L512:
j = j + k;
NEXT i;
ENDPROC;
' END OF FILE
CRC 05BB;

⌨️ 快捷键说明

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