Está en la página 1de 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

También podría gustarte