La siguiente fase del proceso de diseño es la implementación de éste empleando para ello las herramientas de Xilinx. Estas herramientas reciben la lista de conexiones en formato EDIF generada durante la síntesis.
Para compilar el diseño sintetizado ejecute la herramienta Design Manager
seleccionando Inicio º Programas º XilinxISE41 ºAccesories º .
A continuación se debe crear un nuevo proyecto seleccionando la opción File º New Project de la barra de menús ( ). En el campo imput design se debe seleccionar el archivo EDIF creado por la herramienta de síntesis, tal y como se muestra en la figura 1.42.
Figura 42: Creación de un proyecto con el Disign Manager.
Al pulsar la pestaña OK se va a crear un subdirectorio xproj en el que se van a almacenar los archivos generados durante la implementación y aparece la ventana de la figura 1.43., que entre otras cosas permite seleccionar el dispositiva sobre el que se va a realizar la implementación.
Figura 43: Selección del dispositivo.
En un proyecto pueden existir varias versiones y dentro de cada una de ellas, varias revisiones. Una versión corresponde a la compilación del diseño en el que se han producido variaciones en el archivo fuente o se ha seleccionado una nueva familia de dispositivo. Por su parte el término revisión se corresponde con una compilación del diseño en la que se han variado algunos parámetros u opciones de la misma, pero no el archivo fuente.
Antes de proceder a la implementación hay que seleccionar las opciones de la misma, para ello se seleccionando Design º Options de la barra de menús. Con el icono , también se puede acceder a las opciones de implementación, Estas opciones se dividen en tres campos (figura 1.44 ): Implementation que permite imponer restricciones para la implementación, Simulation que permite seleccionar el formato del archivo de salida para realizar la simulación temporal o post-implementación y Configuration que permite seleccionar opciones concernientes a la fase de configuración del dispositivo. Para el
diseño que nos trata sólo se va a retocar el campo de Simulation para indicar que se genere un archivo un archivo VHDL para ser simulado con ModelSim.
Figura 44: Opciones de implementación.
Con ésto, a parte del fichero de configuración (crono.bit), se generan los ficheros time_sim.vhd y time_sim.sdf empleados para realizar unas simulación VHDL post-implementación (también denominada simulación a nivel de puertas). El fichero time_sim.vhd contiene una descripción estructural de la entidad de jerarquía superior (crono). En este fichero, las herramientas de Xilinx asignan siempre el nombre STRUCTURE a la arquitectura de la entidad de jerarquía superior. Por su parte, el archivo time_sim.sdf contiene la información temporal con los retardos que sufren las señales, presentes en el archivo time_sim.vhd, dentro del dispositivo.
Ha de tenerse en cuenta que para que la compilación del diseño se realice correctamente el fichero de lista de conexiones asociado al módulo COREGEN (prescaler.edn) debe encontrarse en el directorio donde ha sido almacenada la lista de conexiones generada por el sintetizador.
Antes de proceder con la implementación se puede generar un archivo de restricciones de usuario pueden emplearse para fijar restricciones durante el proceso de implementación del diseño. Con estas restricciones se puede asignar las señales correspondientes a los puertos de la entidad de mayor jerarquía a sus terminales correspondientes, así como otras configuraciones de entrada/salida (slew-rate, estándar lógico, etc) (restricciones topológicas) o bien imponer retardos máximos en los caminos de señal. El fichero de restricciones de usuario (User Constrains File- ucf) se crea con Tools º Constrains Editor , o con , accediendo a la ventana de la figura 1.45.
NET "CLK" LOC = "p55";
NET "DISPLAYDECENAS(0)" LOC = "p4"; NET "DISPLAYDECENAS(1)" LOC = "p5"; NET "DISPLAYDECENAS(2)" LOC = "p6"; NET "DISPLAYDECENAS(3)" LOC = "p7"; NET "DISPLAYDECENAS(4)" LOC = "p8"; NET "DISPLAYDECENAS(5)" LOC = "p10"; NET "DISPLAYDECENAS(6)" LOC = "p11"; NET "DISPLAYUNIDADES(0)" LOC = "p12"; NET "DISPLAYUNIDADES(1)" LOC = "p13"; NET "DISPLAYUNIDADES(2)" LOC = "p14"; NET "DISPLAYUNIDADES(3)" LOC = "p15"; NET "DISPLAYUNIDADES(4)" LOC = "p18"; NET "DISPLAYUNIDADES(5)" LOC = "p20"; NET "DISPLAYUNIDADES(6)" LOC = "p21"; NET "LAPSO" LOC = "p22";
NET "RST" LOC = "p23";
Figura 46: Fichero de restricciones crono.ucf.
Figura 45: Creación de un archivo de restricciones.
Con los elementos (crear nuevo archivo ucf) , (abrir archivo ucf) y (guardar archivo ucf)se puede seleccionar el contenido del archivo de restricciones. En la figura 1.46. se muestra el contenido del archivo ucf utilizado en el diseño del tutorial.
Una vez creado o seleccionado el archivo de restricciones, se procede a la implementación del diseño, para ello se ejecuta Tools º Flor Engine, o se
actúa sobre el botón
de la barra de herramientas, creandose de forma automática una nueva
versión o revisión según sea el caso. Cuando se ejecuta dicho comando aparece el cuadro de
diálogo de la
figura 1.47.Figura 47: Implementación de un diseño.
Los Indicadores de Proceso que posee la ventana de la figura anterior muestran en qué etapa se encuentra el flujo del diseño en ese preciso momento. Las flechas entre cada paso se vuelven de color negro después que el paso previo ha terminado. En la barra de proceso que muestra el estado en que se encuentra cada proceso, ya sea en ejecución (Running), completado (Completed), abortado (Aborted) o con algún error en la ejecución (Failed). Para el caso de trabajar con FPGA’s, los procesos son:
- Translate: Realizar la traducción del diseño. - Map: Realizar la partición del diseño.
- Place&Rute: Realizar el emplazamiento y ruteado del diseño.
- Timing(Sim). Genera un archivo de retardos paar realizar una simulación temporal
- Configure: Genera el archivo de configuración.
El proceso de implementación de un diseño conlleva la ejecución secuencial de una serie de
herramientas, cada una de las cuales genera un archivo ASCII de informes (reporters) en el que
se reflejan todas las acciones realizadas por el mismo, así como los errores o avisos (warnings)
que se producen. En la
figura 1.48.se muestra el grupo de archivos de informes generados
durante la implementación de un diseño para una FPGA.
Para acceder a la los informes ejecuta Utilies º Report Browser, o seactúa sobre el botón
de la barra de
herramientas,
Figura 48: Archivos de informes de la implementación