El Entorno de Diseño
El Entorno de Diseño
El Entorno de Diseño
El entorno de diseño
Xilinx ISE Design Suite
Diseño automático de sistemas
Xilinx ISE Design Suite
Flujo de diseño y validación.
Volcado de bitstreams.
El entorno de desarrollo Xilinx ISE Design Suite
Síntesis y prototipado.
Validación por simulación.
Organización de proyectos.
Controlando XIlinx ISE.
Ligaduras de diseño.
tema 3:
Ligaduras de implementación.
PSyD
2
2015
J.M. Mendías
El entorno de desarrollo Xilinx ISE Design Suite
Conjunto de herramientas para la síntesis lógica y física de sistemas
digitales sobre FPGAS/CPLDs integradas en un interfaz gráfico común:
o Gestión integral del proyecto.
Edición del código fuente.
tema 3:
o
o Síntesis.
PSyD o Validación por simulación.
o Llamada a otras herramientas auxiliares
3
herramientas EDA
2015
J.M. Mendías
Esta formado por las herramientas:
o Project Navigator: Interfaz gráfico común de las herramientas EDA de Xilinx.
• Incluye la gestión de proyectos y los algoritmos de síntesis e implementación.
o Plan Ahead: Interfaz gráfico alternativo al Project Navigator.
o iSIM Simulator: Simulador HDL para la simulación funcional y temporal de diseños.
El entorno de desarrollo Xilinx ISE Design Suite
PSyD Existe una versión gratuita descargable
4
o Xilinx ISE Webpack: http://www.xilinx.com/support/download
flujo de diseño y validación (i)
2015
J.M. Mendías
ligaduras
Behavioral testbench
IP cores código VHDL
Simulation
Design Funtional
Entry Simulation
El entorno de desarrollo Xilinx ISE Design Suite
Xilinx ISE
bitstream
tema 3:
Placa de prototipado
XESS XESS XESS
PSyD GXSLOAD XUSB XSA-3S / XST
5
flujo de diseño y validación (ii)
2015
J.M. Mendías
Behavioral validación
ligaduras IP cores código VHDL funcional del
Simulation modelo
especificación
análisis implementación
Xilinx ISE
elaboración
optimización Design
combinacional netlist
optimización Synthesis
secuencial
proyección
tecnológica
Design Timing validación
emplazamiento retardos temporal de la
y rutado Implementation Simulation implementación
generación
del bitstream
bitstream
tema 3:
Placa de prototipado
XESS XESS XESS validación del
PSyD volcado
GXSLOAD XUSB XSA-3S / XST prototipo
6
flujo de diseño y validación (iii)
2015
J.M. Mendías
Las ligaduras (constraints) permiten:
o Controlar el ciclo de diseño e implementación.
o Fijar los niveles mínimos de calidad aceptables de una implementación.
Las ligaduras pueden clasificarse según definan:
El entorno de desarrollo Xilinx ISE Design Suite
o Técnicas de diseño a aplicar (locales a módulo):
• Diseño jerárquico, codificación de FSM, estilo de RAM (block o distribuida) ...
o Estrategias de optimización (aplicables a todo el diseño):
• Objetivo de la optimización (área o velocidad), esfuerzo (normal o alto) ...
o Ligaduras físicas:
• Tiempo de ciclo, retardos, localización (celdas y pines) ...
Las ligaduras pueden establecerse a través de:
o GUI: método simple.
tema 3:
o Atributos de HDL: método asociable a HDL.
PSyD o Fichero de ligaduras: método más completo.
7
flujo de diseño y validación (iv)
2015
J.M. Mendías
Los informes (reports) son ficheros generados por las herramientas
que contienen información sobre los procesos efectuados:
o Avisos y errores encontrados durante el proceso de diseño e implementación.
o Herramientas usadas y opciones utilizadas.
El entorno de desarrollo Xilinx ISE Design Suite
o Decisiones de diseño tomadas (inferencias).
o Estadísticas de caracterización de la implementación.
La visualización de informes puede ser:
o Directa (fichero texto).
o A través de GUI.
tema 3:
PSyD
8
volátil sobre FPGA
2015
J.M. Mendías
Los bitstreams (.BIT) contienen los valores a almacenar en las
memorias de configuración de la FPGA.
o De manera que la FPGA tenga el comportamiento especificado.
Se vuelcan en la placa XSA‐3S a través de un puerto USB.
El entorno de desarrollo Xilinx ISE Design Suite
o Usando el adaptador a puerto paralelo XESS XSUSB y la herramienta XESS GXSLOAD.
o Esta configuración puede ir directamente a la FPGA o almacenarse en la Flash ROM.
Diseños volcados directamente sobre FPGA: es el método habitual
usado para el desarrollo y depuración de un diseño.
o La configuración de la FPGA reside el disco del ordenador:
• Tras cada inicialización (pulsación de PROG) o encendido de la FPGA, la configuración debe
volcarse de nuevo.
tema 3:
• El CPLD toma la configuración recibida por el cable USB y la envía a la FPGA.
o Los bitstream deben tener el formato .BIT generado por Xilinx ISE.
PSyD
9
permanente sobre Flash ROM
2015
J.M. Mendías
Diseños volcados sobre Flash ROM: es el método usado para la puesta
en producción de un diseño.
o La configuración de la FPGA reside en la Flash ROM.
• Tras cada inicialización (pulsación de PROG) o encendido de la placa, no es necesario
volcar de nuevo la configuración.
El entorno de desarrollo Xilinx ISE Design Suite
• El CPLD lee la configuración de la Flash ROM y la envía a la FPGA.
o En la Flash ROM dispone de 4 cuadrantes en cada uno de los cuales cabe una
configuración (diseño) de la FPGA distinta
• Cada cuadrante es seleccionable con los interruptores SW1 y SW2 de la placa XSA‐3S.
o Antes de que un bitstream pueda cargarse en la Flash ROM el fichero en formato
BIT debe convertirse en el formato .EXO o .MSG usando los comandos:
tema 3:
PSyD
10
XESS XStools
2015
J.M. Mendías
GXSLOAD: utilidad para el volcado de bitstreams y datos específica
para la placa de prototipado XESS XSA‐3S.
o Pueden volcarse configuraciones en la FPGA (.BIT) y en el CPLD (.SDF).
o Pueden almacenarse configuraciones de la FPGA (.EXO o .MCS) en la Flash.
o Pueden bajarse o subirse datos de la SDRAM (.EXO, .MCS, .HEX o .XES).
El entorno de desarrollo Xilinx ISE Design Suite
o Los bitstreams / datos se arrastran y sueltan sobre la ventana correspondiente.
tema 3:
PSyD
11
flujo de tareas
2015
J.M. Mendías
o El fichero se añade tanto a la vista Implementation como a la Simulation
o Alternativamente pueden crearse usando un Wizard: Project > New Source
o Usar plantillas cuando haya dudas: Edit – Language Templates
o Chequear sintáxis y salvar: Processes – Synthesize - Check Syntax
3. Añadir un fichero UCF al proyecto: Project > Add Source
o El fichero se añade a la vista Implementation
4. Implementar: Processes – Generate Programming File
5. Volcar fichero BIT (fichero de bitstream) resultante usando GXSLOAD
tema 3:
o Seleccionar placa y arrastrar fichero sobre la ventana FPGA/CPLD
PSyD
12
flujo de tareas
2015
J.M. Mendías
Para simulación de la especificación (no requiere implementar):
o Seleccionando previamente del desplegable Behavioral
Para simulación funcional o de tiempos (tras diseñar o implementar):
o Pueden ser tras traslación, proyección o emplazamiento
7. Simular: Processes – Simulate XXX Simulation Model
PSyD
o Seleccionando previamente del desplegable correspondiente
13
2015
J.M. Mendías
La estructura de directorios de nuestro entorno de trabajo será:
[DAS]
El entorno de desarrollo Xilinx ISE Design Suite
Para cada laboratorio crearemos un proyecto:
o Directorio raíz: contiene los ficheros fuente exclusivos de este diseño, el fichero de
ligaduras y el bitstream generado.
o Xilinx ISE creará otros ficheros y directorios auxiliares desde dicho directorio.
Progresivamente iremos desarrollando una biblioteca de utilidades y
componentes reutilizables denominada common:
tema 3:
o Directorio raíz: contiene los ficheros fuente correspondientes.
PSyD
14
2015
J.M. Mendías
Xilinx ISE es una herramienta automática de especificación y síntesis:
o El diseñador especifica mediante VHDL el comportamiento funcional deseado.
o La implementación resultante la decide un algoritmo cuyo funcionamiento puede ser
condicionado mediante ligaduras
El entorno de desarrollo Xilinx ISE Design Suite
Atributos: configuran la instancia de un cierto componente primitivo
o Mediante la construcción "generic map" de VHDL
Ligaduras de síntesis: controlan el proceso VHDL→ netlist
o Mediante la construcción "attribute" de VHDL
o A través del GUI de propiedades de síntesis (afectan al diseño completo)
o Mediante fichero ".XCF" (debe ser incluido mediante el GUI en el proyecto)
Ligaduras de implementación: controlan el proceso netlist → FPGA
o A través del Constraint Editor
tema 3:
o A través del GUI de propiedades de implementación (afectan al diseño completo)
o Mediante fichero ".UCF" (debe ser incluido en el proyecto)
PSyD o Algunas pueden aparecer en código VHDL o en el fichero ".XCF"
15 o No todas las ligaduras aplican a todas las familias de FPGAs
2015
J.M. Mendías
PSyD
16
2015
J.M. Mendías
Relativas a la interpretación del código – HDL options
o Algoritmo de codificación de estados, inferencia de módulos...
El entorno de desarrollo Xilinx ISE Design Suite
tema 3:
PSyD
17
2015
J.M. Mendías
PSyD
18
especificación (i)
2015
J.M. Mendías
Especificación de las características de la señal de reloj:
o NET clk TMN_NET = grupoClk
o TIMESPEC TSclk = PERIOD grupoClk periodo unidad HIGH
factor_de_trabajo% INPUT_JITTER jitter unidad;
jitter
El entorno de desarrollo Xilinx ISE Design Suite
periodo periodo
CLK
factor
de trabajo
Jitter: Desviación aleatoria máxima entre la duración de un ciclo de reloj
tema 3:
cualquiera y la duración media del ciclo de reloj.
Factor de trabajo: Fracción del tiempo de ciclo en el que la señal de reloj está en
PSyD alta.
19
especificación (ii)
2015
J.M. Mendías
Se denominan relojes derivados los que se obtienen dividiendo,
multiplicando o desfasando un reloj maestro.
Especificación de reloj derivado:
o NET clk2 TMN_NET = grupoClk2
o TIMESPEC TSid = PERIOD grupoClk2 TSclk [*|/] factor PHASE [+|-]
El entorno de desarrollo Xilinx ISE Design Suite
desfase unidad;
periodo
CLK
CLK2
tema 3:
periodo / 2
PSyD
20 desfase
especificación (iii)
2015
J.M. Mendías
Especificación de retardo de llegada máximo a entradas:
o [NET puerto] OFFSET = IN retardo unidad BEFORE clk RISING;
Especificación de retardo de llegada máximo tolerable a salidas:
o [NET puerto] OFFSET = OUT retardo unidad AFTER clk RISING;
El entorno de desarrollo Xilinx ISE Design Suite
Especificación de retardo máximo absoluto tolerable:
o TIMESPEC TSid = FROM grupo [THRU puntos] TO grupo retardo unidad;
tclk tclk
tema 3:
PSyD
tinput retardo retardo toutput
21
especificación (iv)
2015
J.M. Mendías
Se denomina camino falso a todo camino de un circuito que sea
utilizado para propagar señales inútiles.
o No tiene que ser optimizado bajo los criterios impuestos al resto del diseño.
o Cualquier diseño con porciones de lógica compartida puede tener caminos falsos.
o También son caminos falsos los lazos existentes en puertos bidireccionales, los
El entorno de desarrollo Xilinx ISE Design Suite
caminos que atraviesan lógica de reset, etc.
a b c
Desde el punto de vista lógico en esta ruta de
datos existen 6 caminos registro a registro:
S1 o a x, a y, b x, b y, c x, c y
x a+b Sin embargo, si sobre ella sólo se realizan las
transferencias entre registros indicadas por la
máquina de estado, sólo algunos caminos son
+ utilizados para realizar transferencias útiles:
S2 o a x, a y, b x, c y
tema 3:
y a+c Luego los restantes caminos, son caminos
x y falsos que no requieren ser optimizados:
PSyD
o b y, c x
22
especificación (v)
2015
J.M. Mendías
Se denomina camino multiciclo a todo camino combinacional que
tarda en propagar valores más de un ciclo
o Es una técnica usada para solventar el problema de los grupos de lógica de retardo
elevado sin reducir la frecuencia de reloj.
El entorno de desarrollo Xilinx ISE Design Suite
o Requiere que se diseñe para que el registro ubicado al final del camino no cargue
nuevos valores en todos los ciclos.
Identificación de caminos falsos:
o TIMESPEC TSid=FROM grupo [THRU puntos] TO grupoDest TIG;
Identificación de caminos multiciclo:
o TIMESPEC TSid=FROM grupo TO grupo TSclk * factor;
tema 3:
PSyD
23
especificación (vi)
2015
J.M. Mendías
Las variaciones en la temperatura ambiente o voltaje de alimentación
pueden alterar el retardo de un circuito.
o Las herramientas usan en los cálculos de cualquier retardo factores de escala
dependientes de las condiciones de funcionamiento previstas.
Especificación de condiciones de funcionamiento:
El entorno de desarrollo Xilinx ISE Design Suite
o VOLTAGE = valor V;
o TEMPERATURE = valor C;
Especificación de localización física de una instancia (en especial pin)
o NET instancia LOC=localizacion;
Especificación de interfaz eléctrico de un pin
o NET instancia IOSTANDARD=interfaz;
tema 3:
o Donde el interfaz depende del dispositivo: LVTTL, LVCMOS33, LVCMOS25...
PSyD
24
nombrado de elementos
2015
J.M. Mendías
Muchas ligaduras requieren hacer referencia a grupos de lógica,
existen distintas maneras de nombrarlos.
o Los nombres de las instancias se heredan de los identificadores usados en VHDL
o Para referirse a elementos concretos pueden usarse caracteres comodín (*, ?)
o Los niveles de jerarquía se separan con /
El entorno de desarrollo Xilinx ISE Design Suite
Agrupaciones predefinidas:
o FFS, LATCHES, RAMS, PADS, BRAMS_PORTA, BRAMS_PORTB...
Agrupación de elementos por nombre de interconexión:
o NET interconexión TNM_NET = grupo;
Agrupación de elementos por nombre de instancia:
o INST instancia TNM = grupo;
tema 3:
PSyD
25
ejemplos (i)
2015
J.M. Mendías
Indicar que la señal clk es un reloj a 50 MHz con factor de trabajo del 50% (y
que esta ligadura afecta a todos los elementos conectados a dicha señal).
Indicar que la señal x tiene un retraso de 5 ns respecto al flanco de subida del
reloj de 50 MHz (20 ns de periodo):
Indicar que la señal z requiere un margen de 5 ns respecto al flanco de subida
del reloj de 50 MHz (20 ns de periodo):
tema 3:
PSyD
26
ejemplos (ii)
2015
J.M. Mendías
Indicar que la señal clk1 (12.5 MHz) se obtiene por división de la frecuencia de
clk0 (50 MHz):
Indicar que la señal clk1 tiene un desfase de 180º respecto a la señal clk0 (50
MHz):
PSyD
27
ejemplos (iii)
2015
J.M. Mendías
PSyD
28
ejemplos (iv)
2015
J.M. Mendías
Indicar condiciones ambientales.
VOLTAGE = 3.3 V;
TEMPERATURE = 20 C;
El entorno de desarrollo Xilinx ISE Design Suite
Indicar el interfaz eléctrico que se desea para el puerto x.
Indicar que el puerto clk se ubique en el pin P8 de la FPGA.
PSyD
29
2015
J.M. Mendías
Licencia CC (Creative Commons)
o Ofrece algunos derechos a terceras personas bajo ciertas
condiciones. Este documento tiene establecidas las siguientes:
El entorno de desarrollo Xilinx ISE Design Suite
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.
tema 3:
Más información: https://creativecommons.org/licenses/by‐nc‐sa/4.0/
PSyD
30