Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
COLOMBIA
SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
ELECTRONICA DIGITAL II
2 de septiembre de 2015
RESUMEN: La presente gua propone
la elaboracin de algunos cdigos en lenguaje
VHDL, con los cuales ser posible comprobar cul
es el comportamiento de diferentes estructuras
bsicas tales como sentencias concurrentes
(WHEN-ELSE,
WITH-SELECT-WHEN),
sentencias condicionales (IF-THEN-ELSE, CASEWHEN, FOR-LOOP, WHILE-LOOP) y sentencias
process; con las cuales se pueden realizar de
diferentes maneras ejercicios que cumplen con un
mismo propsito. La manera en la cual est
compuesta la gua de laboratorio permite
comprender mejor la composicin y el
funcionamiento del lenguaje VHDL, reforzando en
gran medida la teora vista en clase.
PALABRAS
CLAVE:
VHDL,
sentencias
concurrentes,
sentencias
condicionales,
sentencias process.
1. INTRODUCCIN
El lenguaje VHDL permite simular sistemas de
bajo y alto nivel, el cual permite tres niveles de
descripcin (Estructural, RTL y comportamental).
Tiene varias ventajas entre las cuales se destacan
la reduccin y mejora de calidad del diseo, as
como la posibilidad de visualizar y explorar de
manera sencilla el espacio de diseo, adems de
esto, el VHDL es un lenguaje compatible con una
2. ABSTRACT
This guide proposes the elaboration of some
programs in VHDL, with which will be possible to
check what is the behavior of different kinds of
basic structures like concurrent sentences
(WHEN-ELSE, SELECT-WHIT-WHEN), conditional
sentences (IF-THEN-ELSE, CASE-WHEN, FORLOOP.WHILE-LOOP) and process sentences; with
which is possible to realize the same exercise by
different ways. The guide is composed in such
mode that allows to understand in a better way the
composition and operation of the Very High Speed
Integrated Language, reinforcing the theory
covered in class.
3. OBJETIVOS
3. MATERIALES Y EQUIPOS
4. MARCO TEORICO
SENTENCIAS
CONCURRENTES:
La
instruccin bsica de la ejecucin concurrente es
la asignacin entre seales a travs del smbolo
<=. Para facilitar la asignacin de las seales
VHDL incluye elementos de alto nivel como son
instrucciones condicionales, de seleccin, etc, que
se vern a continuacin:
SENTENCIAS
SECUENCIALES:
VHDL
permite utilizar otro tipo de sentencias
condicionales ms parecidas a los lenguajes de
programacin
usados.
Tiene
que
ir
obligatoriamente dentro de un process. Las
5. PROCEDIMIENTO
SENTENCIAS CONCURRENTES
SENTENCIAS CONDICIONALES
VHDL permite utilizar sentencias condicionales
que son parecidas alas de los lenguajes en
programacin. Todas estas sentencias tienen que
ir obligatoriamente dentro de un process, los
comandos utilizados se observan en las figuras 3
a 6.
SENTENCIA PROCESS
La estructura particular denominada process
define los lmites de un dominio que se ejecutar
(simular) si y solo si alguna de las seales de su
lista de sensibilidad se ha modificado en el
anterior paso de simulacin. La lista de
sensibilidad es un conjunto de seales cuyos
cambios de estado activan la ejecucin del
proceso (la lista no puede incluir ni variables ni
constantes). Los comandos utilizados para cada
uno de los ejercicios referentes a la sentencia
process se pueden observar en las figuras 7 a 13.
EFECTO DE
PROCESS
MEMORIA
DENTRO
CONDICIONAL COMPLETO
EFECTO DE LA SENSIBILIDAD
DE
UN
EJECUCION EN PARALELO
SW0: PIN_AB28
SW1: PIN_AC28
SW2: PIN_AC27
SW3: PIN_AD27
O0: PIN_G18
O1: PIN_F22
O2: PIN_E17
O3: PIN_L26
O4: PIN_L25
O5: PIN_J22
O6: PIN_H22
EJERCICIO ADICIONAL
Desarrollar
un
decodificador
usando
las
sentencias apropiadas que permita a partir de un
cdigo de entrada visualizar el nombre de uno de
los integrantes del grupo en los display 7segmentos de la tarjeta.
6. ANLISIS DE RESULTADOS
Sentencias Concurrentes
WHEN-ELSE
En este cdigo, la sentencia when-else es usada
para el diseo de un codificador BCD a 7
segmentos.
En la entidad se declara un vector de entrada de 4
posiciones al que se le ha dado como nombre SW,
correspondiente a las entradas del numero binario
BCD y un vector de salida de 7 posiciones llamado
WITH-SELECT-WHEN
Este programa se describe de manera similar a la
sentencia WHEN-ELSE, realizando el mismo
procedimiento de decodificar un cdigo en BCD a
un display 7 segmentos, con la diferencia de que
para la utilizacin de un solo Switch (o
combinacin de switches en este caso) solo es
necesario nombrarlo una vez dentro de la
arquitectura, tal y como se observa en la figura 15
(cdigo usado para la utilizacin de la sentencia
WITH-SELECT-WHEN):
Sentencias condicionales
IF-THEN-ELSE
Para la utilizacin de esta sentencia, la gua
propone la realizacin de un cdigo que tenga dos
entradas A y B (de 3 bits), y una entrada de control
de 2 bits, asimismo, este tendr una salida (result)
de 3 bits.
CASE-WHEN
Para la elaboracin del ejercicio anterior con este
tipo de sentencia, es necesario nombrar los
resultados a obtener anteponiendo la palabra
A3: PIN_AD27
A4: PIN_AB27
A5: PIN_AC26
A6: PIN_AD26
A7: PIN_AB26
B0: PIN_G19
B1: PIN_F19
B2: PIN_E19
B3: PIN_F21
B4: PIN_F18
B5: PIN_E18
B6: PIN_J19
B7: PIN_H19
B8: PIN_J17
FOR-LOOP
El programa propuesto en la gua tiene como
objetivo mostrar un corrimiento del valor
ingresado, por lo cual se asigna una entrada A de
8 bits y una salida B de 9 bits (uno ms debido al
corrimiento generado por el ultimo bit de A).
Se realiza un ciclo para una variable llamada i que
se realizara 8 veces debido a la cantidad de bits
que tiene asignada la entrada A. En la posicin 1
del vector B ira el dato que tiene A en la posicin
0, En la posicin 2 de B ira el dato que se
encuentre en la posicin 1 de A y as
sucesivamente hasta llegar a la posicin 8 del
vector B que tendr el valor del dato contenido en
la posicin 7 del vector A.
La asignacin de pines para el cdigo de la figura
18 se realiza de la siguiente manera:
A0: PIN_AB28
A1: PIN_AC28
A2: PIN_AC27
WHILE-LOOP
Para este tipo de sentencia, la gua indica realizar
el mismo ejercicio del anterior punto pero variando
ciertos detalles a fin de usar la sentencia como tal.
Aqu la variable i que ser encargada de llevar la
cuenta en cuanto a cantidad de repeticiones, debe
tener un valor de inicio y hacer el respectivo ciclo
mientras la variable no supere la mayor cantidad
posible de bits del vector de entrada A.
Sentencias process
Efecto de la lista de sensibilidad: A
Para este cdigo se requieren 2 entradas A y B y
una salida C de un bit.
Se necesita realizar un process en el cual en su
lista de sensibilidad solo responder a estmulos
provenientes del puerto de entrada A. El puerto de
salida C tomara el valor en el que se encuentre A
mostrndolo en los LED de la FPGA. La entrada B
se dispone a habilitar la lectura que realiza C de A.
A: PIN_AB28
B: PIN_AC28
C: PIN_G19
Ejercicio adicional
Este ejercicio propone visualizar el nombre de uno
de los integrantes del grupo mediante los displays
de la FPGA. El grupo de trabajo decidi mostrar
las palabras SANTI, ANDRES, GELVEZ y la fecha
de presentacin del laboratorio (02-02-2015)
mediante diferentes combinaciones de entradas.
Para realizar este ejercicio es necesario asignar
un vector de 3 posiciones correspondiente a tres
switches de la FPGA. Ya que el ejercicio requiere
de la utilizacin de los 8 displays incluidos en la
7. CONCLUSIONES
8. REFERENCIAS
1.
PROGRAMACIN
EN
VHDL
https://es.wbsVHDL.org//Programaci
%C3%B3n_en_VHDL/Arquitectura#Sentencia
s_Concurrentes
2.
INDTRODUCCION
A
LA
PROGRAMACION EN VHDL
http://eprints.ucm.es/26200/1/intro_VHDL.
pdf
3.
SENTENCIAS CONDICIONALES
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/condicional/co
ndicional_1.html
4.
5.
6.
GRAMATICA
DEL
LENGUAJE
http://www.ehu.eus/~jtpolagi/completo/04.
htm
7.