Décodeur HEX pour indicateur LED à 2 chiffres à 7 segments sur un (!) GAL16V8

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: ?

/ 7- LED-   — A , D , , — . 





, ( )   , 4- — ƒ(A,B,C,D):





    .   MS Excel, «» , ( ).





, ,  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-, , — ): 





Dispositif simplifié de microcircuits GAL par l'exemple d'un hypothétique microcircuit GAL4V1
GAL GAL4V1

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.








All Articles