Está en la página 1de 5

Universidad Nacional de Ingeniera

Facultad de Ingeniera Elctrica y Electrnica

3er Laboratorio de Sistemas Digitales II

Informe Previo

Alumno : Freddy Alejandro Crdenas Alemn

Cdigo : 20032001G

Curso : Sistemas Digitales II EE-636

Profesor : Ing. Briseo

Seccin : M

Horario : Mircoles 7:00 9:00 p.m

Fecha : 13 de Junio del 2007


2007-I
1. INTRODUCCION

En el presente informe se busca la implementacin de un sistema de transmisin y


recepcin de datos

Para el presente informe previo se presenta el siguiente diseo:


-Circuito recetor

1.1 OBJETO DEL DOCUMENTO

El presente documento es un informe previo de la experiencia N0 3

1.2 ALCANCE

De acuerdo a lo pedido en la gua de laboratorio, ms adelante se har el alcance de


la especificacin en leguaje VHDL del circuito receptor.

1.3 CONTENIDO DEL DOCUMENTO

El presente informe cuenta con un archivo tipo texto en word, donde se especifica la
codificacin del circuito receptor solicitado para la presentacin del informe previo

1.4 CONVENCIONES NOTACIONALES

No se ha empleado ninguna notacin extraa o al menos que no sea entendible

2. PLANTEAMIENTO DEL PROBLEMA

Este problema se plante de la siguiente manera:

Se busc la implementacin de una mquina de estados que cumpliera las


exigencias de la gua de laboratorio.
Para la seal out se diseo un circuito en forma serial, que enve los datos 1 por 1,
para esta transmisin se consider un bit de inicio y un bit de parada, esta
transmisin envia primero el bit de parada y el bit ms significativo, y al final el bit
menos significativo y el bit de parada.

3. DESCRIPCION GENERAL DE LA SOLUCION

Ms adelante se proceder a colocar la codificacin del circuito receptor en un


archivo texto.
3.1 METODOLOGIA DE TRABAJO

En este laboratorio se han usado las siguientes herramientas:


-Max+plusII
-Codificacin en VHDL
-Entradas tipo texto vhd

3.2 SOLUCION DEL PROBLEMA

A continuacin se muestra el cdigo fuente del circuito receptor:

LIBRARY ieee;
USE ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

--Circuito receptor
Entity RECEPTOR is
Port
(
RESET : in std_logic;
NOTREADY : out std_logic;
CLK : in std_logic;
RX : in std_logic;
ACK : in std_logic;
OUTT : out std_logic );
end RECEPTOR;

Architecture behavioral of RECEPTOR is


Signal output_buf : std_logic_vector(9 downto 0) ;
-- Signal DATO : STD_LOGIC_VECTOR(7 DOWNTO 0);
type ESTADOS is (S1,S2,S3);
Signal ESTADO : ESTADOS ;
Signal CUENTA : integer range 0 to 9 ;
Signal CUENTA1 : integer range 0 to 7 ;

Begin
Process(CLK)
Begin
if CLK= '1' then
if RESET='0' then NOTREADY<='1';OUTT<='1';
else
case ESTADO is
when S1 => NOTREADY<='0';
CUENTA1<=0;
CUENTA<=0;
if ACK='1' then
ESTADO<=S2;
end if;
when S2 => if ACK='0' then
ESTADO<=S3;
NOTREADY<='1';
CUENTA<=0;
CUENTA1<=0;
end if;

if CUENTA1 = 7 then
CUENTA1<=0;
CUENTA<=CUENTA+1;
-- IF CUENTA=9 THEN ESTADO<=S3; NOTREADY<='1'; END IF;
end if;
case CUENTA is
when 0 => output_buf(0)<=RX;
when 1 => output_buf(1)<=RX;
when 2 => output_buf(2)<=RX;
when 3 => output_buf(3)<=RX;
when 4 => output_buf(4)<=RX;
when 5 => output_buf(5)<=RX;
when 6 => output_buf(6)<=RX;
when 7 => output_buf(7)<=RX;
when 8 => output_buf(8)<=RX;
when 9 => output_buf(9)<=RX;
end case;
CUENTA1<=CUENTA1+1;

when S3 =>
-- NOTREADY<='1';
if CUENTA1 = 7 then
CUENTA1<=0;
CUENTA<=CUENTA+1;
if CUENTA=9 then
ESTADO<=S1;
NOTREADY<='0';
end if;
end if;
case CUENTA is
when 0 => OUTT<=output_buf(0);
when 1 => OUTT<=output_buf(8);
when 2 => OUTT<=output_buf(7);
when 3 => OUTT<=output_buf(6);
when 4 => OUTT<=output_buf(5);
when 5 => OUTT<=output_buf(4);
when 6 => OUTT<=output_buf(3);
when 7 => OUTT<=output_buf(2);
when 8 => OUTT<=output_buf(1);
when 9 => OUTT<=output_buf(9);
end case;
CUENTA1<=CUENTA1+1;
end case;
end if;
end if;
end process;
end behavioral;

También podría gustarte