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

📄 timer.jam

📁 Verilog 下脉冲发生器的源代码
💻 JAM
📖 第 1 页 / 共 4 页
字号:
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,
L190, L125, L98, L147,
L319,
L67, L60, L42;
CALL L22;
V3 = 0;
V4 = 2;
CALL L49;
IF (V2 == 0) THEN GOTO L21;
IF (V42 == 0) THEN CALL L190;
IF ((V42 == 0) && V102) THEN CALL L125;
IF ((V42 == 0) && V100) THEN CALL L149;
IF ((V42 == 0) && V103) THEN CALL L98;
IF ((V42 == 0) && V108) THEN CALL L147;
IF ((V42 == 0) && V107) THEN CALL L319;
L21:
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;
A18[9..0] = $332;
CALL L338;
WAIT 10000 USEC;
L39:
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 L40;
A18[9..0] = $044;
CALL L338;
WAIT 10000 USEC;
L40:
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 L41;
IF (V103 || V102) THEN V38 = 1;
V38 = 0;
WAIT 10000 USEC;
L41:
ENDPROC;
PROCEDURE L42 USES DEVICE_DATA, TEMP_DATA, L54, L338, L55, L60
;
IF (V42 == 1) THEN GOTO L48;
CALL L54;
IF (!V76 || (V42 != 0)) THEN GOTO L43;
A18[9..0] = $003;
V4 = 32;
CALL L338;
L43:
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 L44;
A18[9..0] = $079;
CALL L338;
WAIT 10000 USEC;
L44:
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 L45;
A18[9..0] = $006;
CALL L338;
L45:
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 L46;
A18[9..0] = $04A;
CALL L338;
WAIT 10000 USEC;
L46:
IF (!V76 || (V42 != 0)) THEN GOTO L47;
V80 = 0;
CALL L55;
IF (V42 != 0) THEN V42 = 10;
IF (V42 != 0) THEN GOTO L48;
L47:
A18[9..0] = $3FF;
CALL L338;
IF (V105 && (V42 == 0)) THEN CALL L60;
L48:
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;
ENDPROC;
PROCEDURE L49 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 L50;
V2 = 0;
V3 = 0;
GOTO L52;
L50:
V2 = A12[j - 1];
V3 = j;
IF ((V4 == 32) || (V4 == 256) ||
(V4 == 512) || (V4 == 2048))
THEN GOTO L52;
IF (V58) THEN GOTO L51;
A41[9..0] = $066;
GOTO L52;
L51:
A41[9..0] = $006;
L52:
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 L53 USES DEVICE_DATA, TEMP_DATA, L54
, L334
;
CALL L54;
IF (V32 == 0) THEN CALL L334;
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 L54 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)) != 0) &&
!V102 && !V100 && !V103 && !V108 &&
!V107 && !V106 && V101) THEN
A17[i] = A17[i] & ~4;
IF (((A17[i] & 4) != 0) &&
((A17[i] & 32) != 0) && !V101 &&
(V102 || V100 || V103 || V108 ||
V107 || V106)) THEN
A17[i] = A17[i] & ~4;
NEXT i;
ENDPROC;
PROCEDURE L55 USES DEVICE_DATA, TEMP_DATA, L54;
INTEGER V79 = 32 * V0;
BOOLEAN A46[V79];
INTEGER A47[8];
INTEGER V145;
CALL L54;
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)) != 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 L56;
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 L57;
L56:
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;
L57:
V27 = V27 + 1;
NEXT i;
V27 = 0;
FOR i = 0 TO V1;
IF(A61[i] != 0) THEN GOTO L58;
IF(A46[V27] != 0) THEN
V42 = 6;
V27 = V27 + 1;
NEXT i;
GOTO L59;
L58:
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;
L59:
ENDPROC;
PROCEDURE L60 USES DEVICE_DATA, TEMP_DATA, L54, L338, L65;
j = 0;
k = V1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L61;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 256) == 0) &&
((A17[V1 - V84] & 32) == 0) &&
((A17[V1 - V84] & 512) == 0) &&
((A17[V1 - V84] & 2048) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L64;
j = V84;
k = V84;
L61:
CALL L54;
FOR i = 0 TO V1;
IF (((A17[i] & 256) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 256;

⌨️ 快捷键说明

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