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

TUTORIALDEXILINXISE

1FlujodediseodeFPGA/CPLD
La herramienta XilinxISE (Integrated Software Environment) es una herramienta de diseo de circuitos
profesional. Proporciona una solucin completa de diseo para un conjunto de puertas programables
(FPGA)oparasistemasdelgicaprogramablecompleja(CPLD).

ISEnosproporcionalasherramientasnecesariaspararealizarcadaunadelassiguientesetapas:
Entrada de diseo: En esta fase implementamos la especificacin del diseo de forma tangible. ISE
proporcionadosformasderealizarlo:
oMedianteunesquemtico(dibujodecomponentes).
oMedianteunlenguajededescripcinhardware:VHDL/Verilog.
Simulacinfuncional:Estaotrafaseimplicaladepuracindeldiseo,ladeteccindeerroressinteneren
cuenta las caractersticas temporales (retrasos temporalesde las puertas, retrasos en las conexiones,...).
Para realizar la simulacin, aplicamos estmulos a las entradas del diseo y examinamos la salida para
verificar que los resultados concuerdan con la funcionalidad esperada. Si los estmulos no producen los
resultadosesperados,debemosdevolveralafasedeentradadediseoparamodificarla.
Implementacin del diseo: En esta fase del diseo se genera la netlist describiendo el circuito con
puertas en la tecnologa especfica. Este modelo de puertas es completamente optimizado para
incrementarelrendimientodeldiseooreducirelnmerodepuertas,dependiendodenuestraprioridad.

TUTORIALDEXILINXISE

Simulacintemporal:Traslafasedecompilacin,serepitelasimulacinfuncionalparaasegurarquela
fasedeimplementacinnohaalteradoelfuncionamientodeldiseo.
Colocacinyconexionado:Enestafasesegeneraelarchivodeprogramacindelalgicadediseo(la
FPGAoelCPLD)ysecalculanlosretrasosdelasconexiones.
Simulacin temporal: Finalmente, aplicamoslos estmulos al diseo para comprobar si se cumplen las
condicionestemporalesdebidoalaimplementacinlgicaoalamscaradeprogramacindeldiseo.Si
no se cumplen, quizs se necesite volver a la etapa de implementacin del diseo para encontrar otra
solucinmsptimaoalaetapadeentradadediseoparaprobarotraimplementacinlgica.
Acontinuacinsemuestranlosdiferentespasosparaeldiseodeuncircuitoosistema.

2Creacindeunproyectonuevo
ArrancarelprogramaXilinxISE:InicioProgramasXilinxDesignToolsISEDesignSuite14.7ISE
DesignToolsProjectNavigator
Este es el aspecto que tiene la ventana principal del programa, desde donde se realizar la mayora de
pasosdelflujodediseo.

Paraempezararealizarundiseo,sedebecrearpreviamenteunproyecto.Unproyectoesunconjuntode
ficherosdediseo,talescomoesquemticos,lneasdecdigodeprogramas(siseharealizadoeldiseo
utilizando un lenguaje de programacin especfico de diseo de circuitos HDL), listas de conexionado,

TUTORIALDEXILINXISE

bibliotecas de componentes, vectores de test para la simulacin, etc., seleccionados para un diseo
especfico.
Si hubiera ya algn proyecto cargado, se puede cerrar seleccionando la opcin de men File Close
Project
Paracrearunnuevoproyecto,seleccionar:FileNewProject
Acontinuacinindicarlosdatosdelnuevoproyecto:
AsignarunnombredeproyectoenProjectName,
yellugareldirectoriodeubicacinendondesealmacenartodalainformacindelproyecto.Guardar
en la unidad H:\ y en la carpeta correspondiente a vuestra sesin y el nmero de grupo que se os haya
asignado.

Observar que a medida que se escribe el nombre del proyecto, el directorio destino se va rellenando
acordeadichonombre.

