Tengo un problema para entender el siguiente esquema, específicamente la sección "Glue Logic (Memory Decoding)" en la mitad inferior central:
Esta es una computadora de tablero simple basada en una CPU 6502 con RAM, ROM y un D-Latch que sirve como IO (visto en la esquina inferior derecha que controla un solo LED). El mapa de memoria es
La única señal que no entiendo es /RAMSEL. Como se muestra en el esquema, A15 y A14 se utilizan para direccionar los tres chips (U2, U3 y U7). /RAMSEL alimenta a /CE (habilitación de chip) del chip de RAM (U3) que está activo en nivel bajo, por lo que si quiero leer o escribir desde la RAM, /RAMSEL tiene que estar en nivel bajo (0).
Supongamos que quiero leer el valor ubicado en $ 1000 en RAM (por ejemplo, LDA $ 1000 en el ensamblaje 6502). Espero que el bus de direcciones sea de $ 1000, que en binario es b0001000000000000. Como se puede ver, las señales A15 y A14 son bajas (0), lo que hace que /RAMSEL sea alto (1) a través de la lógica de pegado. Por lo tanto, la señal en /CE es alta, lo que hace que el chip RAM no se pueda leer, ya que estará en modo de alta impedancia.
Por otro lado, si quiero leer desde una ubicación de ROM diga $F000/b1111000000000000, A15 y A14 son altos (1) y a través de la lógica de pegamento /ROMSEL será bajo (0) (para que el chip de ROM se pueda leer ya que su pin /CE es bajo) y /RAMSEL será alto(1) haciéndolo ilegible. Lo mismo se aplica a la señal IOSEL.
Entonces, según entiendo este esquema, las señales para leer/escribir en ROM y E/S funcionan bien, pero no para el chip de RAM. ¿Estoy leyendo mal la lógica del pegamento?
EDITAR: este esquema está tomado de este libro , en caso de que se lo pregunte.
Tiene razón, /RAMSEL es incorrecto para el mapa de memoria dado. U5B debe ser una puerta OR.
En lugar de líneas de dirección, la salida de U5-A y la salida de U5-C deben alimentarse a U5-B para obtener la selección de RAM adecuada sin usar otro chip o puerta. (Romselect NAND ioselect = ram seleccionar)
Glacial
koala
usuario_1818839