SAP-1/8 Ordenador de bit MAR / RAM [cerrado]

-5

Estoy buscando desarrollar mi propia computadora de 8 bits con un conjunto de instrucciones realmente básicas.

Sin embargo, no sé cuál es el mejor IC para poder realizar este trabajo.

¿Puedo utilizar un Arduino para actuar como el Registro de direcciones de memoria / RAM para guardar las instrucciones? O tal vez un ATTiny, o hay mejores maneras?

    
pregunta Jacob Clark

1 respuesta

1

Hacerlo con un microcontrolador "se siente" mal: ¡es mejor que programes el microcontrolador! Si está construyendo su propia computadora para fines de aprendizaje, hay dos enfoques básicos:

1) Lógica discreta de la serie 74. Puede obtener una ALU: enlace y algunos flip-flops . Este enfoque es práctico y se puede depurar (lentamente) con una sonda lógica o un multímetro básico. También implicará una gran cantidad de cableado. Las partes están efectivamente obsoletas pero todavía parecen estar disponibles.

RAM discreta: la búsqueda parametrizada por digikey sugiere esta SRAM de 32 Kbytes , buena para Velocidad de unos pocos MHz. (Nota: no intente la lógica digital de alta velocidad en placas de pruebas; es probable que cualquier problema por encima de 1MHz tenga problemas).

Registro / contador del programa: flip-flops

Programación (en orden de autenticidad / esfuerzo): alternar manualmente con un conjunto de interruptores; o construir una pequeña ROM a partir de diodos; o construir un cargador de papel o cinta magnética; o programar una EPROM; u obtener un Arduino para llenar previamente la SRAM.

2) Use un FPGA y escríbalo en Verilog o VHDL. Esto enfoca el esfuerzo en el lado de "diseño" en lugar del lado de "construcción", y se puede simular más fácilmente en una PC para validar su diseño. Es mucho, mucho más flexible. El único inconveniente es que el resultado sigue siendo un blob negro, aunque uno en el que se entienden los aspectos internos.

Para este caso, podría programarlo más fácilmente incrustando una imagen ROM, y usar la RAM interna de bloques del FPGA.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas