Mini PC desarrollada en lógica discreta

Yo había visto ese proyecto hace años ¿apoco tú lo desarrollaste?

Me parece increíble hacer eso en lógica combinatoria, de por si es difícil hacerlo en un microcontrolador.
Felicidades
Todo comenzó allá por el 2006, hubo más complicaciones que alegrías. Pero valió la pena no haberle prendido fuego jeje.
Éste proyecto utiliza aproximadamente 212 CIs.(incluidos todos los periféricos)

Hablando de microcontroladores, tengo la idea de armar algo en 32bits usando muchos uC y varias FPGA, ya que hacerlo con lógica discreta sería una locura.

Cómo mejora al diseño, sería que corra un bios, añadir un kernel por hardware, la posibilidad de tener interrupciones, agregar un procesador exclusivo para la ALU, ya que en ésta, lo hace a través de software haciendo un llamado a una rutina en una pequeña región de memoria y por último que pueda manejar una salida VGA.
Muchas gracias compañero!!!
 
Última edición:
Fascinante.
¿Como diseñaste el cpu o te pasaste en un cpu comercial.?

Tengo muchas dudas una vez intenté hacer una computadora con un z80 iba bastante bien hasta que mi laptop se le daño el disco duro y mi grabador de memoria y mis programas se perdieron para siempre.

Muchas felicidades.
Que gran proyecto
 
Honestamente! No sé cómo trabaja un CPU comercial.:LOL:
Te cuento cómo surgió todo.
Una vez intentaba hacer un secuenciador de luces. Cargaba una animación en una RAM. Y luego se ejecutaba cíclicamente con la ayuda de un contador. Parece complicado, pero era simple.
Pero buscaba la forma de poder modificar la secuencia, según el tipo de ritmo de música. Ya que usaba un micrófono electret cómo sincro.
Entonces empecé a usar contadores preseteables, y ahí surgió la idea de que si ejecutaba un programa cualquiera, podría realizar un salto debido a algún evento.
Éste CPU, utiliza contadores preseteables que direccionan la memoria de programa. Creo que cómo lo haría cualquier procesador. Y un comparador de bits se encarga de realizar los saltos enviando un pulso de LOAD a los contadores. Cómo el sistema es de 8bits y el bus es de 15bits tengo que realizar en dos pasos la carga de dirección en un salto de programa. Lo mismo ocurre para direccionar la RAM. Utiliza 11 bits de dirección para manejar los 2KB en una 6116. Y prácticamente se necesitan dos pasos para hacer las acciones, haciendo lento y tedioso el software.
Gracias nuevamente por el elogio.
una vez intenté hacer una computadora con un z80 iba bastante bien hasta que mi laptop se le daño el disco duro y mi grabador de memoria y mis programas se perdieron para siempre.
Puedes retomar porque no? Estaría bueno hacer aportes entre todos los interesados, para armar algo experimental.
 
Última edición:
Fíjate que ando en eso , acabo de construir una matriz de LEDS gigante para las luces navideñas y de año nuevo.
Por andar buscando piezas y herramientas me di cuenta que tengo muchos buffers con latch sin latch contadores, memorias hy6264 Uv eproms y varios z80 y como 6 protoboards.
Hace como 4 o 5 años Vi el vídeo de esa cpu pero no pensé que un día intercambiaria diálogo con el autor .

Hace años igual pensé en un sistema lógico basado en memorias y contadores para guardar audio y reproducirlo con un DAC pero lo recicle y se perdió.
1546294360357894340783.jpg

Repito no lo continue y se perdió mucho del software y varios periféricos los términe reciclando.

A ver si lo continuamos en la comunidad solo por hobby.
 
Está excelente el tema audio con DAC.
Yo armé un ADC a 8bits para guardar el audio en RAM basado en las 61256 recicladas de varias mothers, para luego migrar a baja velocidad a una 27C010.
Lograba un minuto y medio aproximadamente de reproducción de audio.
Pensaba en comprimir el audio, algo similar a lo que hace el MP3. La idea original es tomar dos muestras y almacenar la diferencia entre ellas, así se ganaría mucho espacio.
 
