sábado, 10 de octubre de 2015

Laboratorio # 7


























 Haner Lizandro Devia
             renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica  en lenguaje VHDL  con  conocimiento en generación de  memorias ROM, CONTADORES, REGISTROS,  MULTIPLEXORES Y DEMULTIPLEXORES, DIVISORES DE RELOJ, manejo de entradas y salidas de la FPGA  creación de modelos esquemáticos  a través de código VHDL, tipos de MAQUINAS DE ESTADO  ARQUITECTURA DE PROCESADORES 

Tema de interés para desarrollar aplicación:  ALU

Laboratorio 7:




Descripción del laboratorio: 


En este laboratorio se implementa un modelo de

una ALU (unidad aritmético lógica) simple con el fin de hacer operaciones  logica y 

aritméticas tales como la  suma de cuatro bits, la resta, nand, or, xor,esta ALU  

tiene una unidad de control  compuesta por una maquina de estados la cual 

selecciona la operación a realizar tiene un reset y una entrada de reloj el cual una 

vez seleccionada la operación es ejecutada mostrando el resultado en los leds de 

la FPGA.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; 

use IEEE.NUMERIC_STD.ALL;

entity simple_alu is

port(   Clk : in std_logic; --clock signal

        A,B : in signed(3 downto 0); --input operands

        Op : in unsigned(2 downto 0); --Operation to be performed

        R : out signed(3 downto 0)  --output of ALU

end simple_alu;

architecture Behavioral of simple_alu is

--temporary signal declaration.

signal Reg1,Reg2,Reg3 : signed(3 downto 0) := (others => '0');

process(Clk)

    if(rising_edge(Clk)) then --Do the calculation at the positive edge of clock cycle.

        case Op is

            when "000" => 

                Reg3 <= Reg1 + Reg2;  --addition

            when "001" => 

                Reg3 <= Reg1 - Reg2; --subtraction

            when "010" => 

                Reg3 <= not Reg1;  --NOT gate

            when "011" => 

                Reg3 <= Reg1 nand Reg2; --NAND gate 

            when "100" => 

                Reg3 <= Reg1 nor Reg2; --NOR gate               

            when "101" => 

                Reg3 <= Reg1 and Reg2;  --AND gate

            when "110" => 

                Reg3 <= Reg1 or Reg2;  --OR gate    

            when "111" => 

                Reg3 <= Reg1 xor Reg2; --XOR gate   

            when others =>

                NULL;

        end case;       

end process;    


end Behavioral;


VÍDEO IMPLEMENTACION EN LA FPGA

No hay comentarios:

Publicar un comentario