You are on page 1of 11

CENTRO DE ENSEANZA TECNICA INDUSTRIAL

NAYSHA ELIZABETH CHIRE LLONTOP REGISTRO: 9300119

PRACTICA NO. 5 MICROPROCESADOR EN VHDL SISTEMAS DIGITALES II JOSE MA. VALENCIA

GUADALAJARA JAL., A 8 DE MAYO DEL 2012

OBJETIVO Al finalizar la prctica el alumno debe ser capaz de: 1. Describir el funcionamiento general de un microprocesador. 2. Describir el funcionamiento de los bloques que componen un microprocesador. 3. Modelar y simular un microprocesador de 4 bits en VHDL. INVESTIGACIN TERICA Microprocesador El microprocesador, o CPU (Unidad Central de Procesamiento por sus siglas en ingls), es un chip integrado por millones de transistores dentro de una cpsula de variados tamaos, segn el tipo de computadora que deba integrar. Generalmente se lo compara con un cerebro humano para intentar explicar el rol que cumple dentro de una computadora. Se instalan sobre un zcalo dispuesto en la placa madre y presentan en general una forma de prisma delgado. En su proceso de evolucin, estos microchips comenzaron a producir cada vez ms calor, por lo cual se disearon sistemas de enfriamiento, generalmente en base a ventiladores, tambin llamados coolers. El microprocesador se encarga del control y el procesamiento de datos en todo el ordenador. Para esta tarea es necesario que le ayuden otros elementos capaces de realizar funciones especficas y as liberar de trabajo costoso y difcil al microprocesador. Unidad Aritmetico-Lgica (ALU): Lleva a cabo las funciones de procesamiento de datos. Unidades Funcionales: se encargan de operaciones matemticas especficas, y as sacan y facilitan el trabajo al microprocesador. (sumas, multiplicaciones, dividir por nmeros enteros, etc.) Registros: Almacenan datos durante cierto tiempo, dentro la CPU. etc. Todos estos elementos estn conectados entre s por medio de un conjunto de circuitos o conexiones nombrado bus. Todo su funcionamiento se basa en interpretar las seales elctricas como nmeros y de esta forma poder operar sobre ellas, para lo cual hace servir mtodos como la lgebra de Boole. El nombre de microprocesador nos describe slo el conjunto de todos los componentes que forman la CPU una vez encajados y listos para funcionar. Podemos dividir cualquier procesador en dos grandes bloques: la Unidad de Control (UC) y la Unidad de Proceso (UP), se comunican constantemente entre ellas. La Unidad de Control es la encargada de gestionar y controlar el correcto funcionamiento de la Unidad de Proceso, que es la que realiza el trabajo. Esta tarea de gestin y control de la UC, se lleva a cabo mediante la activacin/desactivacin de seales enviadas a la UP, indicadoras de qu acciones he de tomar en cada momento.

La Unidad de Proceso est formada por ms componentes tales como : la ALU, Registros, y buses. En la imagen podemos ver el interior de la UP, sta en particular es muy simple, tiene unos cuntos registros, tres buses y una ALU. Los buses A y B traen los datos de los registros hasta la ALU para ser operados, y el C se encarga de llevar los datos resueltos hacia la memoria, o a los registros para ser sobreescritos con un nueve valor.

La UC en cambio, es la encargada de controlar y dar rdenes (qu rdenes pasan y por dnde, quien va primero, como se ha de operar, etc.) sobre todos los procesos que se lleven a trmino dentro la UP. Estas rdenes son en el interior de la instruccin a ejecutar, por lo tanto podemos deducir que todas las instrucciones primero pasan por la UC y de aqu hacia la UP. La instruccin, contiene en su interior los datos a operar, y al principio de todo el tipo de operacin a realizar con aquellos datos.

Hay diferentes tipos de operaciones: De transferencia de datos : Es la ms tpica, implica mover datos desde un sitio a otro. Se ha de especificar la direccin de entrada y la direccin de destino, y la longitud a transferir. Aritmticas : Cuando se usan las operaciones bsicas (suma, resto, multiplicacin y divisin). Tambin hay de otros tipos como coger el valor absoluto de un nmero, negar (invertir) el operando. Se pueden llevar a cabo sobre nmeros enteros, pero tambin es necesario sobre reales. Este tipo de operaciones son llevadas a cabo por la ALU, la cual puede hacer necesario una operacin de transferencia de datos. Lgicas : Realizan operaciones bit a bit, lo hace intermediando operaciones boleanas NOT AND OR XOR.... Tienen mltiples utilidades, sobre todo si se combinan con operaciones que muevan bit a bit. De conversin : Se cambia el formato de los datos, puede ser necesario involucrar alguna operacin de: transferencia, aritmticas, lgicas, etc. ... De Entrada/Salida : Tienen que ver con la gestin de los dispositivos de E/S, a menudo utilizan interrupciones. De control del sistema : Tienen ciertos privilegios sobre los otros tipos de operaciones, por lo general solamente pueden ser ejecutadas por el Sistema Operativo. De transferencia de control : Cambian el orden secuencial normal de la ejecucin de un programa. la operacin que indique estas instrucciones es el cambio del contador del PC (memoria interna de la CPU) a la siguiente direccin a procesar. se usan para acortar la longitud de programas.

BIBLIOGRAFA http://www.mastermagazine.info/termino/5881.php http://www.hardware12v.com/conocimientospc/21.php


DESARROLLO TEORICO 1. Modelar y simular en VHDL un microprocesador de 4 bits: Microprocesador library ieee; use ieee.std_logic_1164.all; Entity u_pro is

