DISEÑO ASM A NIVEL RTL
Enviado por qgfm • 14 de Septiembre de 2014 • 2.689 Palabras (11 Páginas) • 359 Visitas
DISEÑO ASM A NIVEL RTL
I. INTRODUCCION
Un diseño ASM a nivel RTL es un método algorítmico, basado en la ejecución de procesos estructurados y ordenados. Con este modelo de diseño se busca implementar un sistema complejo.
Entre los sistemas digitales complejos esta es el diseño de un multiplicador de bits a nivel RTL.
En este informe se presenta el proceso de diseño de un multiplicador de 4 bits, se describen detalladamente todos los bloques involucrados en la implementación, se presentan diagramas, maquinas de estado e interconexión de bloques para el entendimiento del mismo.
II. OBJETIVOS
• Desarrollar un proyecto a nivel RTL y sintetizarlo utilizando VHDL.
• Analizar el funcionamiento de un multiplicador binario de cuatro bits.
• Adoptar un algoritmo apropiado para su implementación.
• Expresar de manera personal los resultados obtenidos.
III. MARCO TEORICO
La Máquina de estados algorítmica (ASM) es un método para el diseño de Máquina de estados finitos. Se utiliza para representar los diagramas de circuito integrado. El diagrama de ASM es como un diagrama de estado, pero menos formal y por tanto más fácil de entender. Un gráfico de ASM es un método para describir las operaciones por orden de un sistema digital.
El método de ASM se compone de los siguientes pasos:
1. Crear un algoritmo, utilizando pseudocódigo , para describir la operación deseada del dispositivo.
2. Convertir el pseudocódigo en un diagrama ASM .
3. Diseño del camino de datos basado en el diagrama ASM.
4. Crear diagrama ASM detallado basado en el camino de datos.
5. Diseño de la lógica de control basada en el diagrama ASM detallado.
El datapath tiene dos tipos de puertos de entrada y salida, uno de ellos es un puerto que maneja datos y el otro es un puerto que maneja señales de control.
La unidad de control esta conformada por dos tipos de señales de entrada, las externas y las de estado, estas representan los estados del datapath; y tambień tiene dos tipos de señales de salida, las externas y las señales de control del datapath.
Se introducen un conjunto de variables
o Entradas y salidas de los datapath
o Un conjunto de entradas, salidas y estados de FSM.
Para lograr la conexión deseada entre los registros y los agentes que intervienen en una transferencia de registros, se requiere el control del subsistema de datos.
El tiempo de cada ciclo de reloj es determinado por la longitud de la ruta, desde el registro fuente al registro destino, incluyendo las transformaciones de los datos en el recorrido.
El procedimiento para obtener la especificación de un sistema RTL es el siguiente:
• Dibujar un gráfico de ejecución para el cálculo.
• Escribir la descripción VHDL del sistema basado en la ejecución gráfica.
• Representan una secuencia de transferencia de registros.
• Consta de nodos precedidos por arcos.
Memoria RAM
Random Access Memory, (normalmente conocida como Memoria RAM) es un tipo de dispositivo de almacenamiento de datos. Adopta la forma de circuitos integrados que permiten que los datos se almacenen y sea accesible a ellos mediante ordenes.
Se utiliza normalmente como memoria temporal para almacenar resultados intermedios y datos similares no permanentes. Se dicen “de acceso aleatorio/random” o “de acceso directo” porque los diferentes accesos son independientemente entre sí.
Cada celda de la RAM tiene una ubicación o nombre en una nomenclatura aceptada por la comunidad científica: el sistema hexadecimal. Cada depósito de un dato en la memoria (operando, resultado, etc.) se ubica por una dirección en hexadecimal.
La memoria funciona de manera similar a un juego de cubículos divididos usados para clasificarla correspondencia en la oficina postal. A cada bit de datos se asigna una dirección. Cada dirección corresponde a un cubículo (ubicación) en la memoria.
Para guardar información en la memoria, el procesador primero envía la dirección para los datos. El controlador de memoria encuentra el cubículo adecuado y luego el procesador envía los datos a escribir.
Para leer la memoria, el procesador envía la dirección para los datos requeridos. De inmediato, el controlador de la memoria encuentra los bits de información contenidos en el cubículo adecuado y los envía al bus de datos del procesador.
IV. EQUIPO UTILIZADO
• Computador Inter(R)
Pentium(R) 4 CPU 3.00GHz, 0.99GB de RAM.
• Software de apoyo ISE FOUNDATION de Xilinx.
• Simulador ISE Xilinx.
• Tarjeta Pegasus
Xilins Spartan 2 XC2S50-PQ208.
V. DESARROLLO DE LA PRÁCTICA
• Diseñe, describa e implemente una memoria RAM 23X8
• Diseñe, describa e implemente el datapath para el multiplicador.
• Diseñe, describa e implemente el control para el multiplicador.
• Diseñe un circuito que permita:
o Ingresar y cargar la primera posicion de memoria con el multiplicando.
o Una vez cargado el multiplicando cargar en la segunda posicion el multiplicador.
o Los datos ingresan a través de teclado matricial de 4X5.
o Seguidamente una tecla permie realizar la multiplicación de los dos números .
o Con la tecla mostrar ud debe leer las posiciones de memoria asi:
Primero leer y mostrar en el display el multiplicando.
Luego leer y mostrar el multiplicador.
Por ultimo leer y mostrar el multiplicador.
DESARROLLO
Este proyecto requiere la implementación de varios subprogramas para el correcto funcionamiento
El esquema jerárquico se muestra en la figura 1.
Figura 1
El código MULT es del tipo arquitectura Structural, se compone de seis subprogramas: el control del teclado (teclax- behavioral), un multiplexor de propósito general (muxg- behavioral), la un arreglo de registros (ram- behavioral), un control de propósito general (CTRLG- behavioral), un controlador de siete segmentos (display-behavioral).
El bloque multiplicador (multiplica- Structural), contiene dos subprogramas: datapath-Structural y CONTROL-Behavior. Datapath se compone de tres tipos distintos de regitros, un bloque sumador y un bloque de conteo.
Todos los bloques que componen el Datapath son controlados por el bloque CONTROL.
• Diseñe, describa e implemente una memoria RAM 23X8
Componente: a3 de MULT
La implementación de una memoria 23X8 en VHDL implica la especificación de:
El
...