Anda di halaman 1dari 6

EJEMPLO DE DISEO DE MEMORIA

Se trata de disear una memoria de 512Kx16 a partir de mdulos ROM 16Kx16,


RAM 64Kx8 y RAM 128Kx16, teniendo en cuenta que los primeros 64K deben ser
ROM y el resto RAM.

Adems del diseo general, indicar cmo quedara el bus de direcciones cuando
se eligen las palabras con las siguientes direcciones en hexadecimal: 07FA9, 18EBE y
69B9F.

NOTA: Por simplicidad del dibujo, no dibujar las lneas de lectura y escritura,
que se suponen unidas entre s a las entradas externas correspondientes.

SOLUCIN

Como la memoria diseada es de 512K, se necesitan 19 lneas de


direccionamiento, que llamaremos A18 A0. El elemento de memoria ms pequeo
tiene 16K, con lo que necesita 14 lneas de direccionamiento, que sern comunes con el
resto de mdulos, siendo las lneas de la memoria de los 16K las 14 lneas menos
significativas del conjunto. Dichas lneas se conectan en paralelo con las 14 lneas
menos significativas de TODOS los elementos de memoria superiores.

Para realizar el diseo, dividimos la cantidad total de memoria, 512K, en 4


bloques de 128K. Los tres bloques de memoria superiores los realizan directamente tres
elementos de 128Kx16, de los que disponemos. Por tanto, un DEC 2x4 direcciona cada
uno de esos tres bloques cuando las dos lneas ms significativas A18 y A17 son 01, 10 o
bien 11.

El direccionamiento de los 128 primeros K necesita ms explicaciones. En


primer lugar, A18 y A17 son 00, ya que es la primera cuarta parte del total de 512K.
Adems, los primeros 64K, de memoria ROM, se seleccionan cuando A16=0, mientras
que los siguientes 64K, de memoria RAM, son implementados directamente por dos
pastillas de 64Kx8, de las que disponemos, sumando los 8 bits de cada una para obtener
16 y poniendo en paralelo las lneas de direccionamiento de ambos circuitos.

Para direccionar los primeros 64K con mdulos de 16K, siendo A16=0,
simplemente se necesita un DEC 2x4 para seleccionar alguna de las 4 memorias ROM,
en funcin de las lneas A15 y A14. En este ejemplo, dicho DEC slo se usa cuando se
selecciona memoria ROM.

Una pequea lgica adicional, compuesta por dos puertas OR y un inversor, se


encarga de inhibir el DEC 2x4 citado cuando A16=1, habilitando las memorias RAM de
64Kx8, y de habilitarlo cuando A16=0, inhibiendo las memorias RAM de 64Kx8, todo
ello siempre que estemos en los primeros 128K de la memoria total, ya que en caso
contrario, directamente estara deshabilitado todo el primer bloque de 128K.
Parte comn del Bus de direcciones (A13-A0), las 14 lneas menos significativas Espacio
direccionable
A0
14 14
OE 13---0 0K
A13 ROM
CS 16Kx16
WR DATOS 16 15 K
0
0 14
A14
1
DEC OE 13---0 16 K
2x4 ROM
2 CS 16Kx16
A15 1 WR DATOS 16 31 K
E 3 14

OE 13---0 32 K
ROM
OR CS 16Kx16
WR DATOS 16 47 K
14

A16 OE 13---0 48 K
ROM
CS 16Kx16
WR DATOS 16 63 K
14

OR 64 K
15 14 13-0 15 14 13-0
CS RAM CS RAM
16
64Kx8 64Kx8
8 127 K

OE 16 15 14 13---0 128 K
RAM
CS 128Kx16
WR DATOS 16 255 K

OE 16 15 14 13---0 256 K
0 RAM
A17 0
CS 128Kx16
WR DATOS 16 383 K
1
DEC
2x4
A18 2
1 OE 16 15 14 13---0 384 K
RAM
E 3 CS 128Kx16
WR DATOS 16 511 K
Bus de datos (D15-D0)
MEM 16
Parte comn del Bus de direcciones (A13-A0), las 14 lneas menos significativas Direcciones
A0
14 16.297 14 00.000
Direccin 3FA9 H OE 13---0
00000H
A13 32.681 (14 bits) ROM
CS 16Kx16
07FA9 H 16.383
WR DATOS 16
0 03FFFH
0 14
A14
1 16.384
1 DEC OE 13---0
04000
2x4 ROM
2 CS 16Kx16
1 32.767
A15 WR DATOS 16 07FFFH
0 E 3 14
32.768
13---0
OE 08000H
ROM
OR CS 16Kx16 49.151
WR DATOS 16 0BFFFH
14
49.152
A16 OE 13---0
0C000H
0 ROM
CS 16Kx16 65.535
WR DATOS 16 0FFFF
14
1
65.536
OR 10000H
0 1 15 14 13-0 15 14 13-0
CS RAM CS RAM 131.071
16
64Kx8 64Kx8 1FFFFH
8

OE 16 15 14 13---0 131.072
RAM 20000H

CS 128Kx16 262.143
3FFFFH
WR DATOS 16

OE 16 15 14 13---0 262.144
0 RAM 40000H

