Haz una pregunta
  Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/10/2012 #1


decodificacion para mapa de memoria
lo que pasa es que tengo que hacer el circuito con el decodificador y demás para el siguiente banco de memorias

se tienen eprom 32k*8, sram 16k*8 y eeprom 64k*8

<----8bits---->
_____________A5000h
| eeprom |
_____________
|64k sram |
_____________
|96k libre |
_____________
|128k eprom |
_____________
| 32k libre |
_____________25000h

ya hice el mapa ampliado, y lo veo bien, pero me da con un decodificador de 8 a 256bits con salidas de 4k (demasiado grande para dibujar) no se si estará bien, o si esta bien alguna manera de hacerlo con decodificadores mas pequeños, ayuda por favor! y gracias de antemano
28/10/2012 #2

Avatar de Gudino Roberto duberlin

Hola Amigo, bueno deberias explicar un poco mas al respecto, lo que deseas hacer, a pesar de observar tu grafico, es tedioso darse a la tarea de interpretar.
Por ejem. a lo que se entiende, debes realizar un decodificador de 8 bits, dando como salida 1 de entre 256 combinaciones posibles. Esto es asi?.
29/10/2012 #3


No lo que pasa es que quiero hacer ese mapa de memoria que esta en el cuadro pero me queda con un decodificador de 256 bits que es un poco grande y cada salida del deco manejando 4k
29/10/2012 #4


Hola and070

Lo que se entiende en tu mensaje original es que la direcciona más baja estaría en 25000h. 151,552 decimal.
De esa dirección hacia arriba viene el mapeo que pretendes hacer.
La dirección más alta estaría en A5000h. 675,840 decimal.
- La coma es separador de los miles -

En ese rango de direcciones quieres separar en diferentes grupos por tipos de memoria:
los tipos de memorias IC’s que tienes son:
todas con el BUS de datos de 8 BIT’s.
EPROM 32k.
SRAM 16k.
EEPROM 64k.

32k Libre. Esta área de la memoria inicia en la dirección 25000h.
128k EPROM. Esta área de la memoria inicia en la dirección 25000h + 32k d.
96k Libre. Esta área de la memoria inicia en la dirección (25000h + 32k d) + 96k d.
64k SRAM. Esta área de la memoria inicia en la dirección (25000h + 32k d) + (96k d.) + 64k d.
EEPROM. Esta área de la memoria inicia en la dirección (25000h + 32k d) + (96k d.) + (64k d.) + 64 d y terminaría en la dirección A5000h. 675,840 decimal.

Como del tipo EPROM solo tienes de 32K y requieres 128K debes utilizar varias de este tipo. Así para los demás.

Son 5 las áreas de memoria a las cuales se les asigna un nombre:
32k Libre = L32.
128k EPROM = E128.
96k Libre = L96.
64k SRAM = S64.
EEPROM = EE.

Con varios comparadores de magnitud y utilizando sus salidas A=B y A<B se puede seleccionar el rango de las diferentes áreas de memoria estas 2 salidas se meten a una OR y su salida habilitaría los o el Chip Enable de los IC que estuvieran para ese rango de direcciones.

saludos
a sus ordenes
29/10/2012 #5


que pena que siga molestando, pero no entendi la parte de los comparadores, que numeros comparo?? no se puede hacer con un decodificador algo asi como que cada salida del deco me selecione un CE de la memoria, gracias
29/10/2012 #6


Hola and070

Pues comparas los números de las direcciones.
La memoria cuya dirección es la más baja sería:
| 32k libre |
_____________25000h
Según dices en tu mensaje original.

Entonces todas las direcciones de esta memoria libre serían de 25000h hasta (25000h + 32000h =) 57000h
De: 25000h hasta 57000h
Se requieren 5 comparadores de magnitud de 4 BIT’s c/u.
Uno para cada cifra HEX.
Con un decodificador como lo mencionas sería más grande el circuito.
En realidad hacerlo con comparadores de magnitud estaríamos haciendo un decodificador.

saludos
a sus ordenes
PD: por las carreras creo que no conecté bien la OR hacia los comparadores
Imágenes Adjuntas
Tipo de Archivo: jpg Address Selector.jpg (153,7 KB (Kilobytes), 31 visitas)
29/10/2012 #7


amigo gracias por último que programa usaste para hacer la foto de la simulación que me mandates
29/10/2012 #8


Creo que el problema esta en tu tabla de verdad.

LIBRE : 25000 - 2CFFF => 32k

EPROM1 : 2D000 - 34FFF => 32k TOTAL EPROM = 128K
EPROM2 : 35000 - 3CFFF => 32k
EPROM3 : 3D000 - 44FFF => 32k
EPROM4 : 45000 - 4CFFF => 32k

LIBRE : 4D000 - 64FFF => 96k

SRAM1 : 65000 - 68FFF => 16k TOTAL SRAM = 64K
SRAM2 : 69000 - 6CFFF => 16k
SRAM3 : 6D000 - 70FFF => 16k
SRAM4 : 71000 - 74FFF => 16k

EEPROM1 : 75000 - 84FFF => 64K TOTAL EEPROM = 192K
EEPROM2 : 85000 - 94FFF => 64K
EEPROM3 : 95000 - A4FFF => 64K

PROXIMO BLOQUE INICIA EN : A5000


Puedes notar que A13 ... A0 son comunes a todos los C.I.

Para los decodificadores solo necesitas 6 bits: A19...A14

