proyecto - Microprocesador

18
Diseñar e implementar un microprocesador de 8 bits con memoria y visualización en leds utilizando VHDL. 1. Formulación del problema En la práctica de la microelectrónica en la universidad francisco de paula Santander es importante que el estudiante este bien familiarizado con el Lenguaje de Descripción de hardware VHDL( hardware description language), y a través del semestre se adquieren herramientas para no solo manejar el sistema y las tarjetas de adquisición de datos sino también para realizar algunas aplicaciones más complejas que requieran de la capacidad del estudiante de crear procesos que incluyan el uso de la unidad Aritmetico-Logica ALU, registros, maquinas de estado y sistemas RTL, entre otros sistemas que se simulan en el ámbito del laboratorio, pero la mejor manera de poner en práctica dichos conocimientos es realizando una aplicación que requiera reunir estos componentes en un único proceso o sistema. El uso de los microprocesadores esta en este momento focalizado en casi todos los ámbitos de la vida que cuente o requiera realizar operaciones ya sean lógicas, matemáticas, desplazamientos como los procesos de lavadoras, secadoras, microondas o cualquier tipo de electrodoméstico que haga uso de secuencias programas de control y más complejas como las millones de operaciones que debe realizar un sistema de alto rendimiento, celulares, palm y por supuesto computadoras. Pero para los estudiantes de microelectrónica es importante conocer el uso y aplicación de los microprocesadores pero es mas importante implementar un sistema básico como es un microprocesador de 8 bits en Lenguaje de Descripción de hardware VHDL( hardware description language), haciendo uso de los conocimientos adquiridos durante el semestre en el manejo y la implementación de diferentes aplicaciones como lo son registros universales, banco de registros o memoria, registros desplazadores, registro sumador y restador registro

description

microprocesadores

Transcript of proyecto - Microprocesador

Page 1: proyecto - Microprocesador

Diseñar e implementar un microprocesador de 8 bits con memoria y visualización en leds utilizando VHDL.

1. Formulación del problema

En la práctica de la microelectrónica en la universidad francisco de paula Santander es importante que el estudiante este bien familiarizado con el Lenguaje de Descripción de hardware VHDL( hardware description language), y a través del semestre se adquieren herramientas para no solo manejar el sistema y las tarjetas de adquisición de datos sino también para realizar algunas aplicaciones más complejas que requieran de la capacidad del estudiante de crear procesos que incluyan el uso de la unidad Aritmetico-Logica ALU, registros, maquinas de estado y sistemas RTL, entre otros sistemas que se simulan en el ámbito del laboratorio, pero la mejor manera de poner en práctica dichos conocimientos es realizando una aplicación que requiera reunir estos componentes en un único proceso o sistema.

El uso de los microprocesadores esta en este momento focalizado en casi todos los ámbitos de la vida que cuente o requiera realizar operaciones ya sean lógicas, matemáticas, desplazamientos como los procesos de lavadoras, secadoras, microondas o cualquier tipo de electrodoméstico que haga uso de secuencias programas de control y más complejas como las millones de operaciones que debe realizar un sistema de alto rendimiento, celulares, palm y por supuesto computadoras.

Pero para los estudiantes de microelectrónica es importante conocer el uso y aplicación de los microprocesadores pero es mas importante implementar un sistema básico como es un microprocesador de 8 bits en Lenguaje de Descripción de hardware VHDL( hardware description language), haciendo uso de los conocimientos adquiridos durante el semestre en el manejo y la implementación de diferentes aplicaciones como lo son registros universales, banco de registros o memoria, registros desplazadores, registro sumador y restador registro de operaciones lógicas y otros componentes que no solo sirven para que el estudiante desarrolle habilidades y destrezas en el uso de esta herramienta de software sino también para que se prepare un camino que tenga como objetivo el desarrollo y puesta en práctica de un microprocesador de 8 bits que realice como mínimo cuatro o cinco de las operaciones básicas de un microprocesador y que use como interfaz una tarjeta de adquisición de datos y periféricos de entrada y salida.

2. JustificaciónLos microprocesadores pueden ser de uso o propósito general, es decir, que permiten ser manipulados para realizar cualquier tarea dentro del rango de operación del microprocesador o de las cantidad de instrucciones y capacidad de

Page 2: proyecto - Microprocesador

ejecución del sistema y de propósito especifico o aplicaciones especificas que son llamados también sistemas embebidos que son los que se realizan para una tarea única y determinada por el programador estos últimos además de que pueden ser bastante complejos generalmente se caracterizan por tener un gran valor comercial; pero para conocer mas a fondo no solo la capacidad sino también la cantidad de instrucciones de un microprocesador es importante partir desde la esencia o el inicio del sistema y que mejor forma de realizar esta labor si no es diseñando un sistema que cumpla con los requerimientos mínimos para un microprocesador que son ALU registros, contador, unidad central de proceso.