Última edición:
Tengo una duda construiste el cpu basándote en los esquemas de un cpu teórico como en los libros de lógica digital y el micro código creaste los nemonicos propios?
Tantas dudas suena fascinante el proyecto. e
Hola compañero, que tal? no me base en ninguna arquitectura.
El desarrollo teórico lo empecé allá por el año 1998. Y todo quedó ahí varios años, hasta que empecé la construcción en el 2004-2005 aprox. En el 2007, armé el 70% e hice las primeras pruebas. Consistía en contar una variable en un bucle y mostrar dicha cuenta en uno de los puertos. Luego volvió a quedar abandonado todo, y retomé al año siguiente.
A partir de ahí comencé con el desarrollo de la placa de vídeo. Teniendo algo dónde poder "ver", comencé a desarrollar el compilador.
Básicamente, es un programa que me permite, escribir en código alfanumérico, sin necesidad de escribír todo en 0s y 1s. Además tiene un pequeño procesador de texto. Ya que por ejem. No me permite ingresar un número mayor a 255. O ingresar un microcódigo inexistente. Cómo lo muestra uno de los vídeos, que compartí.
Los micro códigos, los cree en función de la necesidad y el hardware que iba tomando forma. Y a medida que añadía hardware, necesitaba añadir más microcódigos, para poder controlar el nuevo hardware.

Respecto a la organización del programa de firmware. Posee dos memorias 27C256 trabajando en paralelo. A partir de la dirección 0/42 que es la forma en que la designé. La primer parte(cero), corresponde a los primeros 8bits de menor peso LSB.
La 2da. Parte al MSB, respectivamente, es decir el número 42.
Retomando, a partir de ésta dirección. Se escribieron todas las funciones que son llamadas por el programa que se está corriendo (que comienza desde la dirección 0/0 en adelante.)
Contiene funciones cómo CLS(Borrado completo de pantalla) ésto debe hacerse cada vez que se enciende el sistema, pues porque la RAM de vídeo tiene obviamente datos aleatorios, que de lo contrario mostraría un cielo estrellado jeje.
También contiene una función que gestiona la tarjeta de sonidos monofónico.
Debo escribir en dos registros específicos la duración y fcia. de la nota, antes de hacer el llamado a ésta función.
Luego otra función, que me convierte, un número binario de 16 bits en BCD de cinco dígitos.
Luego con otra función a la cuál hago el llamado me permite mostrar en pantalla ese número.
En dónde hago éste uso de función es en el inicio del sistema cuándo chequea la RAM.
Y por último, una función que me permite escribir texto en pantalla.
Consiste en escribir en hasta ocho registros consecutivos, valores numéricos que representan caracteres alfanuméricos, que va desde el cero hasta la Zeta, pasando por caracteres especiales cómo, punto, coma, barra, etc.
Obtenido todo ésto, ya me permite escribir el programa principal. Sólo debo hacer el llamado a la función necesaria cada vez que la necesite, y listo.
En la medida que pueda, subo fotos del resto del sistema. Y gracias por el interés!
 
Última edición:
Admirable, lo que me causa curiosidad.
¿Cuál es la necesidad de hacer un pcb a mano alzada?
Esa es una buena pregunta!
Me resulta complicado hacer un PCB en doble faz por software y lograr que coincidan todos los holes.
Además de que hacer la transferencia por plancha, muchas veces las pistas delgadas se discontinuan o quedan restos entre ellas cuándo la distancia es menor a .5mm.
 
Última edición:
¡ Admirable tu paciencia ! :oops:

Ese método de trazado es similar al que empleaba yo, cuando hacía cosas, :rolleyes:
Cargaba una lapicera Rotring del trazo necesario al momento con pintura sintética muy diluida, y a trabajar ;)

15701al15718-Estilógrafo-Isograph-rotring-min-393x295.jpg
 
Atrás
Arriba