Aquellos a los que les gusta la retrocomputación en el campo del autoensamblaje de computadoras basadas en procesadores de 8 bits (i8080 / i8085 / z80 / z180 / 6502/6809, etc.) o microcontroladores, generalmente enfrentan la necesidad de mostrar durante la depuración y / o "operación" cualquier información (contenido de buses de direcciones, datos, etc.) en pantallas de 7 segmentos en representación hexadecimal.
En principio, la tarea de mostrar dígitos hexadecimales se resuelve fácilmente mediante el número requerido de indicadores TIL311 "inteligentes" . Desarrollados por Texas Instruments mucho antes de que se extinguieran los dinosaurios, estos conocidos indicadores todavía están en producción y se pueden encontrar en Aliexpress .
A pesar de la facilidad de uso, estos indicadores también tienen importantes inconvenientes, a saber:
Costo relativamente alto: incluso en Aliexpress, estos indicadores no son baratos en absoluto (en comparación con los indicadores convencionales de 7 segmentos) y no los comprará para uso futuro según el principio de "tal vez sean útiles";
Falta de distancia para caminar: deben ordenarse y esperarse especialmente, es decir, no es en absoluto el caso cuando necesitas simular algo para una mano rápida;
— , .
, , 7- LED- . , , (. GAL16V8) — , ( ) , , .
1 GAL16V8 1- 16- , 16- GAL16V8 ( ).
1: ?
, , a 3 (, ) 4 ( '═══', '───', '−−−' - '−∙−∙').
:
a-g — F(A,B,C,D),
* — '' ( , ),
+ — '' ( , ),
\ — '' ( )
GAL16V8 7- . 7- GAL16V8 . ?
« GAL16V8?» , 2- , , . , .
?
— ?
. 'e'.
, 10 16- — 0 2 6 8 A B C D E F.
, 0000 0010 0110 1000 1010 1011 1100 1101 1110 1111.
e(A, B, C, D) = \A*\B*\C*\D + \A*\B*C*\D + \A*B*C*\D + A*\B*\C*\D +
A*\B*C*\D + A*\B*C*D + A*B*\C*\D + A*B*\C*D + A*B*C*\D + A*B*C*D
(.. , ) . . (). , 10, 4 :
e(A, B, C, D) = \B*\D + C*\D + A*B + A*C*D
GAL4V1 ( , GAL-, , — ):
GAL4V1 :
, 'X' '\X';
, ( 5 ) , '';
, '';
, ' ' (eXclusive OR - XOR) .
, , . , - e (A, B, C, D) (. ).
, , GAL4V1? (4), (1) (5), — , , 4- 5-.
e(A, B, C, D) , «» , 'a' (7 ).
, ...
))
GAL-
GAL- GAL4V1? — , GAL- / :
, .. , ( 8 GAL16V8 GAL20V8, 10 GAL18V10 GAL22V10, 12 GAL26V12 GAL26CV12);
(7-8 GAL16V8 GAL20V8, 8-10 GAL18V10, 8-16 GAL22V10 GAL26v12, 8-12 GAL26CV12);
, .. , ( 16 GAL16V8, 18 GAL18V10, 20 GAL20V8, 22 GAL22V10 26 GAL26V12 GAL26V12);
( ) « », «-» «» ( );
.
GAL 1- (D-), / (GAL16V8 GAL20V8) - (GAL18V10, GAL22V10 GAL26V12/GAL26CV12).
GAL- , , .
1- , GAL- " " (OLMC — Output Logic MacroCell).
GAL4V1
Y A (.. ). 1 :
Y(A) = A
Y A , B :
Y(A, B) = A * \B
2- , 1 .
— Y A , B , C :
Y(A, B, C) = A * B * \C
, , .
: C , Y A, C , Y B:
Y(A, B, C) = A * \C + B * C
. 3- , , 2- 2 () , 1- . ? , — « ».
?
(/) 7- . 7+7=14 ( , , 16).
, GAL, .
, 2- 7- , , — (.. ) .
GAL16V8?
GAL16V8 , (.. , 1- ) 3- , .. Registered, Complex Simple. , .
Simple ( 8) GAL4V1, 8 — 10. .
Complex Simple, Output Enable (\OE), . 7 . — 10.
Registered ( ) XOR- 1- (D-), CLK, 1 . \OE, 11 . — 8. , Complex 7 . — 8.
?
GAL16V8 , .. 4 ( 'e') 7 ( 'a') .
, .. 7- GAL16V8, , 7 ( 'a'), 2- 2 .
, , , 7- , 7- GAL16V8.
7- GAL16V8.
2: - !
(.. ) , .. Simple Registered, 8 .
, , GAL16V8 16- 4- . ?
, 1- , .. , .
, ? , - , , ( ) , .
, , «» , «» , .
. «» , ('\' '/'). , «» :
, 7- \a(A,B,C,D), \b(A,B,C,D), ..., \g(A,B,C,D) 4-, !
, , GAL4V1, ;)
.
GAL16V8D
— 2 DIP- :
— 555 ( ). — PNP 100 . — 7- .
. , , «» , «».
XOR- GAL16V8 LED- , GAL16V8D , :
GAL16VP8 - ( 64 ), . ( ).
2- LED- ( 200- 4- , ):
GAL16V8 WinCUPL, :
( , WinCUPL ), ...
, EN_L , . , -.
— , (.. , ), , 2-, ( ) EN_i , EN_j, :
, / , EN_L EN_H GAL16V8, «EN_L = ! EN_H» :
EN_L, , ( ) ( LED1/LED2 ).
GAL16V8D JED- ( ) MiniPro TL866A.
— , , — GAL16V8 7- :
En el proceso de creación de este artículo, me encontré con una buena publicación sobre Habré - PAL, GAL y un viaje al retro digital / Habr (habr.com) y pensé que mi caso podría ser de interés para aquellos que quieran entender cómo funciona. realmente funciona y quién no cree que los rollos crezcan en la tienda, el agua viene del grifo y la electricidad del tomacorriente.