You are on page 1of 24

Disear e implementar e implementar un microprocesador de 8 bits con memoria y visualizacin en leds utilizando VHDL.

1. Formulacin del problema

En la prctica de la microelectrnica en la universidad francisco de paula Santander es importante que el estudiante este bien familiarizado con el Lenguaje de Descripcin de hardware VHDL( hardware description language), y a travs del semestre se adquieren herramientas para no solo manejar el sistema y las tarjetas de adquisicin de datos sino tambin para realizar algunas aplicaciones mas 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 prctica dichos conocimientos es realizando una aplicacin 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 lgicas, matemticas, desplazamientos como los procesos de lavadoras, secadoras, microondas o cualquier tipo de electrodomstico que haga uso de secuencias programas de control y ms 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 microelectrnica es importante conocer el uso y aplicacin de los microprocesadores pero es mas importante implementar un sistema bsico como es un microprocesador de 8 bits en Lenguaje de Descripcin de hardware VHDL( hardware description language), haciendo uso de los conocimientos adquiridos durante el semestre en el manejo y la implementacin de diferentes aplicaciones como lo son registros universales, banco de registros o memoria, registros desplazadores, registro sumador y restador registro de operaciones lgicas y otros componentes que no solo sirven para que el estudiante desarrolle habilidades y destrezas en el uso de esta herramienta de software sino tambin para que se prepare un camino que tenga como objetivo el desarrollo y puesta en prctica de un microprocesador de 8 bits que realice como mnimo cuatro o cinco de las operaciones bsicas de un microprocesador y que use como interfaz una tarjeta de adquisicin de datos y perifricos de entrada y salida.

2. Justificacin Los microprocesadores pueden ser de uso o propsito general, es decir, que permiten ser manipulados para realizar cualquier tarea dentro del rango de operacin del microprocesador o de las cantidad de instrucciones y capacidad de ejecucin del sistema y de propsito especifico o aplicaciones especificas que son llamados tambin sistemas embebidos que son los que se realizan para una tarea nica y determinada por el programador estos ltimos adems 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 tambin 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 diseando un sistema que cumpla con los requerimientos mnimos para un microprocesador que son ALU registros, contador, unidad central de proceso. El desarrollo de este sistema tambin 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 especficos

Objetivo general Diseo e implementacin un microprocesador de 8 bits tipo Von Neuman, cuya estructura responde a la realizacin de operaciones lgicas y matemticas.

Objetivos especficos Orientacin, organizacin y documentacin de el proyecto. Establecimiento de un set de instrucciones para el microprocesador. Diseo e implementacin, utilizando la herramienta de xilinx ISE Foundation, cada uno de los mdulos de la estructura. (Diseo Comportamental con VHDL) Implementacin del Top Level asociando los mdulos desarrollados durante las prcticas. Programar una aplicacin sencilla en el microprocesador desarrollado durante el semestre. Obtener las conclusiones a que diera lugar el trabajo.

4. Marco referencial

Antecedentes Simulacin de un procesador de 8 bits con Lenguaje de Descripcin de Hardware VHDL mediante metodologas de diseo descendente Descripcin: Este documento presenta una visin del diseo descendente de un sistema digital, usando el lenguaje VHDL (VHSIC Hardware Description Lenguage). Se examinan las diferentes etapas de diseo descendente, el cual parte de unos requerimientos especficos de alto nivel que deben ser cumplidos por el sistema para conseguir un ptimo desempeo. El sistema diseado es un procesador de ocho bits. Presentado por: Luis Eduardo Abad Quintero

Marco terico y conceptual Si se requiere tener una estructura fundamental comn, los microprocesadores cuentan con un ciclo de desarrollo general, este ciclo muestra los avances de la ingeniera 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 documentacin que describa el sistema en esa etapa en la figura1. Se muestra el ciclo de desarrollo de cualquiers sistema embebido

Partes que fueron realizadas por los programadores

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

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 continuacin se presentan la descripcin de las fases que son necesarias para este procedimiento. Anlisis de requerimientos Este anlisis 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 ultimo son el punto de inicio del sistema para la posible reactivacin para las dems etapas. Especificaciones Se basan en los requerimientos funciones, operaciones y la interaccin con el usuario. Estas se definen y se simulan para probarlo directamente.

