Muy bien gente,
Recientemente comencé a trabajar en el diseño de una placa única 8086 en mi tiempo libre para jugar (a falta de una palabra mejor, necesito experimentar la prisa de estar cerca del hardware de bajo nivel).
Tenía la intención de usar MRAM con capacidad para 35 ns como medio de almacenamiento (código de programa / RAM) principalmente como un experimento, pero también porque tengo algunos dispositivos sin soldadura. He comprobado las hojas de datos y el dispositivo (MR2A16A) lleva un tiempo compatible con SRAM, no especifica un máximo en sus tiempos de acceso, por lo que los pensamientos iniciales son intentarlo.
El problema es que, de acuerdo con la hoja de datos, el 8086 usa la línea READY como una señal para eliminar su bus (AD15-AD0) del estado de alta impedancia y leer los datos (o al menos, eso es lo que hago). m dado a creer). A continuación se muestra la sección detallada "Temporización del sistema - Modo mínimo". Se puede encontrar aquí en la página 12:
El ciclo de lectura comienza en T1 con la confirmación de la señal de habilitación de bloqueo de dirección (ALE). El borde posterior (bajo) de esta señal se utiliza para bloquear la información de la dirección, que es válida en el bus local en este momento, en el bloqueo de la dirección. El BHE # y A0 abordan los bytes bajo, alto o ambos. De T1 a T4, la señal M / IO # indica una operación de memoria o E / S. En T2, la dirección se elimina del bus local y el bus pasa a un estado de alta impedancia. La señal de control de lectura también se afirma en T2. La señal de lectura (RD #) hace que el dispositivo direccionado habilite sus controladores de bus de datos al bus local. Algún tiempo después, habrá datos válidos disponibles en el bus y el dispositivo direccionado dirigirá la línea LISTA ALTA. Cuando el procesador devuelve la señal de lectura a un nivel ALTO, el dispositivo direccionado volverá a establecer el estado de sus controladores de bus. Si se requiere un transceptor para almacenar el bus local del 8086, el 8086 proporciona las señales DT / R # y DEN #
Obviamente, ningún controlador de memoria en la actualidad se basará en una señal discreta que le indique cuándo han aparecido los datos. Su tiempo simplemente concuerda con la memoria. Como tal, este MRAM no tiene tal señal.
Para complicar aún más las cosas, los diagramas anteriores a la página 12 para ver ejemplos de las configuraciones de hardware de modo mínimo / máximo solo muestran LISTO usado por el reloj y la lógica del generador de reinicio, pero la memoria y el bus local no lo utilizan en absoluto.
Entonces, la pregunta final es: ¿es esta línea incluso necesaria para acceder a la memoria? ¿Estoy consiguiendo su función correcta? Por favor avise.