Diseño de un piano digital utilizando una up3 de altera
LABORATORIO FINAL DE MICROPROCESADORES
(PIANO DE 16 TECLAS)
PRESENTADO POR:
ING. ALEXANDER MORALES SEVILLA
ING. MARIO JOSE PUERTA GARCIA
ING. FRANCISCO JAVIER TEHERAN ZUÑIGA
ING. MIGUEL DAVID CORDERO RICARDO
PRESENTADO A:
ING. LUIS ENRIQUE ACOSTA GALVAN
UNIVERSIDAD TECNOLOGICA DE BOLIVAR
FACULTA DE INGENIERIAS
CARTAGENA COLOMBIA
ABRIL DEL 2011LABORATORIO
DIAGRAMA DE BLOQUES
Diagrama de bloques general
Diagrama de bloques especifico
Señal | Tipo | Nº de Bits | Descripción de la señal |
CICLO_PWM | E | 32 | Señal correspondiente al dato de entrada para configurar el ciclo útil |
CLK_PWM | E | 1 | Reloj del sistema |
PERIODO_PWM | E | 32 | Señal que permite configurar el periodo del PWM |
RESET_PWM | E | 1 | Reinicia el móduloPWM |
ENABLE_PWM | E | 32 | Habilita el modulo para generar la señal PWM |
PWM_O | S | 1 | Señal de salida módulo PWM |
Descripción de la interfaz del módulo PWM
DESCRIPCION VHDL DE UNIDADES FUNCIONLES BASICAS
Compuerta AND
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA AND
--EN MODO DE FLUJO DE DATOS
--AND
--NUMERO DE CEDULA 1082847699
library ieee;
useieee.std_logic_1164.all;
entity andm_699 is
port(
a,b: in std_logic;
y: out std_logic
);
end andm_699;
architecture desc of andm_699 is begin
y <= a and b;
end desc;
Compuerta OR
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA or
--EN MODO DE FLUJO DE DATOS
--or
--NUMERO DE CEDULA 1082847699
library ieee;
use ieee.std_logic_1164.all;
entityorm_699 is
port(
a,b: in std_logic;
y: out std_logic
);
end orm_699;
architecture desc of orm_699 is begin
y <= a or b;
end desc;
Compuerta NOT
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA NOT
--EN MODO DE FLUJO DE DATOS
--NOT
--NUMERO DE CEDULA 1082847699
library ieee;
use ieee.std_logic_1164.all;
entity notm_699 is
port(
a:in std_logic;y:out std_logic
);
end notm_699;
architecture desc of notm_699 is begin
y <= not a;
end desc;
Compuerta NAND
----CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA NAND
--EN MODO DE FLUJO DE DATOS
--NAND
--NUMERO DE CEDULA 1143358530
library ieee;
use ieee.std_logic_1164.all;
entity nand_530 is
port(
a,b: in std_logic;
y: out std_logic);
end nand_530;
architecture desc of nand_530 is begin
y <= a nand b;
end desc;
Compuerta XOR
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA XOR
--EN MODO FLUJO DE DATOS
--XOR
--NUMERO DE CEDULA 1082847699
library ieee;
use ieee.std_logic_1164.all;
entity xorm_699 is
port(
a,b: in std_logic;
y: out std_logic
);
end xorm_699;architecture desc of xorm_699 is begin
y <= a xor b;
end desc;
Compuerta XNOR
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UNA COMPUERTA XNOR
--EN MODO DE FLUJO DE DATOS
--XNOR
--NUMERO DE CEDULA 1082847699
library ieee;
use ieee.std_logic_1164.all;
entity xnorm_699 is
port(
a,b: in std_logic;
y: out std_logic
);
end xnorm_699;
architecture desc of xnorm_699 isbegin
y <= a xnor b;
end desc;
Flip-flop tipo D
--CURSO DE MICROPROCESADORES 2011
--DESCRIPCION DE UN FLIP FLOP D
--EN MODO DE COMPORTAMIENTO
--FLIP FLOP
--NUMERO DE CEDULA 1082847699
library ieee;
use ieee.std_logic_1164.all;
entity ffdm_699 is
port(
rst,enable,set,clk,d: in std_logic;
q: out std_logic
);
end ffdm_699;
architecture desc of ffdm_699 is beginprocess(clk,rst,enable,set) begin
if(rst='1') then
q <= '0';
elsif(set = '1') then
q <= '1';
elsif(rising_edge(clk) and enable='1') then
q <= d;
end if;
end process;
end desc;
Flip-flop tipo T
--DESCRIPCION DE UN FLIP FLOP T CON CARGA DE DATO EMPLEANDO FLIP FLOP D
--EN MODO ESTRUCTURAL
--FLIP FLOP T
--NUMERO DE CEDULA 1082847699
library ieee;
use...
Regístrate para leer el documento completo.