Arquitectura del sistema Esto hace referencia a las especificaciones de software y hadware, es este caso especialmente software; en esta etapa se define que tipo se va a utilizar y cada elemento se describe por separado. Diseo 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 especfica. Esta fase incluye el nombre de seales, funciones, y caractersticas as como diagramas de bloques del sistema. Implementacin del hardware En esta etapa se eligen los dispositivos que van a integrar el sistema, tambin se llevan a cabo un anlisis de tiempo as como diagramas esquemticos y diagramas de tiempo. Todo esto permite la construccin 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. Diseo de software Se disea la ejecucin del flujo de datos y se implementan las funciones y procedimientos de cada mdulo para que interacten. Lo anterior permite jerarquerizar el funcionamiento de los mdulos que componen al sistema. Implementacin del software Consiste en definir los algoritmos a detalle y las estructuras de datos que se van a desarrollar; adems, el software se disea de modo que pueda corren en otras aplicaciones. Todos los errores detectados se corrigen en este momento. Pruebas de software Los mdulos programados en la eta de implementacin del software se prueban de forma individual mediante la simulacin.

Factores que se deben considerar para el diseo de un sistema embebido Como puede advertirse en el diseo de sistemas embebidos hay que considerar diferentes factores: - Las dimensiones de la memoria de acceso rpido 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 tamao de los datos de 8, 16, 32 bits, deben coincidir con los datos que se van a procesar - Las operaciones numricas y lgicas.

GEN TIME

ENTRADA DATOS

UNIDAD DE CONTROL

REGIS

MAR

SALIDA DE DATOS

Figura 2. Diagrama debloques

Diseo 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 informacin y dan ordenes a fin de que los elementos trabajen. El diseo 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 simulacin en tiempo real del sistema. Como se puede observar de todo las fases del diseo del sistema de microprocesadores solo se centra el diseo en el software. El diagrama de bloques del procesador que se diseo se muestra en la figura 2. Cabe mencionar que entre sus principales caractersticas se encuentra Bus de direcciones de 8 bits, bus de datos de 5 bits,1 linea de interrupcin. El micropocesador que se diseo consta de 6 bloques. A continuacin 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 Divisor de frecuencia ALU (Unidad Aritmtica y Lgica) Unidad de Control

Figura4. Microprocesador con lineas de conexin entre fuentes

En general este microprocesador realiza cada una de las funciones de la ALU, que son generadas atraves 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 instruccin de operacin 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 direccin del siguiente registro donde se encuentra la direccin de la instruccin que se buscar en la memoria para su ejecucin. 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 slo permite salidas del micro-procesador hacia los diferentes dispositivos.Cada vez que se ejecuta una instruccin, el contador se incrementa.

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, segn el valor de la seal R/W. Adems de que validad a la memoria para que realice dicha operacin

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 Aritmtica y Lgica) La unidad aritmtica y lgica es una funcin multioperacional digital de lgica combinacional. Puede realizar un conjunto de operaciones aritmtica bsicas y otro de operaciones lgicas. En este componente tambin utilizamos banderas como : Acarreo (C): este bit (bit 0)del registro de cdigos de condicin se coloca en 1 si despus de la ejecucin de ciertas instrucciones hay un acarreo del bit mas

significativo de la operacin que se esta ejecutando; de otra manera se coloca en 0. Sobreflujo(V): este bit(bit 3) del registro de cdigos de condicin se pone en 1 cuando un sobreflujo en complemento a 2 resulta de una operacin aritmtica; se coloca en 0 si el sobreflujo no ocurre en ese tiempo. Cero(Z): este bit (bit 2) del registro de cdigos de condicin se coloca en 1 si el resultado de la operacin lgica o aritmtica es cero. Negativo(N): este bit (bit 1) del registro de cdigos de condicin se coloca en 1 si el bit 4 del resultado de una operacin lgica o aritmtica 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

