Ceux qui sont friands de rétro-informatique dans le domaine de l'auto-assemblage d'ordinateurs basés sur des processeurs 8 bits (i8080 / i8085 / z80 / z180 / 6502/6809, etc.) ou des microcontrôleurs, sont généralement confrontés à la nécessité d'afficher lors du débogage et / ou "opération" toute information (contenu des bus d'adresses, données, etc.) sur des afficheurs à 7 segments en représentation hexadécimale.
En principe, la tâche d'affichage des chiffres hexadécimaux est facilement résolue par le nombre nécessaire d'indicateurs TIL311 "intelligents" . Développés par Texas Instruments bien avant la mort des dinosaures, ces indicateurs bien connus sont toujours en production et peuvent être trouvés sur Aliexpress .
Malgré la facilité d'utilisation, ces indicateurs présentent également des inconvénients importants, à savoir:
Coût relativement élevé - même sur Aliexpress, ces indicateurs ne sont pas du tout bon marché (par rapport aux indicateurs conventionnels à 7 segments) et vous ne les achèterez pas pour une utilisation future sur le principe «peut-être qu'ils vous seront utiles»;
Manque de distance de marche - ils doivent être spécialement commandés et attendus, c.-à-d. pas du tout le cas lorsque vous avez besoin de faire une maquette de quelque chose pour une main rapide;
— , .
, , 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 créant cet article, je suis tombé sur une bonne publication sur Habré - PAL, GAL et un voyage dans le rétro numérique / Habr (habr.com) et j'ai pensé que mon cas pourrait intéresser ceux qui veulent comprendre comment il fonctionne réellement et qui ne croit pas que les rouleaux poussent dans le magasin, l'eau vient du robinet et l'électricité de la prise.