Documente Academic
Documente Profesional
Documente Cultură
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Prctica 12
Componentes
introduccin
El
diseo
a
travs
de
mdulos
preestablecidos
componentes,
es
una
excelente
alterna9va
en
el
desarrollo
de
aplicaciones,
su
principal
ventaja
es
que
permite
disear,
analizar
y
simular
por
separado
cada
bloque
lgico
component
,
para
posteriormente
introducirlo
dentro
de
un
programa
general.
En
esencia
el
dividir
un
proyecto
a
travs
de
la
depuracin
de
bloques
individuales
y
la
integracin
como
conjunto
mediante
el
uso
de
seales
signal,
resalta
el
diseo
y
programacin
estructural
en
VHDL.
En
la
gura
1.
Se
muestra
un
diagrama
electrnico
u9lizado
para
abrir
una
cerradura
electrnica
y
cuya
descripcin
completa
puede
leerse
en
el
capitulo
4Diseo
mediante
cartas
ASM.
Objetivo general
Describir
el
procedimiento
u9lizado
en
una
descripcin
estructural
a
travs
de
la
programacin
basada
en
componentes.
Objetivos especficos
Que
el
lector
comprenda
el
uso
de
la
programacin
en
es9lo
estructural
Que
el
lector
u9lice
el
manejo
de
seales
como
medio
de
conexin
entre
diversos
bloque
lgicos
y
mediante
la
estructura
port
map.
1
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Desarrollo Terico
1.
Analice
el
diagrama
de
la
gura
1
y
disee
cada
uno
de
los
bloques
lgicos
como
componentes
individuales
,
de
manera
tal
que
pueda
tener
una
galera
de
componentes
como
la
mostrada
en
la
gura
2.
2
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Desarrollo Prctico
1.
Considerando
el
algoritmo
ASM
denominado
controlador
como
un
componente
y
cuyo
cdigo
fue
diseado
en
la
prc9ca
9
el
programa
que
integra
la
solucin
al
diagrama
mostrado
en
la
gura
1.
Debe
de
considerar
que
la
seal
de
cont
4
y
la
seal
de
botn
no
estn
considerados
dentro
del
algn
componente.
El
programa
nal
considera
la
gura
3
en
su
realizacin.
1.-
Seleccionamos
Xilinx
mediante
el
acceso
directo
del
escritorio
o
mediante
la
ruta:
Inicio/Todos
los
programas/Xilinx
ISE
Design
Suite
13.1/ISE
Design
Tools/Project
Navigator
como
se
muestra
en
la
gura
4
3
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
2.
Una
vez
seleccionado
se
abrir
la
pantalla
principal
del
so\ware.
Para
crear
un
nuevo
proyecto
damos
click
en
File
y
a
con9nuacin
se
desplegar
un
men,
donde
seleccionaremos
la
opcin
NEW
PROJECT,
gura
5
3.
Se
abrir
una
nueva
ventana
donde
pondremos
el
nombre
de
nuestro
proyecto,
en
este
caso,
u9lizaremos
el
nombre
de
Componentes
y
agregamos
una
pequea
descripcin
de
nuestro
programa
gura
6.
Top-Level
Source
Type:
seleccionamos
el
9po
de
fuente,
en
este
caso
u9lizaremos
el
lenguaje
VHDL,
as
que
seleccionamos
HDL
como
lo
muestra
en
la
parte
inferior
de
la
gura
6
y
hacemos
click
en
NEXT.
4
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
4.
Nos
mostrar
una
nueva
ventana
donde
seleccionaremos
las
caracters9cas
de
nuestro
disposi9vo
como
lo
muestra
la
gura
7
y
hacemos
click
en
NEXT.
Es
muy
importante
que
en
la
opcin
VHDL
Source
Analysis
Standard,
seleccionemos
VHDL-93.
5.
Mostrar
otra
ventana,
indicndonos
las
caracters9cas
del
proyecto,
as
como
las
caracters9cas
del
disposi9vo
a
u9lizar;
damos
click
en
FINISH,
Figura
8.
5
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
6.
Una
vez
realizado
nuestro
nuevo
proyecto,
procedemos
a
crear
nuestro
cdigo
VHDL
en
Xilinx,
para
esto
damos
click
derecho
sobre
el
cono
Device
entry
en
la
ventana
Hierarchy
Panel
y
seleccionamos
la
opcin
New
Source,
Figura
9
7.
Procedemos
a
seleccionar
VHDL
Module
que
indica
que
u9lizaremos
cdigo
VHDL
para
nuestro
componente.
6
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
8.
Escribimos
el
nombre
de
la
en9dad,
que
le
llamaremos
Contador
y
al
nombre
de
la
arquitectura
le
llamaremos
Contador0a3,
tambin
denimos
las
entradas
(CLK,
H)
en
y
las
salidas
(Q)
del
componente.
7
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
9.
Mostrar
un
resumen
de
nuestros
puertos,
Figura
11.
Y
a
con9nuacin
damos
click
en
FINISH.
11.
Procedemos
a
Compilar
nuestro
cdigo,
en
la
parte
inferior
izquierda
muestra
un
panel
Process:
Contador-Contador0a3,
vamos
a
la
opcin
Synthesize
XST
y
a
con9nuacin
en
Check
Syntax,
nos
informar
si
queremos
guardar
despus
de
los
cambios
realizados
le
decimos
que
s
y
empezar
a
compilar.
Si
todo
est
correcto
nos
mostrar
una
palomita
verde
de
que
la
compilacin
ha
concluido.
Figura12.
Nota:
si
hubiera
algn
error
de
compilacin
nos
marcara
con
una
tache
en
rojo
y
nos
mostrara
la
lnea
del
error
en
el
cdigo.
8
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
PROCESO DE SIMULACIN DEL COMPONENTE
13.
Una
vez
realizada
la
compilacin,
procederemos
a
la
simulacin
de
nuestro
componente
contador.
En
la
ventana
de
Design,
en
la
barra
de
View,
seleccionamos
el
cono
de
simulation
,
seleccionamos
nuestro
contador
y
hacemos
doble
click
en
Simulate
behavioral
que
se
encuentra
dentro
de
la
ventana
Process:
Contador-Contador0a3
como
se
muestra
en
la
gura
13.
15.-
Para
probar
cada
uno
de
nuestros
puertos
y
el
funcionamiento
de
nuestro
componente,
le
daremos
valores
de
la
siguiente
manera.
9
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Click
derecho
sobre
el
puerto,
en
este
caso
seleccionamos
el
puerto
h.
Figura
15
y
a
con9nuacin
le
daremos
un
valor
de1
a
dicho
puerto
como
se
muestra
en
la
Figura
16.
Y
hacemos
click
en
OK.
Figura 15.
Figura
16
10
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Para
agregar
un
reloj
al
puerto
CLK,
de
igual
manera
realizamos
click
derecho
sobre
el
puerto
CLK
y
desplegar
un
men,
en
el
cual
seleccionaremos
la
opcin
Force
Clock.
Nos
mostrar
un
nuevo
cuadro
donde
insertaremos:
Leading
Edge
Value:
Valor
de
comienzo
del
reloj,
en
este
caso
colocaremos
un
0.
Trailing
Edge
Value:
Valor
del
segundo
borde
del
patrn
del
reloj,
colocaremos
un
1.
Period:
La
longitud
del
pulso
de
reloj,
que
se
dene
como
un
valor
de
9empo,
pondremos
10
ns
11
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
16.-
Daremos
click
en
el
cono
para
ver
el
funcionamiento
de
nuestro
componente
y
ajustamos
el
zoom
con
los
conos
para
visualizarlo
mejor.
En
la
Figura
17,
observamos
la
salida
Q
va
incrementando
de
uno
en
uno
con
cada
pulso
de
reloj
hasta
llegar
al
3,
posteriormente
se
reinicia
siempre
y
cuando
H
sea
igual
a
0,
cuando
H
sea
igual1,
Q
no
contara
y
se
mantendr
en
cero.
17.-
De
la
misma
manera
que
realizamos
el
Contador,
realizaremos
los
dems
componentes:
Componente
2:
Decodicador
de
2X4
con
salida
ac9va
en
alto
Componente
3:
Mul9plexor
de
16:1
Componente
4:
Codicador
BCD.
Para realizar los dems componentes, repe9remos las instrucciones a par9r del paso nmero 6.
18.-
En
la
Figura
18,
se
muestra
el
cdigo
para
el
Decodicador
compilado
junto
con
su
simulacin.
Figura
19.
12
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Figura
18.
Cdigo
del
Decodicador
de
2X4
con
salida
ac9va
en
alto
19.-
En
la
Figura
20,
se
muestra
el
cdigo
para
el
Mul9plexor
16:1
compilado
junto
con
su
simulacin.
Figura
21.
En
el
puerto
E
se
inicializa
el
vector
con
0,
porque
en
el
diagrama
de
la
gura
1
algunos
bits
van
conectados
a
9erra.
13
Figura
23.
14
Figura
20.
Cdigo
del
mul9plexor
16:1
20.-
En
la
Figura
22,
se
muestra
el
cdigo
para
el
Controlador
compilado
junto
con
su
simulacin.
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
15
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
16
Figura
22.
Cdigo
del
Controlador
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Figura
23.
Simulacin
del
Controlador.
21.-
Una
vez
que
realizamos
las
en9dades
por
separado,
procederemos
a
juntar
todo
en
un
GRAN
componente.
Para
esto,
creamos
un
nuevo
archivo
(siguiendo
el
paso
7)
con
el
nombre
de
Cerradura.
Una
vez
creado
nuestro
archivo
crearemos
los
puertos
que
slo
vamos
a
necesitar
de
acuerdo
a
la
Figura
3.
Que
son:
Ac9vacin,
Alarma,
CLK,
y
Teclado.
Colocamos
las
seales
correspondientes,
estas
seales
sern
nuestros
alambres
internos
de
nuestro
componente.
Estas
seales
9enen
que
corresponder
al
nmero
de
bits
que
9enen
cada
uno
de
los
puertos
de
tus
componentes.
Nosotros
u9lizaremos
las
seales:
Declaramos
los
componentes
que
tendr
nuestro
GRAN
componente,
que
posteriormente
uniremos.
Ejemplo:
COMPONENT
Contador
is
Port
(CLK
:
in
STD_LOGIC;
H
:
in
STD_LOGIC;
Q
:
inout
STD_LOGIC_VECTOR
(1
downto
0));
end
COMPONENT;
A
con9nuacin,
haremos
el
mapeo
de
puertos,
esto
quiere
decir,
uniremos
cada
seal
o
cable
interno
de
cada
uno
de
nuestros
componentes.
17
18
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Xilinx
Altera
So\ware
Warp
5.2
Material de apoyo
ispLEVER Classic
19
Practica 12
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.