Está en la página 1de 18

Prctico 3 Tutorial

El trabajo consiste en realizar un circuito pasa todo, es decir que reproduzca la seal de
entrada en la salida. El objetivo de realizar tan simple tarea consiste en verificar el funcionamiento
de los conversores anlogo-digitales y digitales-analgicos por donde la seal deber pasar.
!dems, una vez funcionando el dispositivo, la implementacin de un filtro "#$ sobre el trabajo
generado es trivial.

"igura. % Esquema de cone&in de los dispositivos
'amos a describir cada uno de los componentes del dispositivo de manera que se pueda
entender el cone&ionado.

Conversor AD
En la "igura ( se puede apreciar el cone&ionado del conversor !) en detalle junto con el
diagrama descriptivo de la *oja de datos. En el diagrama podemos ver que el mdulo utilizado
cuenta con ( canales de conversin analgicos. ! la entrada de cada seal analgica se presenta
un filtro. Este filtro generalmente es un filtro anti alias que permite pasar sin atenuacin seales
menores a la mitad del muestreo. Es decir, como nuestro conversor funciona a %( +*z, la seal de
m&ima frecuencia que puede definir es una seal de , +*z de acuerdo con el teorema de
-yquist. )e este modo el filtro a la entrada aten.a las seales analgicas de mayor frecuencia que
esta.
/odemos ver adems que el mdulo se alimenta desde la placa 0asys. 'cc es de 1.1 '. )e esta
forma la seal que debemos ingresar desde el generador de seales es una seal entre 2 y 1.1 '.
)e modo que para poder ingresar una seal sinusoidal de una frecuencia determinada, lo mejor
ser3a montarla sobre una seal continua de %.,4 ' y con una amplitud m&ima igual a este valor
5en realidad un poco menor debido a los voltajes m&imos y m3nimos de la conversin6.
)el diagrama se puede notar que para su correcto funcionamiento el mdulo necesita de una
seal de cloc7 generada por la placa 0asys adems de una seal 89 58*ip select6 ambas
sincronizadas de acuerdo al diagrama de la "igura 1 perteneciente a la *oja de datos del conversor
!) 5!)89:;:,6.

"igura. ( Esquema de cone&ionado del conversor !)
El funcionamiento del mdulo se puede e&plicar a partir del diagrama de <imming. El mdulo
recibe una seal de cloc7 de la placa 0asys junto con la seal 89. 8uando la seal de 89 pasa a un
estado de =2> lgico, el conversor comienza a funcionar pasando por 9)!<! los bits
correspondientes al valor le3do de la seal analgica. 9e puede ver como los primeros ; bits son
ceros y a continuacin se transmiten de manera serial desde el bit ms significativo de la palabra
*asta el menos significativo.

"igura. 1 Esquema de cone&ionado del conversor !)


Conversor DA
En la "igura ; se muestra el sistema de cone&in del conversor )!. -uevamente puede verse
como el mdulo necesita una seal de cloc7 y otra de sincronismo. El diagrama de <imming se
muestra en la "igura 4.


"igura. ; Esquema del cone&ionado del conversor )!
El diagrama de <imming muestra como a partir de la seal de cloc7 y sincronismo, el mdulo
recibe el valor a convertir de manera serial desde la placa 0asys.

"igura. 4 )iagrama de <imming del conversor )!
Placa Basys
<anto el mdulo del )! como el del !) son sincronizados mediante estructuras de *ard?are
5componentes en '@)A6 provistas por los fabricantes. Estas estructuras generan todas las seales
de sincronismo que necesitan los mdulos para funcionar correctamente y adems proveen
seales para control de 9<!$< y )B-E. En este trabajo se utilizan estos componentes de '@)A
y se controlan mediante un componente en '@)A de control.


"igura. , )iagrama de bloques del programa en la placa 0asys
En la "igura , se puede visualizar el programa a implementar a nivel de transferencia de registro
5$<A6. En verde se muestran las cone&iones *acia los mdulos y en rojo las cone&iones internas.
/ara poder realizar este programa en '@)A es necesario escribir completamente el componente
de control y luego conectar todos los componentes en un mdulo superior llamado top.v*d.


Conexiones
Aa filosof3a que generalmente se utiliza a la *ora de programar un sistema jerrquico es partir
desde lo ms general *acia lo particular. /or ello, primero se supone un bloque de control a modo
de caja negra y se plantea las cone&iones de los distintos mdulos.
El trabajo de cone&ionado en '@)A ya fue realizado anteriormente en el trabajo prctico (. !
modo de ejemplo se e&plica el trabajo realizado en aquella oportunidad.

