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

📄 timer.jam

📁 Verilog 下脉冲发生器的源代码
💻 JAM
📖 第 1 页 / 共 4 页
字号:
NEXT i;
IF (V4 != 256) THEN
GOTO L62;
A18[9..0] = $006;
CALL L338;
WAIT 10000 USEC;
L62:
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 L63;
A18[9..0] = $04A;
CALL L338;
WAIT 10000 USEC;
L63:
A18[9..0] = $3FF;
CALL L338;
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 L54;
V4 = 0;
IF (((A17[V1 - V84] & 256) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 256;
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 L65;
POP k; POP j; POP i;
NEXT i;
L64:
V84 = 0;
ENDPROC;
PROCEDURE L65 USES DEVICE_DATA, TEMP_DATA, L338, L66;
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 == 512) || (V4 == 2048)) THEN
A18[9..0] = $079;
IF (V4 == 32) THEN
A18[9..0] = $007;
CALL L338;
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 L66;
ENDPROC;
PROCEDURE L66 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 L67 USES DEVICE_DATA, TEMP_DATA, L54
, L74
;
j = 0;
k = V1;
V34 = 1;
V29 = 1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L69;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 1) == 0) &&
((A17[V1 - V84] & 2) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L70;
L68:
j = V84;
k = V84;
L69:
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L54;
V86 = 0;
IF (((A17[V1 - V84] & 2) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
CALL L74;
POP k; POP j; POP i;
NEXT i;
L70:
V84 = 0;
ENDPROC;
PROCEDURE L74 USES DEVICE_DATA, TEMP_DATA, L284, L253, L77;
V4 = 2;
j = V1 - V84;
FOR i = 0 TO V1;
IF (((A17[i] & 2) != 0) && ((A17[i] & 4) != 0) &&
(i != j)) THEN A17[i] = A17[i] & ~4;
NEXT i;
V2 = A12[j];
L75:
V11 = 4114;
CALL L284;
V49 = 1;
CALL L253;
k = 0;
FOR i = 2 TO 20;
IF ((i == 8) || (i == 9) || (i == 16)) THEN GOTO L76;
V27 = V24 - 1 - i - V84;
IF (A31[V27]) THEN V86 = V86 | (1 << k);
k = k + 1;
L76:
NEXT i;
CALL L77;
ENDPROC;
PROCEDURE L77 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 L98 USES DEVICE_DATA, TEMP_DATA, L53, L284, L309, L54;
PRINT "programming 9K device(s)...";
CALL L53;
FOR V11 = 1035 TO 1196;
CALL L284;
CALL L309;
NEXT V11;
V49 = 1;
FOR V11 = 2069 TO 2074;
CALL L284;
CALL L309;
CALL L54;
NEXT V11;
V49 = 1;
FOR V11 = 4097 TO 4114;
CALL L284;
CALL L309;
NEXT V11;
V49 = 1;
FOR V11 = 4869 TO 4886;
CALL L284;
CALL L309;
NEXT V11;
V49 = 1;
FOR V11 = 8193 TO 8210;
CALL L284;
CALL L309;
NEXT V11;
V49 = 1;
FOR V11 = 8965 TO 8982;
CALL L284;
CALL L309;
NEXT V11;
ENDPROC;
PROCEDURE L99 USES DEVICE_DATA, TEMP_DATA, L338;
A18[9..0] = A41[9..0];
CALL L338;
A18[9..0] = A40[9..0];
CALL L338;
A18[9..0] = $00A;
CALL L338;
IF (V58) THEN V56 = 1;
WAIT (V38 * 1000) USEC;
IF (V58) THEN GOTO L100;
IF (V82) THEN V83 = 20000;
A18[9..0] = $06A;
CALL L338;
V83 = 5;
A18[9..0] = $06E;
CALL L338;
L100:
A18[9..0] = A44[9..0];
CALL L338;
ENDPROC;
PROCEDURE L101 USES DEVICE_DATA, TEMP_DATA, L338;
A18[9..0] = A41[9..0];
CALL L338;
A18[9..0] = $00A;
CALL L338;
IF (V58) THEN V56 = 1;
WAIT (V37 * 100) USEC;
IF (V58) THEN GOTO L102;
A18[9..0] = $06E;
CALL L338;
L102:
A18[9..0] = A44[9..0];
CALL L338;
ENDPROC;
PROCEDURE L125 USES DEVICE_DATA, TEMP_DATA, L338, L99;
A18[9..0] = $392;
CALL L338;
A18[9..0] = $01E;
CALL L338;
DRSCAN V17, A30[(V17 - 1)..0];
CALL L99;
A18[9..0] = $01E;
CALL L338;
DRSCAN V17, A29[(V17 - 1)..0];
ENDPROC;
PROCEDURE L147 USES DEVICE_DATA, TEMP_DATA, L53, L284, L253, L54;
IF (V74) THEN PRINT "blank checking 9K device(s)...";
IF (!V74) THEN PRINT "verifying 9K device(s)...";
CALL L53;
FOR V11 = 1035 TO 1196;
CALL L284;
CALL L253;
IF (V42 != 0) THEN V11 = 1196;
NEXT V11;
IF (V42 != 0) THEN GOTO L148;
V49 = 1;
FOR V11 = 2069 TO 2074;
CALL L284;
CALL L253;
CALL L54;
IF (V42 != 0) THEN V11 = 2074;
NEXT V11;
IF (V42 != 0) THEN GOTO L148;
V49 = 1;
FOR V11 = 4097 TO 4113;
CALL L284;
CALL L253;
IF (V42 != 0) THEN V11 = 4113;
NEXT V11;
IF (V42 != 0) THEN GOTO L148;
V45 = 1;
V11 = 4114;
CALL L284;
CALL L253;
V45 = 0;
IF (V42 != 0) THEN GOTO L148;
FOR V11 = 4869 TO 4886;
CALL L284;
CALL L253;
IF (V42 != 0) THEN V11 = 4886;
NEXT V11;
IF (V42 != 0) THEN GOTO L148;
V49 = 1;
FOR V11 = 8193 TO 8210;
CALL L284;
CALL L253;
IF (V42 != 0) THEN V11 = 8210;
NEXT V11;
IF (V42 != 0) THEN GOTO L148;
FOR V11 = 8965 TO 8982;
CALL L284;
CALL L253;
IF (V42 != 0) THEN V11 = 8982;
NEXT V11;
L148:
ENDPROC;
PROCEDURE L149 USES DEVICE_DATA, TEMP_DATA
, L147
;
V74 = 1;
IF (V4 == 2) THEN CALL L147;
V74 = 0;
ENDPROC;
PROCEDURE L190 USES DEVICE_DATA, TEMP_DATA, L53, L284, L253, L359;
CALL L53;
V37 = 100;
V38 = 100;
V29 = 1;
V11 = 8192;
CALL L284;
V34 = 1;
IF (USE_FIXED_ALGORITHM) THEN GOTO L191;
CALL L253;
GOTO L192;
L191:
CALL L359;
FOR i = 0 TO V20 - 1;
A31[i] = 0;
A57[i] = 0;
NEXT i;
L192:
V30 = V24 - 1;
FOR i = V1 TO 0 STEP -1;
IF (((A17[i] & 2) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L210;
V2 = A12[i];
V30 = V30 - (A4[V2] - 1);
FOR j = 0 TO 14;
INTEGER V70 = 0;
A16[j] = 0;
V27 = 0;
IF (j > 7) THEN GOTO L193;
V27 = j * 8;
V70 = 8;
L193:
IF (j != 8) THEN GOTO L194;
V27 = 64;
V70 = 5;
L194:
IF (j != 9) THEN GOTO L195;
V27 = 69;
V70 = 3;
L195:
IF (j != 10) THEN GOTO L196;
V27 = 72;
V70 = 3;
L196:
IF (j != 11) THEN GOTO L197;
V27 = 75;
V70 = 5;
L197:
IF (j != 12) THEN GOTO L198;
V27 = 80;
V70 = 3;
L198:
IF (j != 13) THEN GOTO L199;
V27 = 83;
V70 = 5;
L199:
IF (j != 14) THEN GOTO L200;
V27 = 88;
V70 = 1;
L200:
FOR k = 0 TO (V70 - 1);
INTEGER V71 = 0;
l = 0;
IF (V2 != 8) THEN GOTO L201;
IF ((k + V27) >= 57) THEN V71 = 1;
IF ((k + V27) >= 83) THEN V71 = 3;
L201:
IF (V2 != 9) THEN GOTO L202;
IF ((k + V27) >= 65) THEN V71 = 1;
L202:
IF (V2 != 10) THEN GOTO L203;
IF ((k + V27) >= 73) THEN V71 = 1;
L203:
IF (V2 != 11) THEN GOTO L204;
IF ((k + V27) >= 81) THEN V71 = 1;
L204:
l = 3 * (k + V27 + V71);
IF (USE_FIXED_ALGORITHM) THEN GOTO L205;
IF (A31[l + V30]) THEN
A16[j] = A16[j] | (1 << ((V70 - 1) - k));
GOTO L206;
L205:
IF ((A55[j << 1] & (1 << ((V70 - 1) - k))) != 0) THEN
A31[l + V30] = 1;
IF ((A55[(j << 1) + 1] & (1 << ((V70 - 1) - k))) != 0) THEN
A57[l + V30] = 1;
L206:
NEXT k;
IF (USE_FIXED_ALGORITHM) THEN
A16[j] = A55[j << 1];
NEXT j;
IF (!USE_FIXED_ALGORITHM) THEN GOTO L207;
PUSH i;
CALL L253;
POP i;
IF (V39) THEN V42 = 6;
L207:
IF ((A16[0] != 65) ||
(A16[1] != 76) ||
(A16[2] != 84) ||
(A16[3] != 69) ||
(A16[4] != 82) ||
(A16[5] != 65))
THEN V42 = 6;
IF (V42 != 0) THEN GOTO L210;
V35 = ((A16[6] - 48) * 10) + (A16[7] - 48);
V36 = A16[8] & 31;
V27 = 5 * 3 * (V2 - 1);
V40 = 0;
V72 = 100;
V73 = 100;
IF ((A17[i] & 64) == 0) THEN
GOTO L208;
V72 = 300;
V73 = 100;
L208:
IF (((V36 & 24) == 8) || ((V36 & 24) == 16)) THEN
V40 = 1;
FOR j = 0 TO (5 - 1);
IF (V40 ||
(V35 != A11[V27]) ||
(V36 != A11[V27 + 1]) ||
(((A17[i] & 64) != 0) && (j != 1))) THEN
GOTO L209;
V40 = 1;
IF ((A11[V27 + 2] & 1) != 1) THEN
GOTO L209;
V72 = A14[A16[11] & 31];
V73 = A15[A16[10] & 7];
A48[i] = A48[i] | 64;
L209:
V27 = V27 + 3;
NEXT j;
V27 = 0;
IF ((V36 & 15) > 9) THEN V27 = 7;
PRINT "Device #", V0 - i ," Silicon ID is ",
CHR$(A16[0]), CHR$(A16[1]), CHR$(A16[2]), CHR$(A16[3]),
CHR$(A16[4]), CHR$(A16[5]), CHR$(A16[6]), CHR$(A16[7]),
"(", CHR$(((V36 >> 4) & 1) + 48),
CHR$((V36 & 15) + 48 + V27), ")"
;
IF (V72 > V37) THEN V37 = V72;
IF (V73 > V38) THEN V38 = V73;
IF (!V40) THEN V42 = 7;
L210:
V30 = V30 - 1;
NEXT i;
ENDPROC;
PROCEDURE L247 USES DEVICE_DATA, TEMP_DATA, L338
;
A18[9..0] = A19[9..0];
A18[19..10] = A19[19..10];
A18[20] = 1;
IF (V57) THEN GOTO L248;
CALL L338;
GOTO L249;
L248:
V57 = 0;
CALL L338;
V57 = 1;
L249:
A18[20] = 0;
WAIT 15 USEC;
A18[9..0] = A20[9..0];
CALL L338;
IF (V34 == 0) THEN GOTO L250;
IF (!USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A29[(V24 - 1)..0], CAPTURE A31[V31..V30];
IF (USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A29[(V24 - 1)..0], COMPARE A31[V31..V30],
A57[V31..V30], V40;
GOTO L252;
L250:
IF (V74) THEN GOTO L251;
DRSCAN V24, A29[(V24 - 1)..0], COMPARE A24[V31..V30],
A30[(V24 - 1)..0], V40;
GOTO L252;
L251:
DRSCAN V24, A29[(V24 - 1)..0],
COMPARE A30[(V24 - 1)..0], A30[(V24 - 1)..0],
V40;
L252:
IF (!V40) THEN V39 = 1;
ENDPROC;
PROCEDURE L253 USES DEVICE_DATA, TEMP_DATA, L359, L338, L247, L374;
V39 = 0;
V40 = 1;
IF (V49) THEN CALL L359;
IF (V34 == 1) THEN GOTO L254;
V30 = V15;
V31 = V30 + (V24 - 1);
GOTO L255;
L254:
V30 = 0;
V31 = V24 - 1;
L255:
V28 = 0;
IF ((V10 & 64512) == 1024) THEN GOTO L256;
IF ((V10 & 64512) == 2048) THEN GOTO L263;
GOTO L266;
L256:
IF (V29 == 0) THEN
A19[9..0] = $042;
IF (V29 == 0) THEN
A19[19..10] = $042;
IF (V29 == 1) THEN
A19[9..0] = $03E;
IF (V29 == 1) THEN
A19[19..10] = $062;
IF (V29 == 2) THEN
A19[9..0] = $03E;
IF (V29 == 2) THEN
A19[19..10] = $03E;
V81 = 0;
IF ((V10 >= 1059) && (V10 <= 1172)) THEN
V28 = 4;
IF (V28 == 0) THEN GOTO L257;
A18[9..0] = $396;
CALL L338;
DRSCAN V22, A27[(V22 - 1)..0];
L257:
FOR i = 0 TO V28;
IF (i == V28) THEN V81 = 1;
PUSH i;
FOR j = 0 TO 4;
IF (V10 > 1172) THEN GOTO L259;
k = 10 * j;
A20[9..0] = A36[(k + 9)..k];
PUSH j;
CALL L247;
IF (V29 != 0) THEN GOTO L258;
A19[9..0] = $03E;
CALL L247;
A19[9..0] = $042;
L258:
POP j;
V30 = V30 + V24;
V31 = V31 + V24;
L259:
IF (V10 < 1059) THEN GOTO L261;
k = 10 * j;
A20[9..0] = A37[(k + 9)..k];
PUSH j;
CALL L247;

⌨️ 快捷键说明

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