Diseño de memoria con 4 IC de 256K X 1 bit a un Z80

0

Tengo un par de IC de memoria por ahí (16 de ellos) que me gustaría usar en mi proyecto Z80 de Homebrew. Estos circuitos integrados fueron producidos por Samsung en 1988, el KM41256A 256K x 1 bit. Me doy cuenta de que no puedo conectarlos todos ya que el Z80 no puede manejar más de 64K y todavía me gustaría una rom y algo de IO.

Sin embargo, pensé que usaría 4 de ellos para crear 16K, lo que parece suficiente para una configuración de prueba. Sé que necesitaría un decodificador de línea para los pines de selección de chip, pero no sé cómo abordar esto.

Mis preguntas:

  1. Primero y para la mayoría, ¿sería posible usar estos chips? O ¿Necesito chips con una palabra igual al ancho de datos de mi Z80? (seguramente esto no puede ser cierto?).
  2. ¿Cuántas líneas de dirección necesitaría para abordar 16K de memoria?
  3. ¿Qué decodificador de línea necesitaría de 2 a ...?

Espero haber formulado las preguntas de manera que sean comprensibles. Soy completamente nuevo en este tipo de diseño. He intentado leer en línea tanto como pude, pero estos asuntos me dejaron confundido.

Gracias.

    
pregunta Thomas Cremers

2 respuestas

1

Estos chips de 256K x 1 tienen solo 1 bit de ancho. Con cuatro de ellos solo obtendrías 1 mordisco a la vez, y el Z80 no hace datos de 4 bits.

Es posible usarlos, pero no es lo que yo llamaría práctico, y tomaría más de 8 chips, a menos que quieras usar un FPGA para hacer un controlador de RAM. Usted necesita un controlador de todos modos, para generar su tiempo dinámico de RAM. Pero concentrémonos en simples operaciones de lectura / escritura.

Necesita, como mínimo, un multiplexor 2x1 de 9 canales para las direcciones. También necesita algunos retrasos para generar las luces estroboscópicas RAS y CAS. Con un solo 41256 puede producir una memoria RAM de 32K x 8, usando el modo de página. Utilizando los 15 bits de dirección superiores como la dirección de 32 K y las 3 lbs. De la dirección para proporcionar los 8 bits de datos, realizaría un modo de página de lectura o escritura, luego paso a través de las 3 direcciones de datos para leer o escribir secuencialmente los 8 bits de datos en o desde la memoria RAM. El tiempo de ciclo del modo de página toma de 100 a 150 nseg / ciclo, dependiendo de la velocidad de su chip, por lo que un solo ciclo de lectura o escritura tomaría del orden de 1 a 1.5 usec.

El recuento de fichas sería algo así como: 2 ea. 74HC157 2-1 mpx (aunque esto lo restringiría a un equivalente de 16k), 1 ea 74HC374 para las direcciones RAS, 2 ea 74HC161 para las direcciones CAS, 1 ea. 74HC161 para el contador de bits de datos, 1 ea 74HC151 8-1 mpx para escribir datos, 1 ea 74HC374 como registro de desplazamiento de lectura para almacenar los datos de salida antes de enviarlos al Z80, y un 74HC244 / 245 para enviar los datos al Z80 bus de datos. Además de algunos más para la lógica del pegamento, en una conjetura. Eso es un mínimo de aproximadamente 11 fichas. Además, suponiendo que esté utilizando un Z80 de 8 MHz, funcionará a un equivalente de aproximadamente un chip de 2 MHz. Toda la memoria que lea y escriba tomará mucho tiempo.

Por supuesto, puede acelerar las cosas utilizando 4 de ellas con un ciclo de lectura o escritura de dos etapas sin casi pérdida de velocidad.

Lo que realmente necesitas hacer es usar 8. Luego tienes una buena combinación entre tu CPU y tu memoria, y deberías poder obtener una velocidad decente y un número mínimo de chips.

    
respondido por el WhatRoughBeast
0

¡Como un experto en MOS Tech 6502, habrías sido el enemigo a principios de los 80! ;-) Si recuerdo bien, la memoria del Z80 eran chips dinámicos de RAM. Así que necesitas actualizar las filas cada tantos milisegundos y necesitas un chip especial para hacerlo. No estoy seguro si necesita un número par de líneas de dirección (fila + columna) per se para hacerlo. 16k (tenga en cuenta que la letra minúscula k para kilo, K es para Kelvin) es 2 ^ 14, entonces 7 filas y 7 columnas para escanear y tiene sus Nibbles (medio byte). Debe ir a 8 + 8 = 16 y 2 ^ 16 = 64k Nibbles para cubrir 16k Bytes. O 7 + 8 y 2 ^ 15 = 32k Nibbles si se permiten filas / columnas desiguales. Dada la velocidad de los chips modernos, puede multiplexar dos Nibbles en un byte, pero necesita hacer eso bidireccional (R / W). Esto puede volverse complejo y no realmente un ahorro de espacio. Así que apostaría por el enfoque de 8 chips como lo sugiere Brian.

PS. Para el 6502 utilizamos memoria estática. Más fácil de usar pero más caro :-)

    
respondido por el Carlo

Lea otras preguntas en las etiquetas