Port( clk: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end u_pro; Architecture funcional of u_pro is Signal a,b,c,d,e: std_logic; signal s0, s1, s2, s3, s4, s6, s7: std_logic_vector (3 downto 0); Signal s8: std_logic_vector (0 to 7); Component ALU Port ( DI: in std_logic_vector (0 to 7); RD: in std_logic_vector (3 downto 0); ACC: in std_logic_vector (3 downto 0); s: buffer std_logic_vector (3 downto 0) ); end component; component state_machine Port( clk: in std_logic; a,b,c,d,e: out std_logic ); end component; component reg_ins Port( e: in std_logic_vector (3 downto 0); a: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end component; component reg_dat Port( e: in std_logic_vector (3 downto 0); b: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end component; component mem Port( dir: in std_logic_vector (3 downto 0); s: buffer std_logic_vector (3 downto 0) ); end component; component deco_ins Port( e: in std_logic_vector (3 downto 0); s: out std_logic_vector (0 to 7) ); end component; component cont_prog Port(

E: in std_logic; s: out std_logic_vector (3 downto 0) ); end component; component ACT Port( e: in std_logic_vector (3 downto 0); C: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end component; component ACC Port( e: in std_logic_vector (3 downto 0); D: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end component; Begin u1: ALU port map (DI=>s8, RD=>s1, ACC=>s3, s=>s); u2: state_machine port map (clk=>clk, a=>a, b=>b, c=>c, d=>d, e=>e); u3: reg_ins port map (e=>s6, a=>a, s=>s0); u4: reg_dat port map (e=>s6, b=>b, s=>s1); u5: mem port map (dir=>s7, s=>s6); u6: deco_ins port map (e=>s0,s=>s8); u7: cont_prog port map (e=>e, s=>s7); u8: ACT port map (e=>s,c=>c, s=>s4); u9: ACC port map (e=>s4, d=>d, s=>s3); end funcional; Unidad lgica Aritmtica Maquina de estados library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity state_machine is Port( clk: in std_logic; a,b,c,d,e: out std_logic ); end state_machine; architecture funcional of state_machine is begin Process (clk) variable contador :integer range 0 to 6 ; begin if (clk' event and clk='0') then contador:=contador+1; if(contador=0) then a<='0';

b<='0'; c<='0'; d<='1'; e<='0'; elsif(contador=1) then a<='1'; b<='0'; c<='0'; d<='0'; e<='0'; elsif (contador=2)then a<='0'; b<='0'; c<='0'; d<='0'; e<='1'; elsif (contador=3)then a<='0'; b<='1'; c<='0'; d<='0'; e<='0'; elsif (contador=4)then a<='0'; b<='0'; c<='0'; d<='0'; e<='1'; elsif (contador=5)then a<='0'; b<='0'; c<='1'; d<='0'; e<='0'; elsif (contador=6)then a<='0'; b<='0'; c<='0'; d<='0'; e<='0'; end if; end if; end process; end funcional; Registro de instrucciones library ieee; use ieee.std_logic_1164.all; Entity reg_ins is Port(

e: in std_logic_vector (3 downto 0); a: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end reg_ins; Architecture funcional of reg_ins is Begin Process (a) Begin if (a' event and a='1') then s<=e; end if; end process; end funcional; Registro de datos library ieee; use ieee.std_logic_1164.all; Entity reg_dat is Port( e: in std_logic_vector (3 downto 0); b: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end reg_dat; Architecture funcional of reg_dat is Begin Process (b) Begin if (b' event and b='1') then s<=e; end if; end process; end funcional; Memoria Library ieee; use ieee.std_logic_1164.all; Entity mem is Port( dir: in std_logic_vector (3 downto 0); s: out std_logic_vector (3 downto 0) ); end mem; Architecture flujo of mem is Begin s<= "0110" when (dir="0000") else "0011" when (dir="0001") else "0000" when (dir="0010") else "0010" when (dir="0011") else

"0000"; end flujo; Decodificador de Instrucciones Contador de Programa library ieee; use ieee.std_logic_1164.all; Entity cont_prog is Port( E: in std_logic; s: out std_logic_vector (3 downto 0) ); end cont_prog; Architecture funcional of cont_prog is begin Process (E) variable contador :integer range 0 to 4; begin if (E' event and E='1') then contador:=contador+1; if (contador=0) then s<="0100"; elsif (contador=1) then s<="0000"; elsif (contador=2) then s<="0001"; elsif (contador=3) then s<="0010"; elsif (contador=4) then s<="0011"; end if; end if; end process; end funcional; Acumulador Temporal library ieee; use ieee.std_logic_1164.all; Entity ACT is Port( e: in std_logic_vector (3 downto 0); C: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end ACT; Architecture funcional of ACT is Begin Process (C) Begin

if (C' event and C='1') then s<=e; end if; end process; end funcional; Acumulador library ieee; use ieee.std_logic_1164.all; Entity ACC is Port( e: in std_logic_vector (3 downto 0); D: in std_logic; s: buffer std_logic_vector (3 downto 0) ); end ACC; Architecture funcional of ACC is Begin Process (D) Begin if (D' event and D='1') then s<=e; end if; end process; end funcional; DESARROLLO PRCTICO 1. Demostrar la simulacin del microprocesador de 4 bits CONCLUSIONES 1. Funcionamiento del microprocesador, problemticas que se presentaron y sus soluciones, etc.
MATERIAL

Memoria AT28C64 Buffer 74LS245 Protoboard Cable para Protoboard Push-Botton 2 Midip-switch 12 Resistencias de 4.7k 8 Resistencias de 330 1 Compuerta not 74LS04 EQUIPO

Puntas lgicas Fuente de voltaje Multmetro