Proyecto simple de "Diseño informático"

4

Estoy tratando de aprender más sobre las profundidades del diseño de computadoras, estoy hablando de diseño de CPU. Hasta el muy bajo nivel de Organización de Computadoras.

Tomé unas cuantas clases de EE (hice un título de CS así que ...) en la universidad, pero fueron principalmente puertas de Introducción y Lógica (que entiendo). Sin embargo, nunca fue mucho más lejos que eso. No estoy buscando construir una computadora desde cero o algo así, pero cuál sería el punto de partida más SIMPLE para alguien interesado en esto. Estaba pensando que tal vez un sumador de 4 bits? ¿o algo similar? He hecho un poco de trabajo en electrónica, por lo que Soldering y los demás, conozco lo básico (y los componentes).

¿Ideas / sugerencias para un proyecto de introducción? ¿O alguna documentación sería muy útil? Algunas personas recomendaron este libro: Elementos de los sistemas informáticos

pero no sé cuánta "práctica" sería. Cuando hablo simple, estoy hablando de un simple sumador que usa LEDS para la salida o algo similar.

Estoy muy interesado en esto, pero no sé por dónde empezar. Tengo la tercera edición de Organización y diseño de computadoras, pero no tiene muchas cosas prácticas.

edit: la profundidad de mi conocimiento son básicamente puertas lógicas básicas, tendré que volver y refrescarme pero entiendo los agregadores y eso (virtualmente) pero no sabría cómo implementarlos en una placa de pruebas ( o cualquiera de las partes de hardware de la misma).

edit2: Tal vez algo similar a esto: enlace

    
pregunta Brian Carlton

4 respuestas

6

No estoy seguro de qué tan lejos quieres llegar con esto, pero me temo que puedes sentirte frustrado cuando descubres lo complejo que puede llegar a ser tu diseño si quieres que haga algo útil, sin importar lo agradable y completo que sea. se veía cuando empezaste.
Por lo tanto, he vuelto con la sugerencia de su pregunta anterior : el FPGA . Hay diseños de "procesadores de software" completos disponibles de forma gratuita, pero también puede crear los suyos propios, a partir de un sumador completo de 2 bits si lo desea. (Y eso es lo que quiere si aún tiene que aprender VHDL.) Cada fabricante de FPGA tiene placas de desarrollo para sus productos, y también hay placas de terceros, con una selección de periféricos a bordo. , como LEDs, LCD de caracteres, botones, etc.

    
respondido por el stevenvh
4

No llegarás muy lejos solo con las puertas, pero, por supuesto, vencerás al sumador, como mencionaste, a fin de asegurarte de que las combinaciones de puertas puedan realizar tareas más complicadas.

En cuanto a dónde ir desde allí, será más fácil para ti si comienzas a pensar las cosas de una manera más integrada que las meras puertas; En realidad, tendrá una mejor comprensión en la siguiente etapa pensando en términos de multiplexores, registros, búferes, unidades aritméticas, contadores y similares. No creo que nadie que solo entienda las puertas pueda ver la representación a nivel de la puerta de una CPU de 8 bits y saber de inmediato lo que hace.

Por lo tanto, el siguiente paso probablemente sería asumir la lógica secuencial y las máquinas de estado. Los controladores de ascensores y semáforos son dominios de problemas razonables para las máquinas de estado rectas personalizadas, aunque hoy en día, estos problemas casi con seguridad se resolverán con microcontroladores. Incluso una máquina de estados con problemas de juguete, como un controlador de semáforo, le dará una idea de los circuitos de control digital secuenciales.

Una vez que tenga confianza en la lógica secuencial, es un paso corto para darse cuenta de que puede conectar un grupo de registros, una ALU y algo de memoria, y luego construir una máquina de estados que pueda secuenciar operaciones para mover valores de datos entre ellos. Las primeras CPU de 8 bits no eran mucho más que esto. Algunas personas tienen éxito construyendo este nivel de dispositivo a partir de dispositivos 74xx MSI.

Más allá de ese punto, es casi seguro que sería mejor trabajar con FPGA y escribir VHDL, por dos razones. Una de las razones es que incluso al utilizar su propia CPU de 8 bits, encontrará que se trata de una cantidad excesiva de cableado, y que solo empeora a medida que aumenta la complejidad; se vuelve mucho tiempo y laborioso. La otra razón es que, con esa cantidad de cables, es probable que haya errores. Es mucho más rápido y fácil de editar y recompilar que re-cablear. Con un FPGA, podría asumir funciones de CPU más complicadas, como tuberías de instrucciones y unidades matemáticas de punto flotante, o agregar generación de video u otros periféricos complejos.

    
respondido por el JustJeff
4

Para la experiencia de "Hands One One" con lógica digital, quizás te interese alguno de estos proyectos:

  • dados electrónicos: un contador que cuenta rápidamente cuando se mantiene presionado el botón, luego se mantiene indefinidamente cuando se suelta el botón, algún circuito que enciende de 1 a 6 LED en cada una de las caras de dados simuladas (requiere 7 LED por cara), y algunas puertas que se traducen de una a la otra.
  • semáforos en miniatura: 4 LED rojos, 4 verdes y 4 azules (para cada una de las 4 direcciones), con un contador digital como temporizador. Opcional complejidad adicional: botones "empujar para caminar".
  • miniatura abridor de garaje : interruptores de límite en la parte superior e inferior; Sensor de haz de luz para detectar cosas de pie en la puerta; un botón en la pared para que la gente le diga que se mueva; y un motor que empuja la puerta hacia arriba o hacia abajo.
  • cerradura electrónica: 5 o más botones en la parte superior; tira del solenoide (durante medio segundo) desbloqueando la caja solo cuando se introduce la combinación correcta. Compleja complejidad adicional: permite cambiar la combinación presionando solo los botones, sin volver a cablear físicamente.

Usted podría construir cualquiera de estos proyectos en una placa de pruebas, a partir de puertas lógicas discretas (es decir, chips de la serie 4000 o chips de la serie 74HC00), algunos LED y sus resistencias de límite de corriente, una fuente de alimentación de 5 V y un oscilador.

"Diseño de microprocesador" es un borrador de un libro sobre cómo diseñar microprocesadores a partir de elementos como agregadores, FSMs , tablas de búsqueda, etc.

"Circuitos digitales" es un borrador de un libro que trata sobre cómo crear agregadores, FSM, tablas de búsqueda, etc. fuera de las puertas lógicas digitales individuales.

En principio, esos Wikilibros deberían explicar cómo construir dichos proyectos. ¿Podrían ayudarnos a encontrar y corregir cualquier brecha que deje de lado algunos detalles críticos?

    
respondido por el davidcary
0

Otra sugerencia sería simular los circuitos. Estoy un poco fuera del estado actual, pero creo que podría descargar simuladores de circuitos digitales de forma gratuita (o al menos a un costo menor). Una vez que ganaste la confianza de uno o unos pocos circuitos físicos reales, comienza a ser tedioso soldar cosas juntos. En la simulación, la soldadura se convierte en simplemente trazar líneas entre los componentes. Tal vez alguien con más conocimientos pueda sugerir uno o unos pocos paquetes de software?

Este es un ejemplo temprano de un simulador: enlace

    
respondido por el ghellquist

Lea otras preguntas en las etiquetas