Sei sulla pagina 1di 3

Arquitectura de Computadores I Instructivo sobre el uso de memorias en Max+Plus II

Introduccin
Las memorias se encuentran en la biblioteca Megafunctions/LPM (mega_lpm), en la categora de storage components que contiene los siguientes componentes : altdpram csfifo dcfifo scfifo csdpram lpm_ff lpm_fifo lpm_fifo_dc lpm_latch lpm_shiftreg lpm_ram_dp lpm_ram_dq lpm_ram_io lpm_rom lpm_dff* lpm_tff*

A continuacin detallamos el uso del componente lpm_ram_io.

El componente lpm_ram_io
Se trata de una memoria RAM con un solo puerto de E/S de datos bidireccional. Adems del puerto destinado a la entrada y salida, los componentes de este tipo cuentan con varios puertos de control, de los cuales algunos son siempre requeridos y otros son opcionales. A continuacin se describen los puertos que usaremos en el laboratorio, el resto debe marcarse como unused en el dilogo de configuracin del componente:

Nombre del puerto


address[ ] we inclock outenab

Descripcin
Direccin que se desea leer o escribir Entrada que habilita la escritura Entrada de reloj Controla la direccionalidad del bus. Cuando vale uno, el contenido de la memoria se pone en el bus, cuando vale cero el contenido del bus se guarda en la memoria. Puerto bidireccional de datos

dio[ ]

El smbolo del componente lpm_ram_io con todos los puertos descritos presentes es :

Haciendo doble click sobre la zona superior derecha, se accede a un dilogo de configuracin del componente donde pueden seleccionarse los puertos a usar y definirse los valores de ciertos parmetros de configuracin. Algunos de estos parmetros son: LPM_WIDTH LPM_WIDTHAD LPM_FILE Ancho del puerto de datos dio[ ] Ancho del puerto de direccionamiento address [ ]. Nombre del archivo de inicializacin de la memoria (.mif o .hex)

Para utilizar este componente, debe asignarse al proyecto un dispositivo que sea compatible. Esto puede hacerse con la opcin de men Assign/Device y seleccionando por ejemplo familia de dispositivo FLEX10K y dispositivo auto.

Inicializacin de una memoria


La inicializacin de una memoria se puede especificar con un archivo .hex (matriz de nmeros respresentados en hexadecimal que corresponden a los valores que se le quiere asignar a las distintas palabras de la memoria) o con un archivo .mif (memory initialization file) que ofrece ms flexibilidad y expresividad que el anterior formato. Estructura de un .mif : DEPTH = <cantidad de palabras expresado en base 10>; WIDTH = <ancho de las palabras expresado en base 10>; % esto es un comentario % % las 2 sentencias a continuacin son opcionales, si no se especifican se asume HEX % % los valores posibles son BIN, DEC, HEX y OCT % ADDRESS_RADIX = <base en la cual se van a expresar las direcciones>; DATA_RADIX = <base en la cual se van a expresar los valores de las palabras>; % a continuacin se especificada el contenido % CONTENT

BEGIN % se pueden especificar rangos de direcciones % [valor_inicial..valor_final] : valor_asignado; % se pueden especificar direcciones individuales % direccion : valor_asignado; END ; % cuando se asigna ms de un valor a una misma direccin, se toma en cuenta el ltimo valor asignado % El Text Editor del Max+Plus II reconoce la sintaxis de este lenguaje y colorea las distintas expresiones (una vez que fue guardado el archivo con la extensin .mif). El siguiente es un ejemplo de archivo mif donde se asignan valores desde 100h hasta 107h a las palabras en las direcciones 0 a 7. DEPTH = 256; WIDTH = 16; CONTENT BEGIN 0:100; 1:101; 2:102; 3:103; 4:104; 5:105; 6:106; 7:107; END ;

Potrebbero piacerti anche