Por ejemplo si quieres seleccionar SRAM2:

A19 A18 A17 A16 A15 A14
0 1 1 0 1 0

enable = A19'+A18+A17+A16'+A15+A14'

Y asi para el resto de C.I.

Saludos
29/10/2012 #9


and070 dijo: Ver Mensaje
amigo gracias por último que programa usaste para hacer la foto de la simulación que me mandates


Utilicé ISIS de Proteus
30/10/2012 #10


carferper dijo: Ver Mensaje
Creo que el problema esta en tu tabla de verdad.

LIBRE : 25000 - 2CFFF => 32k

EPROM1 : 2D000 - 34FFF => 32k TOTAL EPROM = 128K
EPROM2 : 35000 - 3CFFF => 32k
EPROM3 : 3D000 - 44FFF => 32k
EPROM4 : 45000 - 4CFFF => 32k

LIBRE : 4D000 - 64FFF => 96k

SRAM1 : 65000 - 68FFF => 16k TOTAL SRAM = 64K
SRAM2 : 69000 - 6CFFF => 16k
SRAM3 : 6D000 - 70FFF => 16k
SRAM4 : 71000 - 74FFF => 16k

EEPROM1 : 75000 - 84FFF => 64K TOTAL EEPROM = 192K
EEPROM2 : 85000 - 94FFF => 64K
EEPROM3 : 95000 - A4FFF => 64K

PROXIMO BLOQUE INICIA EN : A5000


Puedes notar que A13 ... A0 son comunes a todos los C.I.

Para los decodificadores solo necesitas 6 bits: A19...A14

Por ejemplo si quieres seleccionar SRAM2:

A19 A18 A17 A16 A15 A14
0 1 1 0 1 0

enable = A19'+A18+A17+A16'+A15+A14'

Y asi para el resto de C.I.

Saludos
pero fijate el ejemplo que me pusistes si pones 011010 en el deco activas sram 2 y sram 1 y eso no es un problema??
30/10/2012 #11


Con esa configuracion unicamente se activa un chip a la vez, aqui te pongo otros ejemplos:

EPROM1 = A19'+A18'+A17+A16'+A15+A14
EPROM2 = A19'+A18'+A17+A16+A15'+A14
EPROM3 = A19'+A18'+A17+A16+A15+A14
EPROM4 = A19'+A18+A17'+A16'+A15'+A14

SRAM1 = A19'+A18+A17+A16'+A15'+A14
SRAM2 = A19'+A18+A17+A16'+A15+A14'
SRAM3 = A19'+A18+A17+A16'+A15+A14
SRAM4 = A19'+A18+A17+A16+A15'+A14'

Y similarmente para la EEPROM.

Saludos
31/10/2012 #12


Hola and070

Creo que lo que te recomienda carferper es algo como lo que aparece en la imagen adjunta.
Si tienes el simulador ISIS de Proteus puedes abrir el archivo .DSN que está comprimido en el .ZIP.
Puedes notar en la imagen que se está generando la señal (CE) para SRAM1. tiene un inversor para utilizar la que convenga.

saludos
a sus ordenes
Imágenes Adjuntas
Tipo de Archivo: jpg SRAM1 Hasta SRAM4.jpg (250,5 KB (Kilobytes), 14 visitas)
Archivos Adjuntos
Tipo de Archivo: zip SRAM1 Hasta SRAM4.zip (15,7 KB (Kilobytes), 11 visitas)
31/10/2012 #13


MrCarlos dijo: Ver Mensaje
Hola and070

Creo que lo que te recomienda carferper es algo como lo que aparece en la imagen adjunta.
Si tienes el simulador ISIS de Proteus puedes abrir el archivo .DSN que está comprimido en el .ZIP.
Puedes notar en la imagen que se está generando la señal (CE) para SRAM1. tiene un inversor para utilizar la que convenga.

saludos
a sus ordenes
Ummm no se de hecho veo en la imagen que con 64000 estas selecionando SRAM1 pero la sram empieza en 65000
31/10/2012 #14


Hola and070

Pero si captas la IDEA... Cierto ???

saludos
a sus ordenes
31/10/2012 #15


A no si claro de hecho ya creo tenerlo, gracias
01/11/2012 #16


Tienen razon con mi propuesta, tiene varios errores. en primer lugar no deben ser "+" o logico OR sino "x" o logico AND en las funciones logicas, asumo que ya lo notaron. Y el segundo error como ya mencionaron es que no coincide con la tabla de verdad. Sin embargo el procedimiento es el correcto.

Creo que la mejor opcion para simplificar al maximo el decoder es agregarle un sumador a los 8-bits mas significativos y hacer un nuevo mapa de memoria y tabla de verdad.

te adjunto una posible solucion, aunque no lo he revisado detalladamente, creo que funciona. Le agrege "C" en hex a cada direccion.

Saludos.
Imágenes Adjuntas
Tipo de Archivo: jpg decoder1.jpg (30,1 KB (Kilobytes), 11 visitas)
Tipo de Archivo: jpg decoder.jpg (83,9 KB (Kilobytes), 11 visitas)
Archivos Adjuntos
Tipo de Archivo: zip Direcciones.zip (16,1 KB (Kilobytes), 15 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Circuitos lógicos combinacionales y secuenciales

Compuertas, flips flops, registros, PLDs, codificadores, contadores, multiplexores, ...

Cerrar
Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.