El desarrollo de este sistema también permite al estudiante introducirse en el mundo de los programadores y desarrolladores de sistemas complejos como son los microprocesadores ya que estos realizan funciones que se puede simular en menor escala con un sistema de VHDL.

3. Objetivo general y específicos

Objetivo general

Diseño e implementación un microprocesador de 8 bits tipo Von Neuman, cuya estructura responde a la realización de operaciones lógicas y matemáticas.

Objetivos específicos

• Orientación, organización y documentación del proyecto.

• Establecimiento de un set de instrucciones para el microprocesador.

• Diseño e implementación, utilizando la herramienta de xilinx ISE Foundation, cada uno de los módulos de la estructura. (Diseño Comportamental con VHDL)

• Implementación del Top Level asociando los módulos desarrollados durante las prácticas.

• Programar una aplicación sencilla en el microprocesador desarrollado durante el semestre.

• Obtener las conclusiones a que diera lugar el trabajo.

Page 3: proyecto - Microprocesador

4. Marco referencial

Antecedentes

- Simulación de un procesador de 8 bits con Lenguaje de Descripción de Hardware VHDL mediante metodologías de diseño descendente

Descripción: Este documento presenta una visión del diseño descendente de un sistema digital, usando el lenguaje VHDL (VHSIC Hardware Description Language). Se examinan las diferentes etapas de diseño descendente, el cual parte de unos requerimientos específicos de alto nivel que deben ser cumplidos por el sistema para conseguir un óptimo desempeño. El sistema diseñado es un procesador de ocho bits.

Presentado por: Luis Eduardo Abad Quintero

Marco teórico y conceptual

Si se requiere tener una estructura fundamental común, los microprocesadores cuentan con un ciclo de desarrollo general, este ciclo muestra los avances de la ingeniería para maximizar la posibilidad de realizar un sistema efectivo y confiable Cada ciclo de desarrollo se identifica mediante un bloque con una actividad dominante y el resultado primario de cada fase se presenta en la salida del bloque, cada resultado debe estar representado por documentación que describa el sistema en esa etapa en la figura1. Se muestra el ciclo de desarrollo de cualquier sistema embebido

Page 4: proyecto - Microprocesador

Figura 1. Ciclos de desarrollo de un sistema

En la figura 1., se presentan las fases que ocurren por separado o en paralelo pero solo una a la vez y en secuencia , a continuación se presentan la descripción de las fases que son necesarias para este procedimiento.

Análisis de requerimientos

Este análisis presenta un examen a detalle de las necesidades del usuario final, es decir, el problema por resolver. En esta etapa interviene todos aquellos que necesitan del sistema y lo que quieren que hagan y esto último son el punto de inicio del sistema para la posible reactivación para las demás etapas.

Especificaciones

Se basan en los requerimientos funciones, operaciones y la interacción con el usuario. Estas se definen y se simulan para probarlo directamente.

Arquitectura del sistema

Partes que fueron realizadas por los programadores

Esta se realizo usando los programas ise fundation de xilinx y la fpga

Page 5: proyecto - Microprocesador

Esto hace referencia a las especificaciones de software y hardware, es este caso especialmente software; en esta etapa se define que tipo se va a utilizar y cada elemento se describe por separado.

Diseño de hardware

Durante este paso se definen las funciones y la interfaz de entrada y salida: las primeras en forma general y la segunda de manera específica. Esta fase incluye el nombre de señales, funciones, y características así como diagramas de bloques del sistema. Implementación del hardware

En esta etapa se eligen los dispositivos que van a integrar el sistema, también se llevan a cabo un análisis de tiempo así como diagramas esquemáticos y diagramas de tiempo. Todo esto permite la construcción de un prototipo.

Pruebas de hardware

Esta etapa consiste en realizar pruebas individuales a los dispositivos para determinar sus especificaciones y el tiempo que precisan a fin de ejecutar un proceso.

Diseño de software

Se diseña la ejecución del flujo de datos y se implementan las funciones y procedimientos de cada módulo para que interactúen. Lo anterior permite jerarquizar el funcionamiento de los módulos que componen al sistema.

Implementación del software

Consiste en definir los algoritmos a detalle y las estructuras de datos que se van a desarrollar; además, el software se diseña de modo que pueda corren en otras aplicaciones. Todos los errores detectados se corrigen en este momento.

Pruebas de software

Los módulos programados en la eta de implementación del software se prueban de forma individual mediante la simulación.

