Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

1
voti

Calcolatore Elettronico Ternario

Da alcuni anni mi sono appassionato all'idea di poter realizzare un calcolatore elettronico basato non più sulla logica binaria ma su quella ternaria sfruttando appunto tre livelli logici -1, 0, 1 ovvero il trit.

Ho realizzato inizialmente un prototipo di calcolatore elettronico ternario, più dettagliatamente un sommatore ternario bilanciato che permette quindi di eseguire operazioni di somma e sottrazione con segno su 4 trit.

E' costituito da una memoria ternaria a 8 trit realizzata con Flip-Flop D-latch ternari, 3 sommatori Full-Adder ed un sommatore Half-Adder ternari, ed infine da un decodificatore ternario che consente di visualizzare gliaddendi dell'operazione (4 trit + 4 trit) ed il risultato (5 trit) su LED. La gestione della tastiera (1 cifra ternaria), l'abilitazione della memoria e del decodificatore è gestita tramite un microcontrollore PIC16F628A.

Successivamente ho costruito una unità di calcolo ternario bilanciato (TBCU) interfacciata al PC attraverso un protocollo seriale. Tale unità consente di eseguire addizioni e sottrazioni con segno di numeri rappresentati su tre livelli (1, 0, -1) ed è dotata di un sommatore in grado di gestire due addendi da quattro trit ciascunoe di una memoria da otto trit.

Dato che ogni addendo è costituito da quattro trit il sommatore realizzato con un Half-Adder e con tre Full-Adder può elaborare numeri che vanno da -1-1-1-1 a 1111 (da -40 a 40 decimali) e dare un risultato da -10001 a 1000-1 (da -80 a 80 decimali).
D'ora in avanti per comodità indicheremo -1 come 2.
Per tale motivo il PC trasmette all'unità TBC per ogni addendo due numeri di cui il primo costituisce la quantità di quarantine in cui è scomposto l'addendo ed il secondo il resto della differrenza tra il valore dell'addendo e la quantità di quarantine in cui è scomposto quest'ultimo.

ADD1 = n40 * 40 + R1 dove R 1 = ADD1 – n40 * 40
ADD2 = n40 * 40 + R2 dove R 2 = ADD2 – n40 * 40
Una volta ricevuti i quattro numeri costituendi gli addendi, l'unità ternaria esegue la somma rispettivamente delle quantità di quarantine e dei resti e la restituisce al PC.
Ad esempio volendo sommare 85 + 41 saranno trasmessi 0012, 0122 da sommare a 0001, 0001 ottenendo in ricezione 00010, 00120.
La memoria realizzata da otto flip-flop D latch ternari immagazzina i due addendi da presentare al sommatore. Come abbiamo accennato all'inizio il PC comunica con l'unità TBC attraverso un protocollo seriale UART percui l'informazione viaggia in pacchetti di byte. Da qui nasce l'esigenza di codificare il numero ternario da 2222 a 1111 attraverso gli otto bit di ogni singolo pacchetto, quindi per ogni trit sono necessari due bit comesegue: 0 <=> 00, 1 <=> 01, 2 <=> 10
Nell'esempio precedente 0012 è codificato in un byte come 00.00.01.10.
0122 è codificato in un byte come 00.01.10.10.
Il risultato all'uscita del sommatore è su cinque trit quindi necessita di una codifica su due byte:
00010 è trasmesso come 00.00.00.00 00.00.00.10
00122 è trasmesso come 00.00.00.00 00.01.10.10

Schema blocchi.JPG

Schema blocchi.JPG

Struttura memoria e sommatori.JPG

Struttura memoria e sommatori.JPG

VIDEO DESCRITTIVO https://youtu.be/

1

Commenti e note

Inserisci un commento

di ,

Interesante!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.