TUTORIALDEXILINXISE

*Importante:
AsegurardeguardarelproyectoenlacarpetadegrupoyenlaunidadH:Todoloqueseguardefuerade
vuestra carpeta en H: no se asegura el poder recuperarlo en sesiones posteriores. Se recomienda, por
seguridad,guardarunacopiaenelcorreooenunamemoriaUSB.
Cadaprcticadeberestartotalmentecontenidaensupropiacarpeta:Practica1,Practica2,etc.
Xilinx ISE requiere nombres de directorios con caracteres ingleses y sin espacios ni signos de
puntuacin.
Sonvlidoslossiguientesnombres:
o H:\Grupos_1\G1\Practica1\proyecto_ISE
o H:\Grupos_1\G2\Practica10\Practica10
Lossiguientesdirectoriosprovocarnerroresenelprograma
o
o
o
o

H:\Grupos_2\G1\Prctica10\Prctica10
H:\Grupos_2\G3\Practica10\
H:\Grupos_3\G1\Practica3\Diseo\...
H:\DocumentsandSettings\.....

Tipodeproyectoacrear:
o
o
o
o

HDL:Descripcinenunlenguajededescripcinhardware
Schematic:Capturandoelesquemtico
EDIF:Pararecuperarproyectosenetapasintermediasdeldiseo
NGC/NGO:Pararecuperarproyectosenetapasintermediasdeldiseo

Elproyectoesunesquemtico.
En la segunda pantalla hay que seleccionar el dispositivo sobre el que se va a sintetizar el diseo. El
dispositivo programable que se va a utilizar es una CPLD XC2C256 de Xilinx. Mirar el dispositivo para
conocerlavelocidadyelencapsulado.Paraestecasoseseleccionar:
DeviceFamily:CoolRunner2CPLDs(familia)
Device:XC2C256(dispositivodentrodelafamilia)
Package:TQ144(encapsulado)
Speedgrade:7(indicalavelocidadmximadeldispositivo)
SynthesisTool:XST(VHDL/Verilog)
Simulator:ISimSEVHDL(herramientadesimulacin)
GeneratedSimulationLanguage:VHDL(lenguajeasociadoparalosficherosquecrealaherramienta)

TUTORIALDEXILINXISE

Para sintetizar el diseo utilizaremos la herramienta de sntesis de Xilinx (XST), el simulador que
utilizaremosserelISim(VHDL/verilog)yellenguajededescripcindesalidaponerVHDL.

Se pasa de pantalla eligiendo Next y por ltimo muestra un resumen de todos los datos del proyecto.
PulsandoelbotnFinalizarsecreaelproyectoysemuestraelnuevoproyecto.

TUTORIALDEXILINXISE

Enestaventanasepuedenobservarzonasdiferenciadas:lapartesuperiorendondeaparecenlasbarrasde
herramientas y los mens. En la parte inferior de la ventana se encuentra la consola que proporciona
informacindecadaunodelospasosquesevanrealizando.Enlapartecentralaladerecha,estelpanel
msgrande,queeslamesadetrabajo.Enlapartedelaizquierdaseencuentrandospaneles,unoencima
delotro.Elprimeroeselpaneldeldiseo.Enelotropanel,muestralasecuenciadepasosquesepueden
realizarsobreeldiseoseleccionadoenelpaneldeldiseo.

3Captura
Paradescribirelcircuito,ISEofrecedosposibilidades:
o Medianteunesquemtico(dibujodelcircuitomediantepuertaslgicas,elementosLSI,MSI,
bloques,).
o Mediantelenguajehardware(VHDLoVerilog)
Enestaprctica,seutilizarelesquemtico.Paraello,enelmen,ProjectNewSource

SeleccionarSchematiccomotipodefuente

EnFileNameledamoselnombrealdiseo,porejemplocircuito

SepresionaSiguiente

SepresionaFinalizarparaconcluir

