El Entorno de Diseño

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Tema 3:

El entorno de diseño
Xilinx ISE Design Suite
Diseño automático de sistemas

José Manuel Mendías Cuadros


Dpto. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
2015
J.M. Mendías

 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

o Core Generator: Generador de componentes virtuales (Intellectual Property cores).


o Schematic Viewer: Visualizador del esquemático de un diseño.
o Timing Analizer: Analizador estático de tiempos.
o FPGA Editor: Editor físico para el emplazamiento y rutado manual de un diseño.
o XPower Analyzer: Analizador estático de consumo.
o iMPACT: Permite el volcado y readback de bitstreams.
o ChipScope: Permite el análisis lógico y en tiempo real de un diseño.
o Constraints Editor: Interfaz gráfico para la edición de ligaduras de diseño e 
implementación.
tema 3:

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

informes Design  netlist


Synthesis

informes Design  retardos Timing


Implementation Simulation

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

Design  Funtional validación


funcional de la
Entry Simulation
El entorno de desarrollo  Xilinx ISE Design Suite

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

1. Crear proyecto HDL: File > New Project


o Family: Spartan3; Device: XC3S1000; Package: FT256;  Speed: 4; Language: VHDL
2. Añadir ficheros VHDL al proyecto: Project > Add Source
El entorno de desarrollo  Xilinx ISE Design Suite

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):

4. Añadir testbench VHDL al proyecto: Project > Add Source


o El fichero se añade a la vista Implementation
5. Simular: Processes – Simulate Behavioral Model
El entorno de desarrollo  Xilinx ISE Design Suite

o Seleccionando previamente del desplegable Behavioral

 Para simulación funcional o de tiempos (tras diseñar o implementar):

5. Añadir testbench VHDL al proyecto: Project > Add Source


o El fichero se añade a la vista Implementation
6. Generar modelo VHDL deseado: Processes – Implement Design – XXX
– Generate XXX Simulation Model
tema 3:

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

[lab1] [lab2] ... [common]

 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

 Relativas al proceso de síntesis – Synthesis options


o Objetivo de optimización (área o velocidad), esfuerzo en optimización...
El entorno de desarrollo  Xilinx ISE Design Suite
tema 3:

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

 Específicas de la herramienta – Xilinx Specific Options


o Balanceo de registros, adición automática de buffers de E/S...
El entorno de desarrollo  Xilinx ISE Design Suite
tema 3:

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;

ff1 A B ff2 ff3 D E ff4


LC LC LC LC

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).

NET clk TNM_NET = clk;


TIMESPEC TSclk = PERIOD clk 20 ns HIGH 50%;
El entorno de desarrollo  Xilinx ISE Design Suite

 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):

NET x OFFSET = IN 15 ns BEFORE clk RISING;

 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:

NET z OFFSET = OUT 15 ns AFTER clk RISING;

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):

NET clk0 TNM_NET = clk0


El entorno de desarrollo  Xilinx ISE Design Suite

NET clk1 TNM_NET = clk1


TIMESPEC TSclk0 = PERIOD clk0 20 ns HIGH 50%;
TIMESPEC TSclk1 = PERIOD clk1 TSclk0 * 4;

 Indicar que la señal clk1 tiene un desfase de 180º  respecto a la señal clk0 (50 
MHz):

NET clk0 TNM_NET = clk0


NET clk1 TNM_NET = clk1
TIMESPEC TSclk0 = PERIOD clk0 20 ns HIGH 50%;
tema 3:

TIMESPEC TSclk1 = PERIOD clk1 TSclk0 PHASE + 10 ns;

PSyD
27
ejemplos (iii)
2015
J.M. Mendías

 Indicar que los caminos que unen el regA y regB son falsos

INST regA* TNM = regA;


INST regB* TNM = regB;
El entorno de desarrollo  Xilinx ISE Design Suite

TIMESPEC TSfalso = FROM regA TO regB TIG;

 Indicar que regB solo carga valores de regA en 1 de cada 2 ciclos, es decir, que 


el camino que une regA y regB es multiciclo (de 2 ciclos)

NET clk TNM_NET = clk;


TIMESPEC TSclk = PERIOD clk 20 ns HIGH 50%;
INST regA* TNM = regA;
INST regB* TNM = regB;
TIMESPEC TSmulticiclo = FROM regA TO regB TSclk * 2;
tema 3:

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. 

NET x IOSTANDARD = LVCMOS25;

 Indicar que el puerto clk se ubique en el pin P8 de la FPGA.

NET clk LOC = P8;


tema 3:

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

También podría gustarte