Вы находитесь на странице: 1из 5

Laboratorio de Sistemas Digitales I LAB - 9

Escuela Tcnica Superior de Ingeniera (ICAI)


Departamento de Electrnica y Automtica
La!"# Cerradura electrnica
$ %&ETI'$S
El propsito de esta prctica es:
- Comprender el funcionamiento de las mquinas de estado.
- Disear y simular un detector de secuencia para una cerradura electrnica.
- Aprender a describir circuitos secuenciales con lenguajes de descripcin de
ard!are "#D$.
(ATE)IAL

- %rdenador personal con Quartus II y ModelSim.
- &arjeta de desarrollo de lgica programable.
D *)ACI+,
' sesin.
T )A%A&$ -)E'I$ E I,.$)(ACI+, DE C$,S*LTA
En esta sesin se ar como ejercicios pre(ios:
- Diagrama de estados del circuito detector de secuencia.
- Descripcin en "#D$ de las mquinas de estado.
- $ectura pre(ia de las notas de clase sobre y tutorial de "#D$.
- $ectura del manual de la tarjeta de lgica programable DE' )disponible en la pgina
!eb de la asignatura*.
T )A%A&$ -$STE)I$) / E,T)E0A DE )ES*LTAD$S
Despu+s del desarrollo de la prctica se debe entregar un informe de resultados )(+ase gu,a
de informe* y el trabajo desarrollado en el laboratorio en soporte informtico que contenga
el proyecto completo. Debe incluir:
'. Descripcin del e-perimento y los pasos seguidos )tablas de (erdad. e-presiones
lgicas. /-maps*.
2. Esquemas del circuito. cdigo "#D$ y su e-plicacin.
0. 1imulaciones y su e-plicacin.
1
Laboratorio de Sistemas Digitales I LAB - 9
4. 2esultados y conclusiones.
I,T)$D*CCI+,
En esta prctica aremos un circuito digital secuencial para implementar una sencilla
cerradura electrnica.
El circuito detectar una secuencia de pulsacin de teclas y acti(ar una salida cuando la
secuencia sea completa.
3ara arrancar el sistema ay que apretar el pulsador que ace de Reset. A continuacin los
pulsadores que acti(an las seales p4 y p' sir(en para introducir una secuencia al circuito.
Cuando +ste detecte la secuencia p4 5 p' 5 p' 5 p4. entre las pulsaciones del usuario. debe
iluminar un $ED (erde )"A$6D* para indicar que se a recibido la secuencia anterior. 1e
permite el solapamiento de secuencias. de tal forma que si se pulsa p4 5 p' 5 p' 5 p4 5 p' 5
p' 5 p4 se darn por (lidas dos secuencias.
Dico $ED (erde permanecer iluminado asta que se pulse cualquiera de los pulsadores.
pudiendo (ol(er a iluminarse si se (uel(e a introducir de nue(o la secuencia correcta.
7ientras no e-ista una secuencia correcta. se iluminar un $ED rojo )E13E2A*.
El alumno debe tener en cuenta que pulsar uno de los interruptores genera un pulso que
dura mucos ciclos de reloj. 3or tanto. es necesario disear un detector de flanco para cada
pulsador. en un bloque independiente llamado Detector_flanco.
D ESA))$LL$ -)1CTIC$
3ara desarrollar esta prctica. organice en QuartusII un proyecto con el nombre Practica9.
El diagrama general de bloques de la prctica estar compuesto. tal como se indica en la
figura '. por un bloque Detector_secuencia. Adems es necesario el diseo de un bloque
que llamaremos Detector_flanco. $a figura ' nos muestra este diagrama general de
bloques.
Detector de Secuencia. 2eali8a la deteccin de la secuencia p4 5 p' 5 p' 5 p4. &iene como
entradas las pulsadores filtrados por el detector de flanco. $as salidas son un $ED (erde y
un $ED rojo.
Detector de flanco. 2eali8a las funciones de filtrado de los pulsadores. Estos detectores de
flanco tienen como entrada los tres pulsadores de secuencia. 1us salidas son las entradas a
la mquina de estados del detector de secuencia.
Inversores . Al ser los pulsadores acti(os a ni(el bajo es con(eniente in(ertir estas entradas
para trabajar dentro del circuito con seales acti(as a ni(el alto.
2
Laboratorio de Sistemas Digitales I LAB - 9
9igura '. Diagrama de bloques del Detector de 1ecuencia.
3ara la implementacin arranque QuartusII y genere un proyecto con el nombre Practica9.
3roceda a continuacin con la generacin en "#D$ de los bloques Detector de 1ecuencia y
Detector de 9lanco. 3ara ello. in(oque en QuartusII una oja tipo te-to y desarrolle en
"#D$ los componentes.
A continuacin. abra una oja nue(a tipo diagrama con el mismo nombre del proyecto
)Practica9* para colocar los componentes y su cone-ionado definiti(o en la placa en el top
level del proyecto. tal como se refleja en la 9igura '. &ambi+n puede acer una descripcin
estructural para el cone-ionado de los bloques. A continuacin a de consultar el 7anual
de la &arjeta DE' para identificar el pin de la 93:A con el correspondiente puerto de
entrada y de salida. rellenando la &abla ;:
Seal Tipo Componente Pin P!A
p0 "ntrada Pushbutton[0]
p1 "ntrada Pushbutton[1]
Reset "ntrada Pushbutton[3]
ESPERA Salida LED Red[0]
VALID Salida LED Green[0]
&abla ;. Asignacin de patillas de la 93:A a las seales del circuito.
El manual lo tiene en el siguiente enlace:
)ttp:<<!!!.dea.icai.upcomillas.es<daniel<asignaturas<1istDig'='=6&$<DE'=>ser7anual=('4'?.pdf*.
&enga en cuenta que los dispositi(os $ED de la placa con acti(os a ni(el alto )para
iluminar el $ED ay que poner un @'A* en el caso de los pulsadores. se genera un @'A lgico
si no est presionado y un @4A en el momento de pulsarlo.
#
Laboratorio de Sistemas Digitales I LAB - 9
2eali8ado este paso proceda a la compilacin del circuito diseado. corrija los errores. si
los ubiera. en el cdigo "#D$ y en el cone-ionado de los bloques. 3roceda a
continuacin con la simulacin en ModelSim. En el ABEC% A se incluye un banco de
prueba para generar los est,mulos para la simulacin )(+ase la prctica 0 si no recuerda
cmo aadir el testbench*. &enga en cuenta que en la l,nea ? del testbench se a aadido la
iniciali8acin de la seal clD.
A,E2$ A
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY DetectorSecuecia!"_#$d_tst IS
END DetectorSecuecia!"_#$d_tst;
AR%&ITE%TURE DetectorSecuecia!"_arc$ '( DetectorSecuecia!"_#$d_tst IS
)) costats
)) sigals
SI*NAL cl+ , STD_L'*I%,-./.;
SI*NAL es0era , STD_L'*I%;
SI*NAL 0/ , STD_L'*I%;
SI*NAL 01 , STD_L'*I%;
SI*NAL reset_ , STD_L'*I%;
SI*NAL #alid , STD_L'*I%;
%'1!'NENT DetectorSecuecia!"
!'RT 2
cl+ , IN STD_L'*I%;
es0era , 'UT STD_L'*I%;
0/ , IN STD_L'*I%;
01 , IN STD_L'*I%;
reset_ , IN STD_L'*I%;
#alid , 'UT STD_L'*I%
3;
END %'1!'NENT;
BE*IN
i1 , DetectorSecuecia!"
!'RT 1A! 2
)) list coectios 4et5ee 6aster 0orts ad sigals
cl+ -7 cl+8
es0era -7 es0era8
0/ -7 0/8
01 -7 018
reset_ -7 reset_8
#alid -7 #alid
3;
iit , !R'%ESS
)) #aria4le declaratios
BE*IN
)) code t$at e9ecutes ol: oce
;AIT;
END !R'%ESS iit;
cl+ <- ot cl+ a=ter >/ s;

al5a:s , !R'%ESS
)) o0tioal sesiti#it: list
)) 2 3
)) #aria4le declaratios
BE*IN
reset_ <- ./.;
01 <- ./.;
0/ <- ./.;
5ait =or 1// s;
reset_ <- .1.;
5ait =or 1/ s;
0/ <- .1.; )) !ulso 0/
5ait =or ?// s;
4
Laboratorio de Sistemas Digitales I LAB - 9
0/ <- ./.;
5ait =or ?// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
5ait =or @// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
5ait =or @// s;
0/ <- .1.; )) (i de secuecia, 0ulso e 0/
5ait =or ?// s;
0/ <- ./.;
assert #alid - .1.
re0ort AError, No se acti#a la salida tras itroducir ua secuecia correctaA
se#erit: 5arig;
)) ElaBa6os co otra ue#a secuecia
5ait =or ?// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
assert #alid - ./.
re0ort AError, No se desacti#a la salida tras #ol#er a 0ulsar otra teclaA
se#erit: 5arig;
5ait =or @// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
5ait =or @// s;
0/ <- .1.; )) (i de secuecia, 0ulso e 0/
5ait =or ?// s;
0/ <- ./.;
5ait =or @// s;
assert #alid - .1.
re0ort AError, No se acti#a la salida tras itroducir ua secuecia correctaA
se#erit: 5arig;
)) Col#e6os a itroducir ua ue#a secuecia
0/ <- .1.; )) !ulso 0/
5ait =or ?// s;
0/ <- ./.;
5ait =or ?// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
5ait =or @// s;
01 <- .1.; )) !ulso 01
5ait =or ?// s;
01 <- ./.;
5ait =or @// s;
0/ <- .1.; )) (i de secuecia, 0ulso e 0/
5ait =or ?// s;
0/ <- ./.;
assert #alid - .1.
re0ort AError, No se acti#a la salida tras itroducir ua secuecia correctaA
se#erit: 5arig;
assert =alse re0ort A(i de la si6ulacioA se#erit: =ailure;

END !R'%ESS al5a:s;
END DetectorSecuecia!"_arc$;
$

Вам также может понравиться