MEMORIA La memoria mem, es la que registra los datos con el cual se va a realizar la operacin en la alu, adems esta muestra el dato despus de que se habilita en el registro mar.

Figura 9. Entidad memoria

DIVISOR DE FRECUENCIA Es uno de los bloques mas importantes ya que este es el que genera los tiempos de ejecucin y va directo a la unidad de control. El divisor de frecuencia permite generar tiempos de 1 segundo y tambin 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 A+B ADD CARGA DATOS EN A A-B SUBB AND AANDB OR AORB OPERACION A+B CARGA SUMA A-B CARGA RESTA AND CARGA AND OR CARGA OR M OP b RTDO CARGA DATO EN B MUESTRA RESULTADO

DIR 000 001 010 111 DIRECCIONAMIENTO 10100 10001 10110 10010 X1XXXX

TABLA1. INSTRUCCIONES

ASIGNACION DE PINES E6 C5 C6 C7 C8 C9 A3 A4 A5 B7 B8

ENTRADAS 4 6 8 10 12 14 16 18 20 22 24

SALIDAS 7 9 11 13 15 17 19 21 VCC TIERRA

ASIGNACION PINES D6 E7 D7 D8 D10 B4 B5 B6 3 1

TABLA3. ASIGANCION DE PINES

6. DISEO METODOLGICO DEFINITIVO 6.3 6.3.1 ESQUEMA TEMTICO DE LOS ALCANCES TCNICOS

ACTIVIDADES Y METODOLOGA

Para cumplir con los objetivos propuestos se llev a cabo las siguientes actividades y metodologas:

Se recolect la informacin necesaria respecto al diseo e implementacin del microporcesador. Actividad: la informacin que se requera para la metodologa de diseo y arquitectura se obtuvo a travs de las clases y de los laboratorios. con base al diseo e implementacin de una interfaz grafica, de acuerdo a los sistemas de control y automatizacin. Metodologa: Se fueron implementado una a una las fuentes que se hacen necesarias para organizar y redireccionar los elementos del microporcesador. Se dise una interfaz grfica ptima y sencilla, para el desarrollo de l micro porecesador. Actividad: Se dise una interfaz grafica que es de fcil manejo Metodologa: Se desarroll atraves del la informacin adquirida por los libros y el profesor y el uso de la aquitectura Von Newman cumpliendo con todos los requisitos planteados, y se hicieron exposiciones y foros en internet para promulgar los beneficios.

5. Cronograma

ACTIVIDAD

SEMANA 1 2 3 4 5 6 7 8 9

10

11 12

Diseo y simulacin ALU Diseo y simulacin contador

Diseo y simulacin mem y mar. Diseo y simulacin contador Diseo y simulacin divisor de frec. Diseo y simulacin unidad de control Unificacin del las fuentes pruebas Entrega de proyecto final Tabla 3. Cronograma de actividades .

Bibliografa

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, adis 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

ANEXOS

TODOTODITO -library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity MEM is port (clk_mar: in std_logic; --RD: in STD_LOGIC; WR: in STD_LOGIC; ADDR: in STD_LOGIC_VECTOR(7 downto 0); DIN: in STD_LOGIC_VECTOR(7 downto 0); DOUT: out STD_LOGIC_VECTOR(7 downto 0)); end MEM; architecture Behavioral of MEM is signal flash : STD_LOGIC_VECTOR(7 downto 0); --signal addr_m: std_logic_vector (7 downto 0); begin process ( clk_mar, WR, ADDR, DIN) begin if clk_mar'event and clk_mar='1' then if (WR = '1') then flash <= DIN; end if; if (WR = '0') then case ADDR is when "00000000" => DOUT <= "00000010"; -when "00000001" => DOUT <= "00000011"; -when "00000010" => DOUT <= "00000001"; -when "00000011" => DOUT <= "11010101"; -when "00000100" => DOUT <= "00000001"; -when "00000101" => DOUT <= "00000010"; when "00000110" => DOUT <= "00000010"; -when "00000111" => DOUT <= "00000010"; ---when "00001000" => DOUT <= "00000000"; ---when "00001001" => DOUT <= "00000000"; --

--

