1 votos

Sugerencias para las piezas informáticas ternarias

Estoy pensando en crear un ordenador ternario desde cero, más que nada como proyecto de hobby, ¿hay alguna pieza por ahí que pueda utilizar? ¿O tendría que crearlas desde cero? Si es así, ¿cuál sería un buen método?

Estaba pensando en un sistema ternario equilibrado, muy parecido al Setun de Nikolay Brusentsov. Estoy familiarizado con VHDL y estoy bastante familiarizado con la lógica binaria. Tenía la esperanza de evitar el uso de componentes digitales, tales como FPGAs y hacer un ordenador puramente ternario, así que estaba pensando más en lo que utilizar una unidades lógicas, en lugar de transistores.

3voto

Jun Puntos 55

Un PMOS sobre un NMOS funcionaría como un inversor ternario si la tensión de alimentación es baja (ligeramente superior a la tensión umbral):

schematic

simular este circuito - Esquema creado con CircuitLab

A una entrada de -0,5V, la salida se elevará en M2 a 0,5V.
A la entrada de 0V, ambos transistores estarán "apagados" y las resistencias llevarán la salida a 0V.
A la entrada de 0,5V, M2 se apagará y M1 se encenderá llevando la salida a -0,5V.

Un NOR ternario podría ser este:

schematic

simular este circuito

Tabla de la verdad:

00 0
0+ -
0- +
+- 0
++ -
-- +

Una NAND ternaria podría ser esto:

schematic

simular este circuito

Tabla de la verdad:

00 0
0+ 0
0- 0
+- 0
-- +
++ -

Supongo que se podrían hacer puertas ternarias más complicadas basándose en principios similares.

Es interesante señalar que una de las principales desventajas de esta topología es la pérdida de velocidad debido a los tiempos de asentamiento RC, donde la C es la capacitancia inherente de los transistores. Una posible ventaja de esto puede ser el bajo voltaje requerido y, por tanto, el bajo consumo de los circuitos.

0voto

WhatRoughBeast Puntos 20870

No vas a encontrar ninguna lógica preparada. Sin embargo, puedes construir tu propia lógica utilizando una FPGA. Yo intentaría mapear 2 bits binarios a un solo bit ternario mapeando 11 a 1, 10 o 01 a desconocido, y 00 a 0. Luego definirías tus operaciones lógicas ternarias en conjuntos de estos dos bits. Asimismo, por ejemplo, podrías utilizar la memoria existente a la mitad de la anchura de los datos, es decir, una RAM de 8 bits de ancho se utilizaría como una RAM ternaria de 4 bits de ancho, etc. Para el proceso de diseño necesitarás dominar el lenguaje VHDL, o si lo deseas puedes obtener una opción de entrada de esquemas para el diseño de FPGAs.

0voto

Did Puntos 1

Estoy desenterrando un post muy antiguo, pero mi respuesta fue comparadores de tensión (no comparadores binarios). Mi proyecto hasta ahora está documentado en https://hackaday.io/project/6284-tern-physical-implementations-of-ternary-logic

0voto

Parik Puntos 1

Recientemente he realizado un prototipo de calculadora electrónica equilibrada ternaria (TBEC) basada en tres niveles locgicos -1, 0, 1 (trit). Consiste en una memoria ternaria de 8 trit hecha con Flip-Flop D-latch ternario, 3 Full-Adder ternarios y un Half-Adder ternario, y finalmente por un decodificador ternario que permite ver los addenda de la operación (4 trit + 4 trit) y el resultado (5 trit) en LEDs. La gestión del teclado (1 dígito ternario), la habilitación de la memoria y el decodificador se gestionan a través de un microcontrolador PIC. El dispositivo se esquematiza en la siguiente figura:

enter image description here

Más tarde mejoré el proyecto interconectando el TBEC con un PC común. Como se ha dicho anteriormente, cada sumando está formado por 4 trit, por lo que la Calculadora puede procesar números que van desde -1-1-1-1 hasta 1111 (-40 a 40 decimales) y dar un resultado desde -10001 hasta 1000-1 (-80 a 80 decimales). A partir de ahora, por comodidad, denotaremos -1 como 2.

Por ello, el PC transmite a la unidad TBEC para cada sumando dos números, el primero de los cuales constituye la cantidad de cuarentenas en que se descompone el sumando y el segundo el resto de la diferencia entre el valor del sumando y la cantidad de cuarentenas en que se descompone este último

ADD1 = n40 * 40 + R1
ADD2 = n40 * 40 + R2
Donde R 1= ADD1 - n40 * 40
R 2= ADD2 - n40 * 40

Una vez recibidos los cuatro números que constituyen la adenda, la unidad ternaria realiza la suma, respectivamente, de las cantidades de cuarentena y los restos y la devuelve al PC. Por ejemplo, si se quiere sumar 85 + 41, se transmitirá 0012, 0122 para sumarlo a 0001, 0001, obteniendo 00010, 00120 en recepción.

La memoria formada por ocho flip-flops ternarios D latch almacena las dos sumas que se presentarán al sumador.

Como decíamos al principio, el PC se comunica con la unidad TBEC a través de un protocolo serie UART, por lo que la información viaja en paquetes de bytes. De ahí la necesidad de codificar el número ternario del 2222 al 1111 a través de los ocho bits de cada paquete individual, por lo que se requieren dos bits para cada trit de la siguiente manera: 0 <=> 00, 1 <=> 01, 2 <= > 10

En el ejemplo anterior, 0012 se codifica en un byte como 00.00.01.10. 0122 se codifica en un byte como 00.01.10.10

El resultado a la salida del sumador está en cinco trit por lo que necesita una codificación en dos bytes: 00010 se transmite como 00.00.00.00 00.00.00.10 00122 se transmite como 00.00.00.00 00.01.10.10

enter image description here enter image description here

VIDEO DE YOUTUBE https://youtu.be/PmED4PfKZgc

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X