"igura. : )iagrama de cone&in del prctico (
En aquella oportunidad el objetivo consist3a en conectar en serie dos componentes generados a
travCs de 9imulin7. En la "igura : se puede ver el diagrama planteado 5este diagrama es la solucin
planteada al problema6. Dna vez ideada la solucin se prosigue a generar el cdigo en '@)A que
implemente la solucin planteada.
! continuacin se escribe el arc*ivo top.v*d e&plicando las distintas partes de su contenido.
library IEEE;
use IEEE.STD_L!IC_""#$.ALL;

En principio se declaran las librer3as que se utilizarn en el programa. En este caso las ( librer3as
de la #EEE que figuran antes.

! continuacin se describe la entidad <op mediante la descripcin de sus entradas y salidas. En el
diagrama de la "igura : se ven las entradas y salidas del bloque superior top. Es necesario
especificar el tipo de datos que utiliza cada entrada o salida. -tese que la .ltima entrada o salida
declarada no finaliza en punto y coma como las dems sino que inmediatamente se cierra el
parCntesis de la estructura port.



entity To% is

%ort& cloc' ( I) st*_lo+ic;
resetbutton ( I) st*_lo+ic;
cloc'_enable ( I) st*_lo+ic;
entra*a ( I) st*_lo+ic_vector&, D-)T ./;
sali*a ( 0T st*_lo+ic_vector&, D-)T ./
/;
en* To%;

! continuacin se declara la arquitectura de la entidad. /or defecto la arquitectura viene con el
nombre de 0e*avioral. #nmediatamente despuCs de la declaracin de la arquitectura se declaran
las seales y componentes que se utilizarn en la descripcin del funcionamiento.

arc1itecture Be1avioral o2 To% is

9e declaran dos tipos de componentesE +ultiplicapor( y 9uma4. -uevamente es necesario
describirlos a nivel entrada F salida. -tese la utilizacin de la estructura component F end
component. En este caso debemos corresponder la descripcin especificada con los arc*ivos
generados por simulin7 5es necesario colocar los mismos nombres de los arc*ivos.v*d a los
componentes6.

co3%onent 4ulti%lica%or5 IS
P6T& cl' ( I) st*_lo+ic;
reset ( I) st*_lo+ic;
cl'_enable ( I) st*_lo+ic;
In" ( I) st*_lo+ic_vector&, D-)T ./; 77 int8
ce_out ( 0T st*_lo+ic;
ut" ( 0T st*_lo+ic_vector&"9 D-)T ./ 77 int"#
/;
E)D co3%onent;

co3%onent Su3a9 IS
P6T& cl' ( I) st*_lo+ic;
reset ( I) st*_lo+ic;
cl'_enable ( I) st*_lo+ic;
In" ( I) st*_lo+ic_vector&"9 D-)T ./; 77 int"#
ce_out ( 0T st*_lo+ic;
ut" ( 0T st*_lo+ic_vector&"# D-)T ./ 77 s2ix",
/;
E)D co3%onent;

8ada una de las cone&iones internas entre componentes debe declararse con un nombre y un
tipo de datos. Es conveniente realizar un diagrama como el de la "igura : y colocar un nombre a
cada cable entre componentes internos. Aas cone&iones entre componentes y puertos de entrada
salida de la entidad top no se declaran adicionalmente.

