Ternary Logic: a “spacecraft” to explore it.

manifestoCorretto Maker Faire

The figure above shows the manifest realized for Maker Faire Rome 12-14 October 2018

This project, in collaboration with Claudio La Rosa, has been selected to take part to the Maker Faire Rome 12-14 October 2018 and aims to provide an instrument to explore, what we call, the “galaxy” of Ternary Logic. It consists of two parts: an hardware one and a software one. Everything started from my previous posts:

  • appunti-logica-ternaria
  • monadic-and-diadic-ternary-logic-simulation-results

As known, in the BINARY system all the logic functions are in total:

  • Monadics : 2 ^2 = 4
  • Diadics:      2 ^ 4 = 16

Out of the four monadic functions, only two of them give rise to usable logical components: NOT and BUFFER. Six of diadic functions give rise to elementary logical components that can be used in the design of logic boards: AND, NAND, OR, NOR, XOR, XNOR.

 Things are slightly different in the TERNARY system:

  • Monadics : 3 ^ 3 = 27.
  • Diadics:      3 ^ 9 = 19’683   (an incredibly high number)

We believe that no one has ever ventured into the complete exploration of such a large number of diadic functions (diadic gates), also due to the lack, to date, of logical components that are able to work on three levels. In this galaxy of possible components, the majority of them, have neither a symbol nor a name, so I decided to make two boards that can be interfaced with Arduino or Raspberry that allow you  to explore, through the use of an oscilloscope:

  • all twenty-seven logic ternary gates with an Input and one Output;
  • all twenty thousand gates with two Inputs and one Output.

Each of the two boards consists of a “single universal programmable ternary logic gate”, obtained through the use of the DG403 component which realizes a mux 3: 1 for monadics and a mux 9: 1 for the diadics as well as the appropriate Trit generators (ternary variables). By programming, from time to time, the truth table of the muxes you can get all the logic gates mentioned above. Finally, by appropriately programming the Input Ternary Signals it is possible to display and study the output waveforms from which to obtain useful information on a possible use thereof in the future design of circuits boards in ternary logic.

 

IMG-20180712-WA0002

“All Ternary Monadic Functions Generator” Board with raspberry Board

This project was born at the end of my 31 years career as a Professor of Computer Science at the Technical Institute “Ercolino Scalfaro” of Catanzaro and I dedicate it to all my former students and all the people who have appreciated me  and / or have worked with me at any level . Many thanks to all!

Finally, a special dedication in memory of four people. Two very good students who left us prematurely and two special people for me:

  • Rotundo Salvatore, just graduated in engineering at the University of Cosenza;
  • Gregorio Cosentino, he lacked the sole discussion of the thesis at the University of Pisa (he was awarded the posthumous degree in Engineering);
  • Luigi Rodomonte;
  • Pino Rizzitano.

 

Versione in Italiano:

Logica Ternaria: una “navicella” per esplorarla.

La prima figura mostra il Manifesto realizzato per il Maker Faire di Roma del 12-14 Ottobre 2018.

Questo progetto, in collaborazione con Claudio La Rosa, è stato selezionato per prendere parte alla Maker Faire Roma dal 12 al 14 ottobre 2018 e ha lo scopo di fornire uno strumento ( una “navicella” ) per esplorare, quella che noi chiamiamo la “galassia” della Logica Ternaria. Consta di due parti: una hardware e una software. Tutto ha preso le mosse dai miei post precedenti:

  • appunti-logica-Ternaria
  • monadic-and-diadic-ternary-logic-simulation-results

Come noto, nel sistema BINARIO tutte le funzioni logiche sono in totale:

  • Monadiche:  2 ^ 2 = 4
  • Diadiche: 2 ^ 4 = 16

Tra le quattro funzioni monadiche, solo due di esse danno vita a componenti logici utilizzabili: NOT e BUFFER e solo sei delle funzioni diadiche danno luogo a componenti logici elementari che possono essere utilizzati nella progettazione di schede logiche: AND, NAND, OR, NOR, XOR, XNOR.

Le cose, nel sistema TERNARIO, stanno così:

  • Monadiche: 3 ^ 3 = 27.
  • Diadicche: 3 ^ 9 = 19’683 (un numero incredibilmente alto)

Crediamo che nessuno si sia mai avventurato nell’esplorazione completa di un così grande numero di funzioni diadiche ( porte diadiche ), anche a causa della mancanza, ad oggi, di componenti  in grado di operare su tre livelli. In questa galassia di componenti possibili, la maggior parte di essi, non hanno né un simbolo né un nome, quindi abbiamo deciso di creare due schede che possono essere interfacciate con Arduino o Raspberry e che consentono di esplorare, attraverso l’uso di un oscilloscopio:

  • tutte le ventisette porte logiche ternarie con un ingresso ed una uscita;
  • tutte le ventimila porte con due ingressi e una uscita.

Ciascuna delle due schede realizza una “singola porta logica ternaria universale programmabile”, ottenuta attraverso l’uso del componente DG403 che realizza un Mux 3: 1 per le monadiche e un Mux 9: 1 per le diadiche, oltre agli appropriati generatori di Trit (variabili ternarie). Programmando, di volta in volta, la tabella di verità dei Mux è possibile ottenere tutte le porte logiche sopra menzionate. Infine, programmando opportunamente i segnali Ternari di ingresso è possibile visualizzare e studiare le forme d’onda di uscita, dalle quali ottenere informazioni utili per un possibile utilizzo di esse nella progettazione futura di schede circuitali in logica ternaria.

La seconda figura mostra la  mia scheda “All Ternary Monadic Functions Generator” collegata ad un Raspberry.

Questo progetto è nato nell’anno della fine della mia carriera ( 31 anni ) come professore di Informatica presso l’Istituto Tecnico settore Tecnologico “Ercolino Scalfaro” di Catanzaro e lo dedico a tutti i miei ex studenti ( migliaia? ) e a tutte le persone che mi hanno voluto bene e/o hanno collaborato con me ad ogni livello. Grazie di cuore a tutti!

Infine, una dedica particolare in memoria di quattro persone. Due bravissimi studenti che ci hanno lasciato prematuramente e due persone per me speciali:

  • Rotundo Salvatore, appena laureato in ingegneria all’ università di Cosenza ;
  • Gregorio Cosentino, gli mancava la sola discussione della tesi all’università di Pisa    ( gli è stata assegnata la laurea postuma in Ingegneria );
  • Luigi Rodomonte;
  • Pino Rizzitano.
Advertisements

G3TR Transistor Tester on Arduino-DUE

This little work is in memory of a great man, who honored me with his friendship: Pino Rizzitano.

Rizzitano_by_Caroleo

This is the Arduino-DUE version of my G3TR Transistor Tester that everyone can easily build (DIY). All components required, apart an Arduino-Due board, are just two 10K resistors and a microswitch. I’ve made two different versions of the software to experiment with the SAM3X8E hardware:

  • In the first one I use the  direct  ARM processor registers manipulation. So, each register is accessed  by an “unsigned long” pointer and I gain the complete control of ARM processor hardware registers ( using C language ): g3trDue.
  • In the second one  I use the software drivers provided by Atmel: g3trDriverDue .

Anyway, in both versions, the Arduino IDE is just used to compile and upload the sketch to the board.

G3TR Transistor Tester

G3TR Transistor Tester