Tecnología Electrónica 2

Ingeniería Técnica Industrial. Universidad de Vigo
PRÁCTICA 1: Diseño y simulación de un circuito combinacional
básico en VHD
Ejercicio 1 – Diseñar y sintetizar en el entorno ISE un bloque decodificador 2 a
4 con entrada de habilitación mediante la descrición funcional en !"D#$
1. Abrir el entorno de desarrollo ISE de Xilinx haciendo doble clic en el icono correspondiente
en el escritorio, o bien en Inicio » Todos los Programas » Xilinx ISE Design Suite » ISE »
Project Navigator. (Si el último proyecto no fue cerrado al ejecutar el ISE lo abrirá
directamente.)
Figura 1. ISE Project Navigator.
1
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
!. "rear un nuevo pro#ecto pulsando el bot$n New Project o desde el %en& File » New
Project.
Figura !. Abrir un pro#ecto nuevo.
'. En pri%er lugar seleccionar la carpeta donde se al%acenar( el pro#ecto Location:
C:\Usuarios\te2\grupoX\Practica1\ A continuaci$n poner al pro#ecto el no%bre
decodificador_2a4_en # pulsar el bot$n Next.
Figura '. )ocali*aci$n, no%bre # tipo de pro#ecto.
!
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
+. En la siguiente pantalla seleccionar los datos del dispositivo sobre el ,ue se reali*ar( el
dise-o tal # co%o se indica en la siguiente .igura. Fa%ilia CoolRunner 2 CPLDs, dispositivo
XC2C256, encapsulado !144 # velocidad "#. Pulsar el bot$n Next.
Figura +. Selecci$n de dispositivo.
/. A continuaci$n se da la opci$n de a-adir nuevos .icheros .uente, dd New Source, # de
a-adir .icheros #a existentes, dd Existing File, se debe pulsar el bot$n Next dos veces #
.inal%ente en la ventana de resu%en, Summar!, revisar las opciones elegidas # pulsar el bot$n
Finis".
Figura /. 0esu%en de las propiedades del nuevo pro#ecto
'
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
1. 2ras pulsar el bot$n Finis" se abre el navegador de pro#ectos. En la parte i*,uierda se
abre un cuadro con las pesta-as de dise-o, .icheros # bibliotecas. En la pesta-a de dise-o se puede
seleccionar el tipo de .uentes, Sources #or: $ , # se %uestra un cuadro con la jerar,u3a del
pro#ecto # la *ona de procesos.
Figura 1. Pro#ecto reci4n creado.
5. A continuaci$n a-adir un nuevo .ichero .uente 678) al pro#ecto desde el %en& Project »
New Source, seleccionar %&DL 'odule, poner el no%bre decodificador_2a4_en # pulsar Next.
Figura 5. A-adir nuevo .ichero .uente al pro#ecto.
+
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
9. Seleccionar los puertos de entrada :e;, e1 # en< # de salida :s;, s1, s! # s'<, tal # co%o se
%uestra en la .igura, # pulsar Next. A continuaci$n se %uestra el resu%en, Summar!, veri.icar #
pulsar Finis".
Figura 9. A-adir puertos de entrada # salida al nuevo %$dulo.
=. Auto%(tica%ente se crea el es,ueleto con la estructura del .ichero .uente> declaraci$n de
bibliotecas, declaraci$n de entidad # puertos de E?S :de.inidos en el punto 9< # la declaraci$n de la
ar,uitectura ,ue se co%pletar( con el c$digo necesario para dar .uncionalidad a la entidad :ver
descripci$n algor3t%ica del circuito decodi.icador en la p(gina 1; del libro de texto @8ise-o de
siste%as digitales con 678)A <.
Figura =. Estructura del nuevo .ichero .uente 678).
/
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
1;. Bna ve* co%pletado el c$digo se sinteti*ar( el pro#ecto haciendo doble clic en
S!nt"esi(e)XST dentro del grupo Im*lement Design en la *ona de procesos.
Figura 1;. Ar,uitectura del blo,ue decodi.icador.
11. Si no ha# errores %arca la tarea co%o reali*ada correcta%ente con un c3rculo verde. En
caso de haber errores estos se %uestran en la consola en la parte in.erior :con %a#or detalle en la
pesta-a Errors< # %arca el proceso co%o no .inali*ado con un aspa roja.
Figura 11. 8etalle de la pesta-a de errores.
1
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
1!. Si el circuito se ha sinteti*ado de .or%a correcta en la *ona de procesos dentro de
Im*lement Design » S!nt"esi(e)XST » %iew +TL Sc"emmatic es posible visuali*ar el
es,ue%a de puertas resultante de la s3ntesis del circuito.
Figura 1!. 6ista del es,ue%a 02) del decodi.icador.
1'. Bna ve* reali*ada la s3ntesis haciendo doble clic en Im*lement Design se sinteti*a
:S!nt"esi(e)XST<, se traduce :Translate<, se ajusta al dispositivo :Fit< # se genera el .ichero de
progra%aci$n correspondiente.
Figura 1'. 0esu%en del proceso tras la i%ple%entaci$n del dise-o.
5
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
Ejercicio 2 – Simular y %erificar el funcionamiento del decodificador mediante
un fichero de test$
1. A-adir un nuevo .ichero .uente 678) al pro#ecto para reali*ar la veri.icaci$n del circuito>
%en& Project » New Source, seleccionar %&DL Test ,enc", poner el no%bre
test_decodificador_2a4_en # pulsar Next.
Figura 1+. A-adir nuevo .ichero .uente al pro#ecto.
!. A continuaci$n seleccionar co%o .uente asociada al nuevo test el blo,ue
decodi.icadorC!a+Cen ,ue tras ser sinteti*ado se pretende veri.icar con el banco de pruebas :test
bench<. Pulsar Next # .inali*ar con Finis".
9
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
'. Auto%(tica%ente se crea el es,ueleto con la estructura del .ichero de
test_decodificador_2a4_en> declaraci$n de bibliotecas, de entidad # de ar,uitectura. A su ve*,
en la ar,uitectura se generar( la declaraci$n del co%ponente, la de.inici$n de se-ales, la
instanciaci$n de co%ponentes, # dos procesos> uno de reloj, no necesario #a ,ue el blo,ue bajo
prueba es co%binacional, # otro de est3%ulos, ,ue se %odi.icar( para veri.icar la .uncionalidad del
circuito decodi.icador.
Figura 1/. Editar el proceso de est3%ulos.
+. Para poder ver la estructura del pro#ecto en el cuadro de dise-o, tras la incorporaci$n del
nuevo .ichero de test, en .uentes ca%biar Sources #or: Im*lementation por Sources #or:
,e"avioral Simulation. Seleccionar en la jerar,u3a del pro#ecto el blo,ue
testCdecodi.icadorC!a+Cen # en el cuadro de procesos hacer doble clic en Simulate ,e"avioral
'odel.
Figura 11. Iniciar si%ulaci$n .uncional.
=
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
/. Si no ha# errores en el .ichero de test creado se abre en una nueva ventana el si%ulador
$%i& incluido por de.ecto en la herra%ienta $%'. En la ventana de $%i& con.igurar el tie%po de
si%ulaci$n a () ns. 0einiciar la si%ulaci$n, %en& Simulation » +estart, volver a ejecutar con el
nuevo tie%po de si%ulaci$n, %en& Simulation » +un, # visuali*ar todo el periodo de tie%po
si%ulado, %en& %iew » -oom » To Full %iew .F/0. "on las herra%ientas de *oo% # los
cursores veri.icar ,ue el resultado es el esperado. Si el .unciona%iento es el esperado cerrar $%i&
# no guardar ca%bios. En caso de ,ue se detecte alg&n error, tras cerrar el si%ulador, se veri.icar(
el c$digo .uente del blo,ue decodi.icador :ejercicio 1< para corregir el proble%a # se volver( a
si%ular hasta ,ue el .unciona%iento sea el especi.icado.
Figura 15. Si%ulador ISi%.
1;
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
Ejercicio & – Imlementar el decodificador re%iamente sintetizado y %erificado
en un circuito di'ital confi'urable$
Se i%ple%entar( el dise-o del decodi.icador reali*ado # veri.icado en los ejercicios anteriores en el
dispositivo l$gico con.igurable co%plejo "P)8 :Xilinx "ool0unnerII X"!"!/1 2D1++ 5"< de la placa
de desarrollo de 8igilent X"!X), ,ue inclu#e, entre otras cosas, visuali*adores :)E8 # 5
seg%entos<, pulsadores e interruptores ,ue sirven de inter.a* con el usuario.
1. En pri%er lugar ser( necesario asignar las entradas?salidas :E?S< del decodi.icador a los
ter%inales correspondientes del dispositivo. Para ello es necesario de.inir un .ichero de
restricciones B"F :User Constraints File< donde se asignan las se-ales a ter%inales del dispositivo
con.igurable, # se pueden de.inir otro tipo de restricciones :retardos, tie%pos, tipos de salida, etc<.
"opiar el .ichero XC2XL_D$*1_Digilent_+oards,ucf en el directorio del pro#ecto # a-adirlo al
%is%o en Project » dd Source.
!. Seleccionando en el cuadro de jerar,u3a el .ichero B"F a-adido en el punto anterior #
haciendo doble clic en Edit 1onstraints 2Text3 en el cuadro procesos se abre el .ichero B"F de
restricciones # es posible editarlo para a-adir #?o eli%inar la asignaci$n de se-ales a ter%inales. Se
asignar(n las entradas en, e1 # e; a los interruptores SEF1G, SEF5G # SEF9G respectiva%ente,
# las salidas s', s!, s1 # s; a los )E8sF/G, )E8sF1G, )E8sF5G # )E8sF9G.
Figura 19. Edici$n del .ichero B"F.
'. 2ras reali*ar la nueva asignaci$n de ter%inales ser( necesario volver a i%ple%entar el
dise-o, Im*lement Design, para ,ue los ter%inales sean asignados tal # co%o se acaba de
especi.icar en el .ichero de restricciones :Ejercicio 1 punto 1'<.
11
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
+. Antes de descargar el .ichero de con.iguraci$n en el "P)8 se puede reali*ar una si%ulaci$n
te%poral, ,ue #a tiene en cuenta los di.erentes retardos en el dispositivo obtenidos tras asignar las
se-ales # los recursos. Para ello seleccionar en el cuadro de dise-o Sources #or: Post Fit
Simulation # en el cuadro de procesos en $%i& %i&ulator hacer clic en Simulate Post Fit
'odel.
Figura 1=. Iniciar si%ulaci$n te%poral.
Esto vuelve a lan*ar el si%ulador $%i& ,ue reali*ar( la si%ulaci$n te%poral del circuito teniendo #a
en cuenta las restricciones te%porales # los datos de postprocesado, locali*aci$n de recursos e
interconexiones de la con.iguraci$n obtenida.
Figura !;. Si%ulaci$n te%poral.
/. Para con.igurar el dispositivo se conecta con cuidado uno de los extre%os del cable de
progra%aci$n en el puerto paralelo del ordenador, # el otro se enchu.a en la placa X"!"X)
teniendo en cuenta la orientaci$n con el texto ,ue identi.ica cada ter%inal :!!, "#!, $C%, $!& #
$!I<. 8espu4s de conectar el cable de progra%aci$n ali%entar la placa.
1!
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
1. En el cuadro de dise-o seleccionar de nuevo Sources #or: Im*lementation # en el cuadro
de procesos hacer doble clic en 1on#igure Target Device. 2ras pulsar el bot$n HI del aviso
:'arnin(< se abrir( la herra%ienta de con.iguraci$n i-P.C de la herra%ienta de dise-o de Xilinx.
Figura !1. Iniciar herra%ienta de con.iguraci$n iJPA"2.
5. En la ventana de i-P.C en la *ona i*,uierda en el cuadro i'P1T Flows hacer doble clic
en ,oundar! Scan # a continuaci$n, en la nueva pesta-a ,oundar! Scan ,ue se abre, hacer clic
derecho # seleccionar Inintiali(e 1"ain para iniciali*ar la cadena /.0. Al reali*ar la iniciali*aci$n
se detectan los dos P)8s de la cadena ,oundar! Scan # se abren una serie de cuadros de di(logo
para asignar .icheros de con.iguraci$n.
Figura !!. Iniciali*aci$n de la cadena )oundary Scan.
1'
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
9. 2ras hacer clic en el bot$n KES contestando a la pregunta 4Do !ou want to continue and
assign con#iguration #iles5. Seleccionar el .ichero de con.iguraci$n generado en el pro#ecto
C:\Usuarios\te2\grupoX\Practica1\decodificador_2a4_en\decodificador_2a4_en,1ed #
abrir para el pri%er dispositivo de la cadena :X"!"!/1< # pulsar L#pass para el segundo
:X"=/;;X)<. 2ras ello se abre el cuadro de propiedades resultante # se pulsa *2.
Figura !'. Asignaci$n del .ichero de con.iguraci$n.
=. Para con.igurar el dispositivo hacer clic derecho sobre el blo,ue X"!"!/1 # seleccionar
Progra&.
Figura !+. Progra%aci$n co%pletada con 4xito.
1;. Bna ve* con.igurado el dispositivo co%probar ,ue el circuito .unciona correcta%ente con
los interruptores # los )E8
1+
Tecnología Electrónica 2
PRÁCTICA 1 !ise"o # si$ulación de un circuito co$%inacional %&sico en V'!(
Ejercicio 4 – Diseñar( sintetizar( %erificar e imlementar un circuito
decodificador )*D a + Se'mentos$
Se propone reali*ar el dise-o, s3ntesis, veri.icaci$n e i%ple%entaci$n de un circuito decodi.icador
L"8 a 5 seg%entos. Para ello seguir los siguientes pasos :expuestos en detalle en los tres
ejercicios anteriores<.
1. "rear un nuevo pro#ecto File » New Project # guardarlo en
C:\Usuarios\te2\grupoX\Practica1\ con el no%bre +cd_a_#seg.
!. A-adir un nuevo .ichero .uente Project » dd New Source, seleccionar %&D 'odule, #
no%bre +cd_a_#seg.
Entradas: en : in STD_LOGIC;
bcd : in STD_LOGIC_VECTOR (3 downto 0);
Saidas: a! b! c! d! e! "! # : o$t STD_LOGIC;
'. A-adir a la ar,uitectura el proceso ,ue reali*ar( la .uncionalidad del decodi.icador %ediante
la descripci$n algor3t%ica del %is%o. Para ello descargar # co%pletar el eje%plo
:+cd_a_#seg,34dl<
+. 8escargar # a-adir el .ichero de restricciones de usuario B"F
:XC2XL_D$*2_Digilent_+oards,ucf<.
/. I%ple%entar el dise-o.
1. A-adir un nuevo .ichero .uente para el test Project » dd New Source, seleccionar %&D
Test ,enc", # no%bre test_+cd_a_#seg.
5. Eli%inar el proceso de reloj # editar el proceso de est3%ulos.
%% Sti&$$s 'rocess
sti&_'roc: 'rocess
(ariabe i: inte#er ran#e 0 to )*;
be#in
%% enabe + ,0, and bcd + -0000. "or /0 ns0
en 1+ ,0,;
bcd1+200002;
wait "or /0 ns;
%% 3od enabe + ,), and bcd + -0000.
en 1+,),;
%% insert sti&$$s 3ere
"or i in ) to )* oo'
wait "or )0 ns;
bcd 1+ bcd 4 2000)2;
end oo';
end 'rocess;
9. Si%ular el circuito # veri.icar ,ue .unciona correcta%ente :para visuali*ar el bus +cd56:)7
en deci%al hacer clic derecho en la se-al # seleccionar +adix » 6nsigned Decimal<.
=. Bna ve* veri.icado el .unciona%iento, i%ple%entar el dise-o +cd_a_#seg, cargar el
.ichero de con.iguraci$n con la herra%ienta i-P.C # co%probar ,ue el circuito .unciona
correcta%ente con los interruptores # los visuali*adores de 5 seg%entos.
1/