Práctica 6: ROM
Introducción:
Una unidad de memoria es un
dispositivo al que se transfiere información binaria que desea almacenarse, y
del que se puede obtener información que es necesario procesar. Cuando se
efectúa procesamiento de datos, la información de la memoria se transfiere a
registros selectos de la unidad de procesamiento. Los resultados intermedios y
finales obtenidos en la unidad de procesamiento se transfieren de vuelta a la
memoria para guardarse. La información binaria recibida de un dispositivo de
entrada se almacena en la memoria, y la información transferida a un dispositivo de salida se toma
de la memoria. Una unidad de memoria es una colección de celdas que permite
almacenar una gran cantidad de información binaria.
Hay dos tipos de memorias que se usan
en los sistemas digitales: memoria de acceso aleatorio (RAM, random-access
memory) y memoria de sólo lectura (ROM, read-only memory).
Memoria de sólo lectura
La memoria de sólo lectura es un dispositivo
lógico programable. La información binaria que se almacena en un
dispositivo lógico programable se especifica de alguna manera y luego se
incorpora al hardware. Una memoria de sólo lectura (ROM) es, en esencia, un
dispositivo de memoria en el que se almacena información binaria permanente. El
diseñador debe especificar la información, que entonces se incorpora a la
unidad para formar el patrón de interconexión requerido. Una vez establecido el
patrón, permanece en la unidad aunque se apague y se vuelva a encender. En la
figura se reproduce un diagrama de bloques de una ROM.
Tiene k entradas y n salidas. Las entradas proporcionan la dirección de
memoria y las salidas suministran los bits de datos de la palabra almacenada
seleccionada por la dirección.
Decodificador teclado matricial 4x4
El uso de teclados es muy común en
aplicaciones donde es necesaria la escritura o la selección de información. A
continuación se muestra el esquema del decodificador de teclado matricial de
4x4 teclas por hardware, aprovechando las bondades de los bloques digitales del
PSoC®. La solución se plantea en el decodificador comercial 74C922 fabricado
por Fairchild Semiconductor y por National Semiconductor, que puede codificar
un teclado matricial de hasta 4x4.
Procedimiento
Diseño
Se requiere hacer una ROM de 16x10. La
unidad consiste en 16 palabras de 10 bits cada una. Hay cuatro líneas de
entrada que forman los números binarios del 0 al 15 para la dirección. Las
cuatro entradas se decodifican a 16 salidas distintas con un decodificador de
4x16. Las 16 salidas se conectan a cada una de las compuertas OR que sean necesarias para la implementación.
Para el diseño se realizó la siguiente tabla, donde de S0 a S9 son los datos y
de E0 a E3 es la dirección.
E0
|
E1
|
E2
|
E3
|
S0
|
S1
|
S2
|
S3
|
S4
|
S5
|
S6
|
S7
|
S8
|
S9
|
|
0
|
0
|
0
|
0
|
1021
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
1
|
1014
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
1013
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1009
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
997
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
991
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
0
|
983
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
977
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
971
|
1
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
967
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
433
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
307
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
0
|
0
|
199
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
563
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
23
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
809
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
Utilizando la tabla se tiene el
siguiente esquemático:
Para el decodificador de teclado se
utiliza el mencionado anteriormente con una pequeña variación que es un
conversor, debido a que en el teclado el orden varía. El conversor permite que
los números del 10 al 15 se representen
por medio de las teclas:
A = 10
B = 11
C = 12
D = 13
*(Asterisco) = 14
# (Numeral) = 15
El conversor re realiza con LUT y se
tiene que:
Finalmente el decodificador de teclado
matricial es:
Esquemático
En el esquemático se observa el
decodificador de teclado matricial, la ROM, y el decodificador binario a BCD
además la visualización dinámica, los cuales fueron explicados en la anterior
entrada.
Funcionamiento
Conclusiones:
- La memoria ROM al ser una unidad que almacena
información binaria de manera permanente es necesario para realizar una
modificación cambiar todo el esquema.
- El almacenamiento interno de la ROM se especifica
con una tabla de verdad, en esa tabla se especificaron las 4 entradas con
las que se da las lista de 16 direcciones. En cada dirección se almacena
un número de 10 bits, que se dan en las columnas de salidas.
Comentarios
Publicar un comentario