320 likes | 474 Views
DISEÑO DE MEMORIA. ESPECIFICACIONES. Se correrá un programa con las siguientes especificaciones: Se conectará a un procesador 8086 CS se inicializará con la dirección E000H DS se inicializará con la dirección 2000H
E N D
ESPECIFICACIONES • Se correrá un programa con las siguientes especificaciones: • Se conectará a un procesador 8086 • CS se inicializará con la dirección E000H • DS se inicializará con la dirección 2000H • SS se inicializará en la dirección 1000H y tendrá una profundidad de 100 Bytes. • No se utilizará el segmento extra.
DISEÑO DE LA RAM PARA DS • Memoria semiconductora disponible. • Líneas de dirección (A0 a A10). • Se ubicará en la dirección física 20000H. • Se necesitan de 2 memorias para formar los 16 bits. • Las líneas de OE y WE será comunes a las dos memorias.
A10…A0 WR RD CS_DS_RAM D15…D8 D7…D0 DISEÑO DE LA RAM PARA DS D E C O D I F I C A D O R A11 … A19
A19 A18 A17 A16 A15 A14 A13 A12 A11 0 0 1 0 0 0 0 0 0 1 15 A17 Y 0 A 2 A16 14 Y 1 B A15 3 13 C Y 2 12 A14 Y 3 11 CS_DS_RAM A13 Y 4 6 10 Y 5 G 1 A12 4 9 A18 Y 6 G 2 A A11 5 7 A19 Y 7 G 2 B 74 LS 138 DISEÑO DEL DECODIFICADOR DEL DS
DISEÑO DE LA RAM PARA SS • SS inicia en la dirección física 10000H • O sea el último dígito hexadecimal corresponde a un 1. • Por lo que podríamos utilizar el mismo decodificador que se diseñó para el segmento DS.
A19 A18 A17 A16 A15 A14 A13 A12 A11 0 0 0 1 0 0 0 0 0 1 15 A17 Y 0 A 2 A16 14 Y 1 B A15 3 13 C Y 2 12 A14 Y 3 11 CS_SS_RAM CS_DS_RAM A13 Y 4 6 10 Y 5 G 1 A12 4 9 A18 Y 6 G 2 A A11 5 7 A19 Y 7 G 2 B 74 LS 138 Selección del CS para el segmento SS
DISEÑO DE LA ROM PARA CS • Memoria semiconductora que se utiliza • Debe ubicarse a partir de la dirección física E0000H. • Esto es, el dígito hexadecimal más significativo es un 1110.
A12…A0 RD CS_CS_ROM D15…D8 D7…D0 DISEÑO DE ROM PARA CS D E C O D I F I C A D O R A13 … A19
A19 A18 A17 A16 A15 A14 A13 1 1 1 0 0 0 0 1 15 A19 Y 0 A 2 A18 14 Y 1 B A17 3 13 C Y 2 12 Y 3 11 CS_CS_ROM A14 Y 4 6 10 Y 5 G 1 A13 4 A16 9 Y 6 G 2 A 5 7 A15 Y 7 G 2 B 74 LS 138 DISEÑO DEL DECODIFICADOR DEL CS
DISEÑO DE ROM PARA BOOT • Cuando se ejecuta un reset el procesador coloca en el bus de direcciones FFFF0H.
A12…A0 RD CS_CS_BOOT D15…D8 D7…D0 DISEÑO DE LA ROM PARA BOOT D E C O D I F I C A D O R A13 … A19
A19 A18 A17 A16 A15 A14 A13 1 1 1 1 1 1 1 1 15 A19 Y 0 A 2 A18 14 Y 1 B A17 3 13 C Y 2 12 Y 3 11 CS_CS_BOOT A14 Y 4 6 10 Y 5 G 1 A13 4 9 Y 6 G 2 A 5 7 Y 7 G 2 B A16 74 LS 138 A15 DISEÑO DEL DECODIFICADOR PARA BOOT
CONCLUSIONES • Se debe iniciar el proceso partiendo de la dirección lógica • Se debe conectar el bus de direcciones de la memoria semiconductora primero • Luego TODAS las señales de dirección restantes corresponden a las entradas del decodificador a diseñar. • Hasta este momento no se han considerados algunos aspectos propios del microprocesador. • En los diseños anteriores se supone que el acceso a la memoria es de 16 bits en un único ciclo.
ASPECTOS PROPIOS DEL PROCESADOR • MODOS DE OPERACIÓN • Modo mínimo • Modo máximo • MODO MÍNIMO • Ejemplos: computadores para automóviles, controles industriales, uso dedicado. • MODO MÁXIMO • Computadores a los cuales puedo expandir el sistema, ejemplo, computadores personales.
ASPECTOS PROPIOS DEL MICROPROCESADOR • Estas señales se utilizan para accesar dispositivos de 8 bits, parte baja y parte alta.
ASPECTOS PROPIOS DEL MICROPROCESADOR • Este es el primer microprocesador que distingue entre el espacio de puertos con el espacio de memoria. • Esta señal se utiliza para distinguir entre memoria y puertos.
MODIFICACIONES AL BANCO DE MEMORIA RAM • Se deben incluir las señales BHE y A0 en la selección de la memoria RAM y ROM así como la señal M/IO.
A11…A1 BHE A0 WR_MEM RD_MEM CS_DS_RAML CS_DS_RAMH D15…D8 D7…D0 MODIFICACIONES A LA MEMORIA PARA DS D E C O D I F I C A D O R A12 … A19
A19 A18 A17 A16 A15 A14 A13 A12 0 0 1 0 0 0 0 0 BHE A0 CS A17 BHE A0 CS 1 0 CS_DS_RAML 1 1 0 CS_DS_RAML 0 1 CS_DS_RAMH 1 0 1 CS_DS_RAMH 1 15 Y 0 A 2 14 Y 1 B A14 3 13 C Y 2 12 Y 3 A17 11 A13 CS_DS_RAMH CS_DS_RAML BHE Y 4 6 10 A12 A0 Y 5 G 1 4 9 Y 6 G 2 A 5 7 Y 7 G 2 B 74 LS 138 A15 A19 A18 MODIFICACIONES AL DECODIFICADOR A16
MODIFICACIONES EN EL DECODIFICADOR • Las modificaciones se pueden realizar en: • El decodificador de memoria o • En la creación de un nuevo decodificador donde se modifiquen las señales RD o WR
Las salidas son activas en cero DECODIFICADOR PARA RD/WR
M/IO RD RD_PUERTO WR WR_PUERTO 1 15 Vcc Y 0 A RD_MEM 2 14 Y 1 B 3 13 C Y 2 WR_MEM 12 Y 3 11 Y 4 6 10 Y 5 G 1 4 9 Y 6 G 2 A 5 7 Y 7 G 2 B 74 LS 138 DECODIFICADOR PARA RD/WR
A11…A1 BHE A0 WR_MEM RD_MEM CS_SS_RAML CS_SS_RAMH D15…D8 D7…D0 MODIFICACIONES PARA SS D E C O D I F I C A D O R A12 … A19
A19 A18 A17 A16 A15 A14 A13 A12 0 0 0 1 0 0 0 0 BHE A0 CS A16 BHE A0 CS 1 0 CS_SS_RAML 1 1 0 CS_SS_RAML 0 1 CS_SS_RAMH 1 0 1 CS_SS_RAMH 1 15 Y 0 A 2 14 Y 1 B A14 3 13 C Y 2 12 Y 3 A16 11 A13 CS_SS_RAMH CS_SS_RAML BHE Y 4 6 10 A12 A0 Y 5 G 1 4 9 Y 6 G 2 A 5 7 Y 7 G 2 B 74 LS 138 A15 A19 A18 DECODIFICADOR PARA SS MODIFICADO A17
A13…A1 RD_MEM CS_CS_ROMH CS_CS_ROML D15…D8 D7…D0 MODIFICACIONES PARA CS BHE A0 D E C O D I F I C A D O R A14 … A19
A19 A18 A17 A16 A15 A14 1 1 1 0 0 0 BHE A0 CS A16 BHE A0 CS 1 0 CS_CS_ROML 0 1 0 CS_CS_ROML 0 1 CS_CS_ROMH 0 0 1 CS_CS_ROMH 1 15 Y 0 A 2 14 Y 1 B 3 13 C Y 2 12 Y 3 A16 11 CS_CS_ROMH CS_CS_ROML BHE Y 4 6 10 A0 Y 5 G 1 4 9 Y 6 G 2 A 5 A14 7 Y 7 G 2 B A19 74 LS 138 A18 A17 DECODIFICADOR CS MODIFICADO A15
A13…A1 RD_MEM CS_CS_BOOH CS_CS_BOOL D15…D8 D7…D0 MODIFICACIONES PARA BOOT BHE A0 D E C O D I F I C A D O R A14 … A19
A19 A18 A17 A16 A15 A14 1 1 1 1 1 1 BHE A0 CS A16 BHE A0 CS 1 0 CS_CS_BOOL 1 1 0 CS_CS_BOOL 0 1 CS_CS_BOOH 1 0 1 CS_CS_BOOH 1 15 Y 0 A 2 14 Y 1 B 3 13 C Y 2 12 A19 Y 3 A16 11 CS_CS_BOOL CS_CS_BOOH A18 BHE Y 4 6 10 A0 Y 5 G 1 A17 4 9 Y 6 G 2 A A15 5 7 Y 7 G 2 B 74 LS 138 A14 DECODIFICADOR BOOT MODIFICADO
CONCLUSIONES • Se debe realizar un decodificador para generar las señales de lectura y escritura para memoria y para puertos, utilizando la señal M/IO. • Para seleccionar el banco con direcciones pares se necesita de A0. • Para seleccionar el banco con direcciones impares se necesita de BHE. • Si se utiliza el procesador 8086 para manejar la memoria el banco se reduce a 512KBytes.