Upload
leonardo-mora
View
218
Download
0
Embed Size (px)
Citation preview
8/14/2019 Practica 9 (Cronometro 0-99)
1/9
SEP DGEST SNEST
INSTITUTO TECNOLGICO DE MATAMOROS
DEPARTAMENTO DE INGENIERA ELCTRICA Y ELECTRNICA
DISEO DIGITAL CON VHDL8:00 a 9:00pm, Lunes, Mircoles, Viernes
7:00 a 9:00 pm, Martes
Prctica 9.- Cronometro en VHDL
Alumnos: Nm. de control:
Leonardo Adn Mora Vzquez 11260099Jos Fortino Rico San Martn 11260110Luis Eduardo Guzmn Puga 11260085
Julin Vera vila 11260125
Profesor: Ing. Arturo Rodrguez Casas
H. MATAMOROS, TAM. 05 DE NOVIEMBRE DE 2013
8/14/2019 Practica 9 (Cronometro 0-99)
2/9
OBJETIVO
Implementar un cronometro del 0 al 99 con opcin de pausa y reseteo usando el
Aldec HDL y el kit de desarrollo Basys 2.
MARCO TERICO
Los dispositivos digitales medidores de tiempo son una aplicacin de lgica
secuencial en la solucin de una situacin de nuestra vida diaria. Un ejemplo de
estos dispositivos digitales son los cronmetros.
El cronmetro es unreloj cuya precisin ha sido comprobada y certificada por algn
instituto o centro de control de precisin. La palabra cronmetro es
unneologismo deetimologagriega:Cronoses eldios del tiempo, -metron es hoy un sufijo que significaaparato para medir.
http://es.wikipedia.org/wiki/Relojhttp://es.wikipedia.org/wiki/Neologismohttp://es.wikipedia.org/wiki/Etimolog%C3%ADahttp://es.wikipedia.org/wiki/Griego_antiguohttp://es.wikipedia.org/wiki/Griego_antiguohttp://es.wikipedia.org/wiki/Chronoshttp://es.wikipedia.org/wiki/Mitolog%C3%ADa_griegahttp://es.wikipedia.org/wiki/Instrumento_de_medici%C3%B3nhttp://es.wikipedia.org/wiki/Instrumento_de_medici%C3%B3nhttp://es.wikipedia.org/wiki/Mitolog%C3%ADa_griegahttp://es.wikipedia.org/wiki/Chronoshttp://es.wikipedia.org/wiki/Griego_antiguohttp://es.wikipedia.org/wiki/Etimolog%C3%ADahttp://es.wikipedia.org/wiki/Neologismohttp://es.wikipedia.org/wiki/Reloj8/14/2019 Practica 9 (Cronometro 0-99)
3/9
CDIGOS VHDL
library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity relojanodos is
port(
resetanodo,clkan:in std_logic;
clkanout: out std_logic
);
end relojanodos;
architecture func_relojanodos of relojanodos is
signal counter:std_logic_vector(19 downto 0);
signal clkoutsignal: std_logic;
begin
process(resetanodo, clkan)
begin
if (resetanodo='1')then
clkoutsignal
8/14/2019 Practica 9 (Cronometro 0-99)
4/9
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity relojcontador is
port (
rst2,clkin2 : in std_logic;
clkout2 : out std_logic
);
end relojcontador;
architecture behavioral of relojcontador is
signal counter : std_logic_Vector (27 downto 0);
signal clkout2Signal : std_logic;
begin
process (clkin2, rst2)
begin
if (rst2 = '1') then
clkout2Signal
8/14/2019 Practica 9 (Cronometro 0-99)
5/9
library IEEE;use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity contador7seg is
port (
clkincontador,rst,start,pause,continue : in std_logic;
digitOne,digitTen : out std_logic_vector (3 downto 0));
end contador7seg;
architecture func_contador7seg of contador7seg is
signal digitOneSignal : std_logic_vector (3 downto 0);
signal digitTenSignal : std_logic_vector (3 downto 0);
type states is (resetState, countState, pauseState);
signal state : states;
begin
process (clkincontador, rst)
begin
if (rst = '1') then
state
8/14/2019 Practica 9 (Cronometro 0-99)
6/9
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity controldeanodos is
port (clkinanodo : in std_logic;
san0,san1,san2,san3 : out std_logic
);
end controldeanodos;
architecture func_controldeanodos of controldeanodos is
signal an0Signal,an1Signal,an2Signal,an3Signal : std_logic;
begin
process (clkinanodo)
begin
if (clkinanodo = '0') then
an2Signal
8/14/2019 Practica 9 (Cronometro 0-99)
7/9
library IEEE;use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity bcd7seg is
port(
binaryin: in std_logic_vector(3 downto 0);
seg7out: out std_logic_vector(0 to 6)
);
end bcd7seg;
architecture func_bcd7seg of bcd7seg is
signal seg7signal: std_logic_vector(0 to 6);
begin
process(binaryin)
begin
case binaryin is --abcdefg se encienden en 0
when "0000" =>seg7signal seg7signal seg7signal seg7signal seg7signal seg7signal seg7signal seg7signal seg7signal seg7signal
8/14/2019 Practica 9 (Cronometro 0-99)
8/9
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity mux7seg is
port (an2in,an3in: in std_logic;
sevenOne : in std_logic_vector (0 to 6);
sevenTen : in std_logic_vector (0 to 6);
sevenOut : out std_logic_vector (0 to 6)
);
end mux7seg;
architecture behavioral of mux7seg is
signal sevenOutSignal : std_logic_vector (0 to 6);
begin
process (an2in, an3in, sevenOne, sevenTen)
begin
if (an2in = '1' and an3in = '0') then
sevenOutSignal
8/14/2019 Practica 9 (Cronometro 0-99)
9/9
Interconexin de los componentes
CONCLUSIN
Durante la realizacin de la prctica no se presentaron inconvenientes, fue
finalizada correctamente a la primera, algo que pudimos notar es como se puedenusar condiciones de estado para elaborar sistemas ms complejos, y como se
pueden facilitar la electrnica digital con la ayuda de la programacin en VHDL.
r e s e ta no d o c l ka n o ut
clkan
U1
relojanodos
r s t 2 c l k o ut 2
clkin2
U2
relojcontador
c l k in c o n t ad o r d i g i tO n e ( 3 : 0 )
rs t d ig itT e n(3 : 0 )
start
p a u s e
continue
U3
contador7seg
c lk in an o d o s an 0
san1
san2
san3
U4
controldeanodos
b i n a ry in ( 3 : 0 ) s e g 7 o u t( 0 : 6 )
U5
bcd7seg
b i n a ry in ( 3 : 0 ) s e g 7 o u t( 0 : 6 )
U6
bcd7seg
a n2 i n s e v e n O ut ( 0: 6 )
an3in
s e v e n O n e ( 0 : 6 )
s e v e n T e n ( 0 : 6 )
U7
mux7seg
CLK50M
Reset
Iniciar
Pausar
Continuar
an0
an1
an2
an3
Display(0:6)
Cableado.bde