Tras aceptar, aparece una nueva ventana en la que se permite introducir el esquemtico y los mens
izquierdoscambian.

TUTORIALDEXILINXISE

EnelsuperiorapareceunanuevapestaallamadaSymbolsquecontienelabibliotecadediseodeXilinx.
Contieneelconjuntodesmbolosclasificadosporcategoras(comparadores,contadores,flipflop,puertas
lgicas, ), un filtro para buscar el elemento y la orientacin del elemento para insertarlo en el
esquemtico.
Acontinuacin,seinsertanlosdiferenteselementosparacrearelesquemtico.Porejemplo,parainsertar
unapuertalgicaNAND2,seleccionarlacategoradeLogicyelsmbolonand2.
Alarrastrarelratnalpaneldetrabajodelesquemtico,aparecerelsmbolodelapuerta.Cadavezque
se pulsa el botn izquierdo del ratn, se insertar una nueva puerta nand2. Para terminar de insertar
elementos, pulsar la tecla Esc o seleccionar la flecha de seleccin de la barra de herramientas que se
encuentraenlapartesuperiordelapantalla.Trasinsertartodosloselementosdelesquemtico:

TUTORIALDEXILINXISE

Acontinuacinseconectarnloscomponentesdelcircuito.Estosepuedehacerdedosformas:porlneao
pornombre.
Conexinporlnea:seleccionarenelmenAddWire(Ctrl+W)opulsareneliconodeaadirlneas.
Paraconectarloselementos,bastaconacercarelbotnalpuntodecontacto,queautomticamenteser
rodeadoporuncuadrado,ypulsarconelbotnizquierdodelratn.Paracolocarelotroextremodelcable
sehacelomismoenelotropuntocontacto.Enelpaneldeopcionesexistelaposibilidaddeconfigurarla
formadetrazarelcable(automticoomanual).Serecomiendaprobaramboscasos.
Conexinpornombre:Cuandohaymuchaslneaseneldiseo,esconvenienteconectarpuntoslejanos
simplementeasignandoelmismonombrealaslneas.Paraelloprimerosedibujantramoscortosdelnea
en cada extremo, y a continuacin se selecciona en la barra de men Add Net Name (Ctrl+D) para
asignar el nombre a cada extremo. (Slo se pueden poner etiquetas sobre las lneas). El nombre de las
lneasaconectarseasignaenlafichadeopcionesqueseencuentraenlaizquierdadelaventana.NOTA:
Tenerencuentaquelaslneasconectadasaunpuertotienenobligatoriamenteelmismonombrequeel
puerto.

Para finalizar, insertar los puertos de entrada y salida del circuito. Para insertar un puerto es necesario
picarsobreunextremodecableounpindeuncomponentequeestesinconectar.Paraactivarlaopcin,
seleccionarenelmenAddI/OMarker(Ctrl+G).Lafichadeopcionespermiteespecificarsilospadsson
deentradaodesalida.Colocarlospads.Laherramientalesasignaunnombredeformaautomtica.Para
modificarelnombreyeltipodepuerto(entrada,salidaobidireccional)conelderechodelratnsobreel
puertoseleccionarRenamePort.

TUTORIALDEXILINXISE

Enlasiguientefigurasemuestraelestadofinaldelesquemtico.Unavezterminadoeldiseodelcircuito
puedehacerseunasimplecomprobacinsobreelmismo,paraasegurarnosdequetodaslasconexiones
estn hechas correctamente y queno quedan cables sueltos o puertas sin conectar. Para ello, desde el
menprincipal:
ToolsCheckSchematic.

Enlaventanainferiorseinformasihayalgnerrorenelcircuito.
Guardarycerrarelesquemtico.

