Vous êtes sur la page 1sur 6

SEP INSTITUTO

DGEST TECNOLGICO DE

SNEST MATAMOROS

DEPARTAMENTO DE INGENIERA ELCTRICA Y ELECTRNICA

DISEO DIGITAL CON VHDL


8:00 a 9:00pm, Lunes, Mircoles, Viernes 7:00 a 9:00 pm, Martes

Practica 4.- Contador de 8 Bits


Alumnos: Leonardo Adn Mora Vzquez Jos Fortino Rico San Martn Luis Eduardo Guzmn Puga Julin Vera vila Nm. de control: 11260099 11260110 11260085 11260125

Profesor: Ing. Arturo Rodrguez Casas

H. MATAMOROS, TAM.

24 DE SEPTIEMBRE DE 2013

OBJETIVO Realizar un contador de 8 bits utilizando lenguaje VHDL e implementarlo en el Kit Basys2.

MARCO TERICO Un contador 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).

Segn la forma en que conmutan los biestables, podemos hablar de contadores sncronos (todos los biestables conmutan a la vez, con una seal de reloj comn) o asncronos (el reloj no es comn y los biestables conmutan uno tras otro). Segn el sentido de la cuenta, se distinguen en ascendentes, descendentes y UPDOWN(ascendentes o descendentes segn la seal de control). Segn la cantidad de nmeros que pueden contar, se puede hablar de contadores binarios de n bits (cuentan todos los nmeros posibles de n bits, desde 0 hasta ), contadores BCD (cuentan del 0 al 9) y contadores Mdulo N (cuentan desde el 0 hasta el N-cuarto.

El nmero mximo de estados por los que pasa un contador se denomina mdulo del contador. Este nmero viene determinado por la expresin 2^n donde n indica el nmero de bits del contador. Ejemplo, un contador de mdulo 4 pasa por 4 estados, y contara del 0 al 3. Si necesitamos un contador con un mdulo distinto de 2^n, lo que haremos es aadir un circuito combinacional.

CODIGOS VHDL

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;

library 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;

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 declarations ----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 declarations used on the diagram ---signal NET91 : STD_LOGIC; begin ---- Component instantiations ---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. Durante la realizacin de esta prctica del contador de 8 bits tuvimos varios problemas por que al principio no sabamos cmo realizar la prctica, pero basndonos en el archivo que nos proporcion el profesor pudimos entender mejor la realizacin de la misma y la pudimos llevar a cabo sin que hubieras ms complicaciones.

Vous aimerez peut-être aussi