--when "00001010" => DOUT <= "00000000"; -when others => DOUT <= "11111111"; end case; end if; end if; end process; end Behavioral; DIVISOR_RELOJ Company: -- Engineer: --- Create Date: 17:59:32 07/1/2011 -- Design Name: -- Module Name: divisor_reloj - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: --- Dependencies: --- Revision: -- Revision 0.01 - File Created -- Additional Comments:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity div_clk is port( clk_div:in std_logic; reloj:out std_logic); end div_clk; architecture Behavioral of div_clk is signal aux:integer range 0 to 45000000 ; begin process(clk_div,aux) begin if clk_div'event and clk_div='1' then aux<=aux+1; if aux=45000000 then reloj<='1'; aux<=0; else reloj<='0'; end if; end if; end process; end Behavioral;

UNIDAD_CONTROL
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity U_CONTROL is

port(

inst : in STD_LOGIC_VECTOR (2 downto 0);--dato de entrada y es un vector de operacion rst_uc: in std_logic; -- reset datin: in std_logic_vector (3 downto 0); -- dato de entrada para operacion clk_uc : in STD_LOGIC; -- reloj del divisor en: in std_logic; --no operando dato_uc: out std_logic_vector ( 7 downto 0); -- resultado operacion y es una senal bus_uc: out std_logic_vector (4 downto 0); --vector de interrupciones y es una senal load_uc : out STD_LOGIC_VECTOR (2 downto 0)); -- senal de salida

end U_CONTROL; architecture Behavioral of U_CONTROL is type estado is (ini,load_ins, add,subb,aandb,aorb); signal presente,futuro: estado; signal sal_dat: std_logic_vector ( 7 downto 0); begin process (rst_uc,inst, clk_uc) begin if rst_uc='1' then futuro<=ini; else case presente is when ini=> load_uc<="000"; bus_uc<="10000"; sal_dat<="00000000"; case inst is when "000" => futuro <=add; when "001"=> futuro <=subb; when "010"=> futuro <=aandb; when "011"=> futuro <=aorb; when others => futuro <=ini; end case; when add=> bus_uc<="10100"; load_uc<="000"; futuro <= ini; sal_dat<="0000"&datin; when subb => bus_uc<="10001"; load_uc<="001"; futuro <= ini; sal_dat<="0000"&datin; when aandb => bus_uc<="10110"; load_uc<="010"; futuro <= ini; sal_dat<="0000"&datin; when aorb => bus_uc<="10010"; load_uc<="011"; futuro <= ini; sal_dat<="0000"&datin; when others => futuro <=ini;

end case; end if; end process; process (clk_uc,presente) begin if clk_uc'event and clk_uc='1' then presente<=futuro; dato_uc<=sal_dat; end if; end process; end Behavioral;