4Creacindeestmulos
Una vez que se tiene el circuito listo, revisado y libre de errores, ser necesario comprobar su correcto
funcionamientoantediferentesvaloresdeentrada,yparaellohabrquerealizarlasimulacindelcircuito.
Para ello se debe de definir dichos valores en forma de estmulos, aplicarlos a las entradas, simular el
comportamientodelcircuitoyobservarlosvaloresdelassalidas.
Parahaceresto,sedeberealizarunbancodepruebas(otestbencheningls),elcualgenereestmulosen
lasentradasdelcircuito,yaspodercomprobarsisusalidaescorrecta.
LosbancosdepruebasdebenrealizarsemedianteVHDL.VHDLesunlenguajededescripcindecircuitos
muypotenteperosuaprendizajenoentraenlosobjetivosdelpresentecurso.Portanto,seusarunbanco
depruebasenVHDL,perosinentrarendetallesdelcdigo.
Para crear los estmulos, aadimos un nuevo archivo de estmulos. Seleccionar Project New Source.
EscogerVHDLTestBenchydarleunnombre.Serecomiendadarcomonombredeltestbenchelmismoque
eldelmduloquequeremosverificar,aadiendoelsufijo_tb.As,eltestbenchsellamarejemplo_tb.

TUTORIALDEXILINXISE

Asociarloalmduloaverificaresquema.AvanzarhastallegaraFinish.
El programa crea automticamente un testbench en VHDL que utilizaremos como punto de partida:
tendremosquecompletaresteficheroconlosestmulosquequeramoscrear.

DebidoalariquezadellenguajeVHDL,haymuchasformasdiferentesdedefinirentradasdelcircuitoenel
interiordeunmdulodebancodepruebasVHDL.Enestetutorial,presentamosunejemplobsicoquese
puedeutilizarcomounaplantilla.Iralfinaldelarchivo,alaseccinquediceUserDefinedSection.

10

TUTORIALDEXILINXISE

Introducirlosestmulosdelasiguienteforma:

Esimportantegenerarunconjuntodevectoresquepermitanestimularlamsposibleeldiseoparapoder
detectarloserroresquepuedatener,pormaldiseooporintroducirmalelesquemtico.
Salvar.

5Simulacindeldiseoconlosestmuloscreados
Una vez se han generado los estmulos, es el momento de simular el diseo para comprobar que se
comportacorrectamente.
XilinxISEdistinguedostiposdeficherosfuente:losdestinadosalaimplementacinfinaldeldiseoylos
destinados a simulacin. Los esquemticos se destinan fundamentalmente a implementacin, y los
testbench exclusivamente a simulacin. En la implementacin del diseo no aparece nada de testbench
puestoquenoformapartedeldiseo.
Pararealizarunasimulacindelcomportamientodelcircuito(behavioral),seutilizalaherramientaISim
Simulator.Pasosaseguir:
Enelmenizquierdo,pulsarsobrelapestaaDesign,yarribamarcarlaopcinSimulation
Seleccionarelficheroejemplo_tb.vhd
En la ventana de los procesos, desplegar el men de jerarqua con + y hacer doble click primero en
Behavioral Check Syntax para comprobar que la sintaxis es correcta y despus en Simulate Behavioral
Model.EnesemomentosecargaelprogramaISimSimulator

11

TUTORIALDEXILINXISE

Cuando se ejecuta el simulador se realiza la simulacin automticamente. Para ver adecuadamente los
valoressedeberajustarelzoomconeliconocorrespondiente(ZoomtoFullView).

Comprobarenlasimulacinqueelresultadoeselesperadoparalospatronesdeentradaintroducidos.

Si es necesario reiniciar la simulacin y volver a ejecutarla para obtener los valores de dicha seal. Para
ello,ejecutarlaopcindelmenSimulationRestartySimulationRunall.Otraopcinmsrpidaes
ejecutarloscomandosdesdelaconsolatecleandorestartyrunall/run800ns/run1us.

12

TUTORIALDEXILINXISE

