Está en la página 1de 7

UNIVERSIDAD DE GUADALAJARA

Centro Universitario de Ciencias Exactas e Ingenieras Departamento de Electrnica Diseo Digital Asistido por Computadora

Practica No 10 Registro Universal de 4 bits en VHDL

Alumno: Domnguez Becerra Jonathan Eduardo Profesor: Carrin Cortes Jos Mario Seccin: D03 Fecha de Entrega: Viernes 10 de Mayo de 2013

Objetivo de la Prctica
Desarrollar el cdigo en VHDL de un registro universal utilizando flip flop D y Multiplexores. Debe de cumplir con el desplazamiento serial hacia la derecha y la izquierdo, carga en paralelo y retencin. Debe de contener 4 bit de entrada y 4 de salida, as como un selector de 2 bits para el multiplexor. Cargar el cdigo en la tarjeta FPGA Spartan 3 y verificar su correcto funcionamiento.

Diagrama de Conexiones

Se observa en la imagen anterior todas las entradas de control y de datos, asi mismo los datos de salida que se implementaron en la practica para despues embeberlo en la tarjeta de desarrollo Spartan 3. Cumpliendo completamente con los requerimientos de la practica.

Cdigo del FF-D


Library ieee; Use ieee.std_logic_1164.all; Entity ffd is Port( D, CLR, CLK: in std_logic; q: out std_logic); end ffd; Architecture aa of ffd is Begin Process(CLR, D, CLK) Begin if (CLR ='0' ) then q<='0'; else if(CLK'event and CLK='0') then q<=D; end if; end if; end process; end aa;

Cdigo del Multiplexor de 4 a 1


LIBRARY IEEE; use ieee.std_logic_1164.all; entity mux4a1 is port (A, B, C, D, S0, S1: in std_logic; F: out std_logic); end mux4a1; architecture aa of mux4a1 is begin process (A, B, C, D, S0, S1) begin if (S1 = '0' AND S0 ='0') then F<= A; elsif(S1 = '0' AND S0 ='1') then

f <= B; elsif(S1 = '1' AND S0 ='0') then f <= C; else f <= D; end if;

Cdigo del Registro Universal


library ieee; use ieee.std_logic_1164.all; entity universal is port(a,b,c,d,dsl,dsr,mr,clk, m0, m1:in std_logic; q0,q1,q2,q3: buffer std_logic); end universal; architecture aa of universal is signal k,l,m,n: std_logic; component ffd Port( D, CLR, CLK: in std_logic; q: out std_logic); end component ffd; component mux4a1 port (A, B, C, D, S0, S1: in std_logic; F: out std_logic); end component mux4a1; begin u1: u2: u3: u4: u5: u6: u7: u8: end ffd port map (k, mr, ffd port map (l, mr, ffd port map (m, mr, ffd port map (n, mr, mux4a1 port map (q0, mux4a1 port map (q1, mux4a1 port map (q2, mux4a1 port map (q3, aa; clk, q0); clk, q1); clk, q2); clk, q3); dsr, q1, a, m0, m1, k); q0, q2, b, m0, m1, l); q1, q3, c, m0, m1, m); q2, dsl, d, m0, m1, n);

Implementacin
A continuacin se muestran unas imgenes de la implementacin y la manipulacin del programa para cargar el cdigo en la tarjeta FPGA. Dicho programa nos genera en archivo de terminacin .bit el cual contiene toda la informacin necesaria para funcionar adecuadamente en la tarjeta.

En la imagen se observa la asignacin de las variables de entrada y de salida, a los switches y leds de la tarjeta. Las localidades de referencia vienen rotuladas en la FPGA Spartan 3.

Despus generamos el archivo .bit y que utilizamos para programar tarjeta de desarrollo, para esto seleccionamos el modulo que vamos a programar y le asignamos el archivo como se observa en la siguiente imagen, en el bloque indicado de color verde. El segundo bloque de color gris debe que quedar en Bypass.

Por ultimo comprobamos que en nuestra tarjeta el programa funcione correctamente

Conclusin
Para la elaboracin del cdigo, tuve que hacer varios componet para facilitar la codificacin en VHDL del registro universal. La utilizacin del programa Xilinx cada vez me es ms familiar aunque me fallan algunos de los pasos pero el proceso ya lo realizo con ms fluidez, se pude decir que lo mas complicado de la practica fue esencialmente la elaboracin del cdigo de cada uno de los componentes ya que marcaban varios errores que no saba solucionar, pero despus de depurar el cdigo todo funcion correctamente. Insisto en que me hace falta prctica para manipular de manera ms fluida el programa y as acelerar el proceso de embeber el cdigo en la tarjeta de desarrollo.