CONTADOR
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity contador is port ( clk_c, en_c, e_cc: in std_logic; load_c: in std_logic_vector (2 downto 0); sal_c : OUT std_logic_vector (2 downto 0); en_ptc: in std_logic; det_c: in std_logic); end contador; architecture Behavioral of contador is signal cont :std_logic_vector(2 downto 0); begin process (clk_c,en_c,e_cc, load_c,en_ptc ) begin if clk_c='1' and clk_c'event and en_ptc='0' then -- enable palabra control if e_cc='1' then -- control if en_c='1' then -- eneable para contar cont<=load_c; elsif en_c='0' then cont <= cont + 1; elsif det_c='1' then cont<=cont; elsif cont="111" then cont<="000"; end if; end if; end if; if en_ptc='1' then cont <= (others => '0'); end if; sal_c<=cont; end process; end behavioral; ALU library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity ALU8 is port( --clk: in std_logic; a,b: in std_logic_vector(7 downto 0); MC: in std_logic_vector(2 downto 0); -- selector de operacion oper: out std_logic_vector(7 downto 0); rcc: inout std_logic_vector(3 downto 0)); --- indica si hay sobreflujo, bandera cero, signo y acarreo end ALU8; architecture Behavioral of ALU8 is signal c1: std_logic_vector (5 downto 0); SIGNAL OP: std_logic_vector (7 downto 0); begin process (MC, a,b ) variable cout: std_logic; begin case MC is when "000"=> OP <= (a + b); c1(0)<=(a(1) and b(1)) or ((a(0)and b(0)) and (a(1) xor b(1))); c1(1)<=(a(2) and b(2)) or (c1(0) and (a(2)xor b(2))); c1(2)<=(a(3) and b(3)) or (c1(1) and (a(3)xor b(3))); c1(3)<=(a(4) and b(4)) or (c1(2) and (a(4)xor b(4))); c1(4)<=(a(5) and b(5)) or (c1(3) and (a(5)xor b(5))); c1(5)<=(a(6) and b(6)) or (c1(4) and (a(6)xor b(6))); cout:=(a(7) and b(7)) or (c1(5) and (a(7)xor b(7))); when "001" => OP <= (a - b); if (a>=b) then cout:='1'; c1(0)<='1'; else cout:='0'; c1(0)<='0'; end if; when "100" => OP <= (a and b); cout:='0'; c1(0)<='0'; when "011"=> OP <= (a or b); cout:='0'; c1(0)<='0'; when "010"=> OP <= (not a); cout:='0'; c1(0)<='0'; when "101"=> OP <= (a xor b); cout:='0'; c1(0)<='0'; when "110"=> OP <= (a or "11111111"); cout:='0'; c1(0)<='0'; when others => null; end case; oper<= OP; rcc(3)<= cout xor c1(5); -- sobrefujo rcc(2)<= not (OP(7) or OP(6) or OP(5) or OP(4) or OP(3) or OP(2) or OP(1) or OP(0));-- cero rcc(1)<= OP(7);-- signo rcc(0)<= cout; --acarreo end process; end Behavioral;

MAR

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity MAR is port( CLK_MAR: in STD_LOGIC; EN: in STD_LOGIC; DATA: in STD_LOGIC_VECTOR(2 downto 0); ADDR: out STD_LOGIC_VECTOR(7 downto 0)); end MAR; architecture Behavioral of MAR is begin process(CLK_MAR, EN, DATA) begin if (CLK_MAR'EVENT and CLK_MAR = '1') then if (EN = '0') then ADDR <= "00000"&DATA; end if; end if; end process; end Behavioral;

MEM
entity MEM is port (clk_mar: in std_logic; WR: in STD_LOGIC; ADDR: in STD_LOGIC_VECTOR(7 downto 0); DIN: in STD_LOGIC_VECTOR(7 downto 0); DOUT: out STD_LOGIC_VECTOR(7 downto 0)); end MEM; architecture Behavioral of MEM is signal flash : STD_LOGIC_VECTOR(7 downto 0); begin process ( clk_mar, WR, ADDR, DIN) begin if clk_mar'event and clk_mar='1' then if (WR = '1') then flash <= DIN; end if; if (WR = '0') then case ADDR is when "00000000" => DOUT <= "00000010"; -- lda when "00000001" => DOUT <= "00000011"; -- 226 when "00000010" => DOUT <= "00000001"; -- suma when "00000011" => DOUT <= "11010101"; -- 5 when "00000100" => DOUT <= "00000001"; -- bnz when "00000101" => DOUT <= "00000010"; -- 2 when "00000110" => DOUT <= "00000010"; -- lda when "00000111" => DOUT <= "00000010"; -- 10 when others => DOUT <= "11111111"; end case; end if; end if; end process; end Behavioral;

DISEAR E IMPLEMENTAR E IMPLEMENTAR UN MICROPROCESADOR DE 8 BITS CON MEMORIA Y VISUALIZACIN EN LEDS UTILIZANDO VHDL.

ANDRES MAURICIO QUINTERO COD: 0160839 KELLY JOHANA RODRIGUEZ CADAVID COD:0160706 CAROLINA PAEZ VALDEZ COD:0160749 DANIEL MAURICIO CONTRERAS ORTIZ COD: 0160555

PRESENTADO A ING. JOSE ARMANDO BECERRA

Universidad francisco de Paula Santander Facultad de ingenieras Departamento de electricidad y electrnica Ingeniera electrnica 2011

You might also like