Factores que se deben considerar para el diseño de un sistema embebido

Page 6: proyecto - Microprocesador

Como puede advertirse en el diseño de sistemas embebidos hay que considerar diferentes factores:- Las dimensiones de la memoria de acceso rápido RAM, esta debe ser

suficiente para soportar las variables globales y locales.- Es deseable que tenga velocidad para ejecutar el software en tiempo real- El tamaño de los datos de 8, 16, 32 bits, deben coincidir con los datos que

se van a procesar- Las operaciones numéricas y lógicas.

Figura 2. Diagrama de bloques

SALIDA DE DATOS

MAR REGIS

UNIDAD DE

CONTROL

GEN TIME

EN

TRA

DA D

ATOS

Page 7: proyecto - Microprocesador

Diseño de un microprocesador en VHDL

Figura 3. Entidad del microprocesador

Como se pudo apreciar antes, los sistemas embebidos tienen una infinidad de aplicaciones, estos dispositivos realizan, operaciones y controlan otros dispositivos para lo cual reciben información y dan ordenes a fin de que los elementos trabajen.

El diseño de los microprocesadores se facilita gracias a la diversidad de herramientas que hay en la actualidad, el VHDL es una herramienta muy poderosa debido a su flexibilidad y a la capacidad de simulación en tiempo real del sistema.

Como se puede observar de todo las fases del diseño del sistema de microprocesadores solo se centra el diseño en el software.

El diagrama de bloques del procesador que se diseño se muestra en la figura 2. Cabe mencionar que entre sus principales características se encuentraBus de direcciones de 8 bits, bus de datos de 5 bits, 1 línea de interrupción. El microprocesador que se diseño consta de 6 bloques.

A continuación se muestran las funciones y bloques de un tipo de microprocesador y se muestra paso a paso los componentes que utilizamos en el micro-procesador

Contador de programas (PC) Registro general Unidad de control Registro MAR Memoria

Page 8: proyecto - Microprocesador

Divisor de frecuencia ALU (Unidad Aritmética y Lógica) Unidad de Control

Figura4. Microprocesador con lineas de conexión entre fuentes

En general este microprocesador realiza cada una de las funciones de la ALU, que son generadas a través del bus de direcciones que permite la puesta en marcha del contador que sirve para generar los datos de direcciones para reorganizar los datos de memoria y que estos salgan al dato b, para que con el dato a y la instrucción de operación se realice para finalmente mostrar los resultados en los leds.

CONTADOR DE PROGRAMAS

Un contador de programa (PC) es un registro de 3 bits que contiene la dirección del siguiente registro donde se encuentra la dirección de la instrucción que se buscará en la memoria para su ejecución. El contador de programa genera direcciones diferentes, es decir, 16 direcciones únicas, a las cuales el micro-procesador debe habilitar cada una de ellas.

El bus de direcciones es unidireccional y sólo permite salidas del micro-procesador hacia los diferentes dispositivos. Cada vez que se ejecuta una instrucción, el contador se incrementa.

Page 9: proyecto - Microprocesador

Figura 5. Entidad contador de programas

El contador de programa se inicializa cuando el “bus_uc” entrega la palabra de control que permite que los datos del contador se generen.

REGISTRO MAR

El registro permite que las direcciones generadas por el contador de programa salgan con el objeto de leer o escribir un dato, según el valor de la señal R/W. Además de que validad a la memoria para que realice dicha operación

Figura 6. Entidad registro MAR

Cuando sin importar que datos se quiera obtener de la memoria ram el mar permite direccionar este dato calor siempre y cuando este disponible en la memoria

ALU(Unidad Aritmética y Lógica)

La unidad aritmética y lógica es una función multioperacional digital de lógica combinacional. Puede realizar un conjunto de operaciones aritmética básica y otro de operaciones lógicas.

En este componente también utilizamos banderas como:

Acarreo (C): este bit (bit 0) del registro de códigos de condición se coloca en “1” si después de la ejecución de ciertas instrucciones hay un acarreo del bit más significativo de la operación que se está ejecutando; de otra manera se coloca en “0”.

Page 10: proyecto - Microprocesador

Sobreflujo (V): este bit (bit 3) del registro de códigos de condición se pone en “1” cuando un sobreflujo en complemento a 2 resulta de una operación aritmética; se coloca en “0” si el sobreflujo no ocurre en ese tiempo.

Cero (Z): este bit (bit 2) del registro de códigos de condición se coloca en “1” si el resultado de la operación lógica o aritmética es cero.