Unavezsehaverificadoadecuadamentequenuestrodiseofuncionacorrectamenteseguirconelproceso
dediseoparaimplementarloeneldispositivoprogramable.

6Implementacin
6.1Asignacindepuertos
El siguiente paso en el flujo de diseo es la implementacin en un dispositivo fsico. En estas prcticas,
utilizaremos un dispositivo programable (CPLD). Mediante los procesos de sintetizar, transformar y
encajar, se podr programar la CPLD para que realice la funcionalidad descrita previamente (en este
ejemplo,enformadeesquemtico).
La CPLD dispone de una serie de pines conectados a diferentes elementos en la placa interruptores y
diodos LED). La asignacin de pines se realiza en el paso de User Constraints que se encuentra en la
ventana de los procesos. Es necesario tener seleccionado la vista de implementacin en la ventana del
diseo(enelmenizquierdo,pulsarsobrelapestaaDesign,yarribamarcarlaopcinImplementation)y
seleccionar el diseo superior, que en este ejemplo es esquema. A continuacin, en la ventana de
procesos, desplegar User Constraints (restricciones de usuario) y hacer doble click sobre
FloorplanIO_Pre_Synthesis.

13

TUTORIALDEXILINXISE

Alhaceresto,sedebercrearunarchivodetextoconextensinUCFdondeseguardalainformacinsobre
laasignacindepines.Elprogramapreguntarautomticamentesigenerardichoarchivo,aloquesedebe
responders.Unavezcreadoelarchivoseabrirunanuevaventana(PACE)dondeseasignarnlospines
deldispositivo.
ParaasociarunpuertoaunpinutilizarlacolumnaLOC,dondesedebeescribirelpinasociadoalpuerto
correspondiente.Enesteejemplosenecesitandosentradasyunasalida.Porejemplo,escribirP69enla
filadeFparaasignarelpin69alpuertoF.

Salvar
6.2Sntesis
Elsiguientepasoessintetizareldiseo.Paraello,primerosehadeseleccionarelesquemticoquevamos
asintetizarenlaventanadeldiseo.Acontinuacin,hacerdobleclicsobreSynthesizeXSTenlaventana
deoperaciones.
Para resintetizar un diseo se deber pulsar con el botn derecho sobre SynthesizeXST y seleccionar
RerunoRerunall.
DentrodelaoperacinSynthesizesepuedeverelresultadodelasntesis.
ViewRTLschematic:permiteverelesquemticodeldiseo.

14

TUTORIALDEXILINXISE

View Technology schematic: permite ver el esquemtico completo del diseo. Esto incluye otros
elementosexternosaldiseo,comolospuertos.
Paraverelinteriordelosmdulosbastaconhacerdobleclicsobreellos.
6.3Translate&Fit
Los dos siguientes pasos son la generacin de la mscara que ser diferente en funcin de cul sea el
dispositivo hardware donde lo implementemos. Es decir, en este ejemplo se debe trasladar los
componentesdeldiseoaloscomponentesdelaCPLD.
LaCPLDtieneunaestructurafija:eltipodeelementos(flipflops,planosANDyOR,buffertriestado,),el
nmero y su conexin. Esto supone transformar todos los elementos diferentes del circuito a los
elementosdelaCPLDyfijarlosenlosquetiene.
PortantoelISEdebehacerlosiguiente:
Convertirtodosloselementosdeldiseoenelementosdeldispositivoprogramable.
Asignaracadacomponenteunelementodeldispositivo
Porestarazn,aldesplegarlaetiquetaImplementDesignenlaventanadeoperacionessepuedenverdos
operaciones:TranslateyFit.
Tras finalizar, la herramienta proporciona un resumen de los recursos utilizados y las ecuaciones
implementadas.
6.4Generarelficherodeprogramacindeldispositivo
Este es el ltimo paso en el flujo de diseo. Hacer doble clic sobre Generate Programming File para
generarelarchivodeprogramacindelaCPLD.

15

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