-
Notifications
You must be signed in to change notification settings - Fork 203
Capítulo 27: Memoria ROM genérica

Ejemplos de este capítulo en github
Las memorias son elementos muy comunes, que useremos mucho en nuestros diseños. En vez de estar haciendo memorias con un tamaño determinado, es más versátil crear una memoria genérica cuyos parámetros de longitud de datos y de direcciones se establezcan al instanciarlas.
Crearemos una memoria rom genérica y la utilizaremos en dos ejemplo: uno para reproducir una secuencia de luces en los leds y otro para tocar una melodía: la marcha imperial
La memoria tiene 3 parámetros que se asignan al instanciarse.

- DW (Data width): Anchura de los datos (en bits)
- AW (Address width): Anchura de las direcciones (en bits)
- ROMFILE: Fichero con el contenido de la rom
Los puertos de la rom son los clásicos, pero ahora su tamaño no está especificado:

0 You are leaving the privative sector (EN)
1 ¡Hola mundo! (EN) (RU)
2 De un bit a datos (EN)
3 Puerta NOT (EN)
4 Contador de 26 bits (EN)
5 Prescaler de N bits (EN)
6 Múltiples prescalers (EN)
7 Contador de 4 bits con prescaler (EN)
8 Registro de 4 bits (EN)
9 Inicializador (EN)
10 Registro de desplazamiento (EN)
11 Multiplexor de 2 a 1 (EN)
12 Multiplexor de M a 1 (EN)
13 Inicializando registros (EN)
14 Registro de N bits con reset síncrono
15 Divisor de frecuencias
16 Contador de segundos
17 Generando tonos audibles
18 Tocando notas
19 Secuenciando notas
20 Comunicaciones serie asíncronas
21 Baudios y transmisión
22 Reglas de diseño síncrono
23 Controladores y autómatas finitos
24 Unidad de transmisión serie asíncrona
25 Unidad de recepción serie asíncrona
26 Memoria ROM
27 Memoria ROM genérica
28 Memoria RAM
29 Puertas triestado
30 Hacia el microprocesador y más allá