A17 0
CS 128Kx16 393.215
5FFFFH
16
0 1 WR DATOS
DEC
2x4
2
A18 1 OE 16 15 14 13---0
393.216
0 RAM 60000H
E 3 CS 128Kx16 524.287
WR DATOS 16
Bus de datos (D15-D0) 7FFFFH
MEM 16
Parte comn del Bus de direcciones (A13-A0), las 14 lneas menos significativas Direcciones
A0
14 14 00.000
Direccin OE 13---0
00000H
A13 102.078 ROM
CS 16Kx16
18EBE H 16.383
WR DATOS 16
0 03FFFH
0 14
A14
1 16.384
0 DEC OE 13---0
04000
2x4 ROM
2 CS 16Kx16
1 32.767
A15 WR DATOS 16 07FFFH
1 E 3 14
32.768
13---0
OE 08000H
ROM
OR CS 16Kx16 49.151
WR DATOS 16 0BFFFH
14
49.152
A16 OE 13---0
0C000H
1 ROM
CS 16Kx16 65.535
WR DATOS 16 0FFFF
14
0
0 36.542
8EBE H
1 65.536
OR 1 0 1 0 (16 bits)
10000H
0 0 15 14 13-0 15 14 13-0
CS RAM CS RAM 131.071
16
64Kx8 64Kx8 1FFFFH
8

OE 16 15 14 13---0 131.072
RAM 20000H

CS 128Kx16 262.143
3FFFFH
WR DATOS 16

OE 16 15 14 13---0 262.144
0 RAM 40000H

A17 0
CS 128Kx16 393.215
5FFFFH
16
0 1 WR DATOS
DEC
2x4
2
A18 1 OE 16 15 14 13---0
393.216
0 RAM 60000H
E 3 CS 128Kx16 524.287
WR DATOS 16
Bus de datos (D15-D0) 7FFFFH
MEM 16
Parte comn del Bus de direcciones (A13-A0), las 14 lneas menos significativas Direcciones
A0
14 14 00.000
Direccin OE 13---0
00000H
A13 433.055 ROM
CS 16Kx16
69B9F H 16.383
WR DATOS 16
0 03FFFH
0 14
A14
1 16.384
0 DEC OE 13---0
04000
2x4 ROM
2 CS 16Kx16
1 32.767
A15 WR DATOS 16 07FFFH
1 E 3 14
32.768
13---0
OE 08000H
ROM
OR CS 16Kx16 49.151
WR DATOS 16 0BFFFH
14
49.152
A16 OE 13---0
0C000H
0 ROM
CS 16Kx16 65.535
WR DATOS 16 0FFFF
14
1
65.536
OR 10000H
1 1 15 14 13-0 15 14 13-0
CS RAM CS RAM 131.071
16
64Kx8 64Kx8 1FFFFH
8

OE 16 15 14 13---0 131.072
RAM 20000H

CS 128Kx16 262.143
3FFFFH
WR DATOS 16

OE 16 15 14 13---0 262.144
0 RAM 40000H

A17 0
CS 128Kx16 393.215
5FFFFH
16
1 1 WR DATOS
DEC 39.839
2x4 9B9F H
(16 bits)
2
A18 1 OE 16 15 14 13---0
0 10 393.216
1 RAM 60000H
E 3 CS 128Kx16 524.287
WR DATOS 16
Bus de datos (D15-D0) 7FFFFH
MEM 16
EJEMPLO 1
Para seleccionar la direccin de memoria 07FA9 H, equivalente a 32.681
decimal, hay que elegir el 2 bloque de 16K, que cubre de las posiciones 16.384, hasta
32.767, y dentro de dicho bloque, la posicin relativa referida a su comienzo, 16.384, es
16.297, ya que 16.384+16.297=32.681. Por tanto, en las 14 lneas A13 A0 del mdulo
hay que poner 16.297, en hexadecimal 3FA9, A15A14 = 01, por ser el 2 bloque de 16K,
A16=0 por estar en la primera mitad de los 128 primeros K y A18A17=00 por estar en el
primer bloque de 128K del total de 512K. Viendo directamente la direccin, resulta:

07FA9

00 0 0111 1111 1010 1001


A18A17 A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0

3FA9
EJEMPLO 2
Para seleccionar la direccin de memoria 18EBE H, equivalente a 102.078
decimal, hay que elegir el 2 bloque de 64K, que cubre de las posiciones 65.536, hasta
131.071, y dentro de dicho bloque, la posicin relativa referida a su comienzo, 65.536,
es 36.542, ya que 65.536+36.542=102.078. Por tanto, en las 16 lneas A15 A0 del
mdulo hay que poner 36.542, en hexadecimal 8EBE, A16=1 por estar en la segunda
mitad de los 128 primeros K y A18A17=00 por estar en el primer bloque de 128K del
total de 512K. Viendo directamente la direccin, resulta:

18EBE

00 1 1000 1110 1011 1110


A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0

8EBE
EJEMPLO 3
Para seleccionar la direccin de memoria 69B9F H, equivalente a 433.055
decimal, hay que elegir el 4 bloque de 128K, que cubre de las posiciones 393.216,
hasta 524.287, y dentro de dicho bloque, la posicin relativa referida a su comienzo,
393.216, es 39.839, ya que 393.216+39.839=433.055. Por tanto, en las 17 lneas A16
A0 del mdulo hay que poner 39.839, en hexadecimal 9B9F, y A18A17=11 por estar en
el cuarto bloque de 128K del total de 512K. Viendo directamente la direccin, resulta:

69B9F

11 0 1001 1011 1001 1111


A18A17 A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0

9B9F

Anda mungkin juga menyukai