Negativo(N): este bit (bit 1) del registro de códigos de condición se coloca en “1” si el bit 4 del resultado de una operación lógica o aritmética es igual a “1”, de lo contrario se coloca en “0”.

Figura 7. Entidad ALU

La ALU como se decia anteriormente realiza operaciones aritmeticologicas basicas sumar, resta, and, y or en secuencia segunel dato que provenga del bus de direcciones.

UNIDAD DE CONTROL

La unidad de control (CU) sincroniza cada una de las acciones realizadas por el micro-procesador; asimismo, determina en que tiempo, hacia donde se mandan los datos o de donde vienen, decodifica y revisa que se ejecute.

Figura 8. Entidad unidad de control

Page 11: proyecto - Microprocesador

MEMORIA

La memoria mem, es la que registra los datos con el cual se va a realizar la operación en la alu, además esta muestra el dato después de que se habilita en el registro mar.

Figura 9. Entidad memoria

DIVISOR DE FRECUENCIA

Es uno de los bloques más importantes ya que este es el que genera los tiempos de ejecución y va directo a la unidad de control. El divisor de frecuencia permite generar tiempos de 1 segundo y también permite que los datos de contador de programa se generen de forma adecuada.

Figura 10. Entidad registro divisor de frecuencia

Ver en anexo programa en VHDL

INSTRUCCION BITDIR DESCRIPCION DIRA+B ADD CARGA DATOS EN A 000A-B SUBB 001AND AANDB 010OR AORB 111OPERACION DIRECCIONAMIENTO

A+B CARGA SUMA 10100A-B CARGA RESTA 10001AND CARGA AND 10110OR CARGA OR 10010

M b CARGA DATO EN B X1XXXXOP RTDO MUESTRA RESULTADO

Page 12: proyecto - Microprocesador

TABLA1. INSTRUCCIONES

ASIGNACION DE PINES

ENTRADAS SALIDAS ASIGNACION PINES

E6 4 7 D6C5 6 9 E7C6 8 11 D7C7 10 13 D8C8 12 15 D10C9 14 17 B4A3 16 19 B5A4 18 21 B6A5 20 VCC 3B7 22 TIERRA 1B8 24

TABLA3. ASIGANCION DE PINES

DISEÑO METODOLÓGICO DEFINITIVO

ESQUEMA TEMÁTICO DE LOS ALCANCES TÉCNICOS

ACTIVIDADES Y METODOLOGÍA

Para cumplir con los objetivos propuestos se llevó a cabo las siguientes

actividades y metodologías:

Se recolectó la información necesaria respecto al diseño e implementación del

microprocesador.

Actividad: la información que se requería para la metodología de

diseño y arquitectura se obtuvo a través de las clases y de los

laboratorios. con base al diseño e implementación de una interfaz

grafica, de acuerdo a los sistemas de control y automatización.

Metodología: Se fueron implementado una a una las fuentes que se

hacen necesarias para organizar y redireccionar los elementos del

microprocesador.

Page 13: proyecto - Microprocesador

Se diseñó una interfaz gráfica óptima y sencilla, para el desarrollo de l micro

procesador.

Actividad: Se diseñó una interfaz grafica que es de fácil manejo

Metodología: Se desarrolló a través de la información adquirida por

los libros y el profesor y el uso de la arquitectura Von Newman

cumpliendo con todos los requisitos planteados, y se hicieron

exposiciones y foros en internet para promulgar los beneficios.

5. Cronograma

ACTIVIDADSEMANA

1 2 3 4 5 6 7 8 9 10 11 12

Diseño y simulación ALU

Diseño y simulación contador

Diseño y simulación mem y mar.

Diseño y simulación contador

Diseño y simulación divisor de frec.

Diseño y simulación unidad de control

Unificación del las fuentes

pruebas

Entrega de proyecto final

Tabla 3. Cronograma de actividades

Page 14: proyecto - Microprocesador

Bibliografía

MAXINE, David, El arte de programar sistemas digitales

webgrafia

http://pci.unalmzl.edu.co/Tesis/luiseduardoabad.pdf

http://www.iberchip.net/IX/Articles/POST-123.pdf

↑  «The Intel 4004: A testimonial from Federico Faggin, its designer, on the first

microprocessor's thirtieth birthday». Faggin's own 4004 website.

↑  «Lista Top500 de noviembre de 2002». Top500.

↑  «Molibdenita, ¿adiós al silicio?». MuyComputer.com.

↑  http://www.profesorbot.com/curiosidad/nobel-de-fisica-grafeno/

↑  «Core 2 Extreme: 3,66 GHz And FSB 1333 - Review Tom's Hardware   : THG Tuning Test:

Core 2 Extreme vs. Athlon 64 FX-62»