Sie sind auf Seite 1von 6

SEP INSTITUTO

DGEST TECNOLGICO DE

SNEST MATAMOROS

DEPARTAMENTO DE INGENIERA ELCTRICA Y ELECTRNICA

Diseo Digital con VHDL


Equipo:

Alumno(s): Mario Arturo Cruz Colunga Miguel Angel Fierros Pea Hermenegildo Martnez de la Cruz Jorge Alejandro Reyes Torres

Nm. de control: 11260077 11260081 11260095 11260108

H. MATAMOROS, TAM.

23 de septiembre del 2013

Practica 4

Objetivo: Implementar un contador de 8 bits utilizando un divisor de frecuencia mediante programacin vhdl.

Marco terico:
Divisor de frecuencia es un dispositivo electrnico que divide la frecuencia de entrada en una relacin casi siempre entera o racional. La forma de la seal de salida puede ser simtrica o asimtrica. La seal de entrada frecuentemente tiene forma de una onda cuadrada pero tambin puede ser sinusoidal o de otras formas.Suelen estar formados por contadores digitales.

Un contador (en ingls, counter) es un circuito secuencial construido a partir de biestables y puertas lgicas capaz de realizar el cmputo de los impulsos que recibe en la entrada destinada a tal efecto, almacenar datos o actuar como divisor de frecuencia. Habitualmente, el cmputo se realiza en un cdigo binario, que con frecuencia ser el binario natural o el BCD natural (contador de dcadas).

Material: Laptop Kit spartan3e Software aldec HDL, xilinx ISE, adept.

Procedimiento: Se crea nuevo proyecto en aldec HDL Se escribe el cdigo VHDL en el nuevo proyecto

Cdigo VHDL del divisor de frecuencia llibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity clkdiv is port( mclk: in std_logic; clr: in std_logic; clk48: out std_logic ); end clkdiv; architecture clkdiv of clkdiv is signal q: std_logic_vector(23 downto 0); begin process(mclk, clr) begin if clr='1' then q <= x"000000"; elsif mclk'event and mclk ='1' then q <= q + 1; end if; end process; clk48 <= q(23); end clkdiv;

Cdigo VHDL del contador library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is generic (N: integer :=8); port( clk: in std_logic; clr: in std_logic; q: out std_logic_vector(N-1 downto 0) ); end counter; architecture counter of counter is signal count: std_logic_vector(N-1 downto 0); begin process(clk,clr) begin if clr = '1' then count <= (others => '0'); elsif clk'event and clk ='1' then count <= count + 1; end if; end process; q <= count; end counter;

Cdigo VHDL TOP creado mediante un archivo BDE library IEEE; use IEEE.std_logic_1164.all; entity count is port( mclk : in STD_LOGIC; btn : in STD_LOGIC_VECTOR(3 downto 3); ld : out STD_LOGIC_VECTOR(7 downto 0) ); end count; architecture count of count is component clkdiv port ( clr : in STD_LOGIC; mclk : in STD_LOGIC; clk48 : out STD_LOGIC ); end component; component counter generic( N : INTEGER := 8 ); port ( clk : in STD_LOGIC; clr : in STD_LOGIC; q : out STD_LOGIC_VECTOR(N-1 downto 0) ); end component; signal NET91 : STD_LOGIC; begin U1 : clkdiv port map( clk48 => NET91, clr => btn(3), mclk => mclk ); U2 : counter port map( clk => NET91, clr => btn(3), q => ld( 7 downto 0 ) ); end count;

Observaciones y conclusiones: Se modific el cdigo porque tena dos salidas con frecuencias diferentes y al compilarlo marca un error, porque solo se usaba una salida. Al realizar la programacin el conteo iba muy rpido por lo que se modific el divisor de frecuencia a 3Hz.

Das könnte Ihnen auch gefallen