si+nal aux ( st*_lo+ic;
si+nal se:al( st*_lo+ic_vector &"9 *o;nto ./;
si+nal se:al5( st*_lo+ic_vector &"# *o;nto ./;

Auego viene la palabra reservada be+in. Esta representa el comienzo de la descripcin del
funcionamiento interno de la entidad top.

be+in

9e instancia un componente llamado +ultia% del tipo de componentes +ultiplicapor( y se
declaran las cone&iones de cada uno de sus puertos. @acia la izquierda se coloca el nombre del
puerto de la instancia. @acia la derec*a debe figurar el nombre de la seal a la que se conecta el
puerto o 5si se conecta con un puerto de la entidad top6 el nombre del puerto de la entidad top.

4ultia" ( 4ulti%lica%or5
P6T 4AP&
cl' <= Cloc'>
reset <= resetbutton>
cl'_enable <= cloc'_enable>
In" <= entra*a>
ce_out <= aux>
ut" <= se:al
/;
Su3aa" ( Su3a9
P6T 4AP&
cl' <= Cloc'>
reset <= resetbutton>
cl'_enable <= cloc'_enable>
In" <= se:al>
ce_out <= aux>
ut" <= se:al5
/;

9e asigna al puerto salida los primeros G bits del cable seal( ya que este puerto corresponde a
los leds de la placa 0asys.

sali*a ?< se:al5 &, *o;nto ./;

El programa termina cuando se finaliza la descripcin de la arquitectura.

en* Be1avioral;



Conexiones Prctico 3
En la "igura G aparece la solucin planteada al problema de realizar un circuito pasa-todo. )e
acuerdo a lo visto en el cone&ionado del prctico anterior se e&plica por pasos el desarrollo del
mdulo top.

"igura. G )iagrama de cone&iones. /ractico 1
library IEEE;
use IEEE.STD_L!IC_""#$.ALL;
9e declara la entidad seg.n los puertos que aparecen en la "igura G.
entity to% is
Port &
CL@ ( in st*_lo+ic;
6ST ( in st*_lo+ic;
SDATA"( in st*_lo+ic;
SDATA5( in st*_lo+ic;
SCL@ ( out st*_lo+ic;
nCS ( out st*_lo+ic;
D" ( out st*_lo+ic;
D5 ( out st*_lo+ic;
CL@_0T ( out st*_lo+ic;
nSA)C ( out st*_lo+ic
/;
en* to%;
/uede verse como en la figura los puertos de la izquierda corresponden a entradas mientras que
los de la derec*a corresponden a las salidas de la entidad.
9e declaran los 1 componentes que se utilizaran. Aos componentes de los mdulos !) y )! se
describen en funcin de las declaraciones en los cdigos provistos por los fabricantes.
arc1itecture Be1avioral o2 to% is
co3%onent AD"6e2Co3% is
Port &
CL@ ( in st*_lo+ic;
6ST ( in st*_lo+ic;
SDATA" ( in st*_lo+ic;
SDATA5 ( in st*_lo+ic;
SCL@ ( out st*_lo+ic;
nCS ( out st*_lo+ic;
DATA" ( out st*_lo+ic_vector&"" *o;nto ./;
DATA5 ( out st*_lo+ic_vector&"" *o;nto ./;
STA6T ( in st*_lo+ic;
D)E ( out st*_lo+ic
/;
en* co3%onent ;
co3%onent DA56e2Co3% is
Port &
CL@ ( in st*_lo+ic; 77 Syste3 Cloc' &9.4BC/
6ST ( in st*_lo+ic;
D" ( out st*_lo+ic;
D5 ( out st*_lo+ic;
CL@_0T ( out st*_lo+ic;
nSA)C ( out st*_lo+ic;
DATA" ( in st*_lo+ic_vector&"" *o;nto ./;
DATA5 ( in st*_lo+ic_vector&"" *o;nto ./;
STA6T ( in st*_lo+ic;
D)E ( out st*_lo+ic
/;
en* co3%onent ;

co3%onent control is
Port &
STA6TAD ( out st*_lo+ic;
D)EAD ( in st*_lo+ic;
DATA"AD ( in st*_lo+ic_vector&"" *o;nto ./;
STA6TDA ( out st*_lo+ic;
D)EDA ( in st*_lo+ic;
DATA"DA ( out st*_lo+ic_vector&"" *o;nto ./
/;
en* co3%onent;
! continuacin se detallan todas las seales que se utilizaran para conectar los mdulos
si+nal STA6T" ( st*_lo+ic;
si+nal STA6T"" ( st*_lo+ic;
si+nal STA6T5 ( st*_lo+ic;
si+nal D)E" ( st*_lo+ic;
si+nal D)E5 ( st*_lo+ic;
si+nal DATA"ADs ( st*_lo+ic_vector&"" *o;nto ./;
si+nal DATA"DAs ( st*_lo+ic_vector&"" *o;nto ./;
si+nal DATA5ADs ( st*_lo+ic_vector&"" *o;nto ./;
si+nal DATA5DAs ( st*_lo+ic_vector&"" *o;nto ./;
Auego de realizar todas las declaraciones se realiza el cone&ionado. -tese que e&isten puertos
de componentes con el mismo nombre sin embarga no e&iste ambigHedad en el cone&ionado ya
que aunque los puertos de dos componentes tengan el mismo nombre 5)B-E, 9<!$<6 estn
conectados a distintas seales.
be+in
a*" ( AD"6e2Co3%
P6T 4AP&
CL@ <= CL@>
6ST <= 6ST>
SDATA" <= SDATA">
SDATA5 <= SDATA5>
SCL@ <= SCL@>
nCS <= nCS>
DATA" <= DATA"ADs>
DATA5 <= DATA5ADs>
STA6T <= STA6T">
D)E <= D)E"
/;
control" ( control
P6T 4AP &
STA6TAD <= STA6T">
D)EAD <= D)E">
DATA"AD <= DATA"ADs>
STA6TDA <= STA6T5>
D)EDA <= D)E5>
DATA"DA <= DATA"DAs
/;

*a" ( DA56e2Co3%
P6T 4AP&
CL@ <= CL@>
6ST <= 6ST>
D" <= D">
D5 <= D5>
CL@_0T <= CL@_0T>
DATA" <= DATA"DAs>
DATA5 <= DATA5DAs>
STA6T <= STA6T5>
D)E <= D)E5
/;
en* Be1avioral;

Desarrollo *el co3%onente *e Control
/ara poder desarrollar el mdulo de control es necesario estudiar un poco el funcionamiento de
los componentes propietarios de los conversores !) y )!. ! continuacin se muestran los
diagramas de estado de los componentes en '@)A de los mdulos !) y )!.

"igura. I +quina de estado del 8omponente !)


"igura. %2 +quina de estado del 8omponente )!
)esde el punto de vista prctico, para iniciar la conversin se debe activar la seal 9<!$< del
mdulo del conversor !), una vez finalizada la conversin, el mdulo activa la seal )B-E 5para
ello la seal de 9<!$< deber estar en nivel bajo6. El funcionamiento del componente para el
conversor )! funciona de manera anloga.
Aa solucin que se plantea es la utilizacin de ( estructuras Process funcionando en paralelo.
! continuacin se describe el mdulo de control.
library IEEE;
use IEEE.STD_L!IC_""#$.ALL;
9e describe la entidad con sus entradas y salidas.
entity control is
Port &
STA6TAD ( out st*_lo+ic;
D)EAD ( in st*_lo+ic;
DATA"AD ( in st*_lo+ic_vector&"" *o;nto ./;
STA6TDA ( out st*_lo+ic;
D)EDA ( in st*_lo+ic;
DATA"DA ( out st*_lo+ic_vector&"" *o;nto ./
/;
en* control;
9e describe la arquitectura sin declarar ninguna seal adicional.
arc1itecture Be1avioral o2 control is
be+in
Aos process que se describen son llamados combinacional% y combinacional(. Esta estructura
permite escribir cdigo acerca del funcionamiento del *ard?are a implementar. ! partir de la
lgica deducida del cdigo, el programa #9E deduce una estructura de *ard?are que cumpla dic*a
lgica. !l trabajar con este tipo de estructuras es necesario notar que no se est programando de
manera secuencial. <odas las asignaciones se realizan al finalizar el process por lo que estructuras
distintas funcionan en paralelo.


co3binacional" ( %rocess&D)EAD/
be+in
i2 D)EAD < D"D t1en
DATA"DA ?< DATA"AD;
STA6TAD ?< D"D;
else
STA6TAD ?< D.D;
en* i2;
en* %rocess;
El process combinacional% solo consta de una estructura #" asociada con la variable )B-E!) del
mdulo conversor !). Esto permite comenzar la conversin activando la seal 9<!$<!) y cargar
la salida )!<!%)! con el valor convertido )!<!%!). El process combinacional( slo tiene en
cuenta la seal 9<!$<)!.
co3binacional5 ( %rocess&D)EDA/
be+in
i2 D)EDA < D"D t1en
STA6TDA ?< D"D;
else
STA6TDA ?< D.D;
en* i2;
en* %rocess;
Auego de finalizar ambas estructuras, se cierra el programa.
en* Be1avioral;

El *ard?are generado se muestra en la "igura %%. Es importante poder visualizar el *ard?are a
implementar a partir de la descripcin del cdigo.


"igura. %% #mplementacin del mdulo 8ontrol
En la "igura %% se ve como el #9E interpreta ambos %rocess en un "lip "lop ) cuya seal de gate
es la seal de )B-E!). El puerto )B-E)! parece desconectado sin embargo si uno apoya el
mouse sobre el puerto figura que se encuentra conectado directamente a la seal 9<!$<)!. Esta
cone&in no figura para *acer menos complicado el diagrama.

I3%le3entaciEn en la FP!A
/ara la implementacin del programa lo que falta es la asignacin de pines respecto del lugar
donde se colocan los /+ods de )igilent. En el presente caso, el /+od del !) se coloc en el banco
% y el /mod del )! en el 0anco ;.
El arc*ivo de D8" queda de la siguiente manera.
)ET GCL@G LC < P9$;
)ET GCL@_0TG LC < PH5;
)ET GD"G LC < PH";
)ET GD5G LC < P85;
)ET G6STG LC < P#H;
)ET GSCL@G LC < P98;
)ET GSDATA"G LC < P9H;
)ET GSDATA5G LC < P,$;
)ET GnCSG LC < P,9;
)ET GnSA)CG LC < P8";

También podría gustarte