Xilinx ISE - constraints - Universidad Complutense de Madrid

Anuncio
1
Xilinx ISE - constraints
Diseño Automático de Sistemas
José Manuel Mendías Cuadros
Dpto. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
2
controlando ISE
 En Xilinx ISE es posible dirigir el proceso de diseño para que la herramienta
obtenga un circuito con las características deseadas.
 Atributos –permiten configurar la instancia de un cierto componente primitivo
 mediante la construcción "generic map" de VHDL
© J.M. Mendías, 2011
 Ligaduras de síntesis – controlan el proceso VHDL→ netlist
 mediante la construcción "attribute" de VHDL
 a través del GUI de propiedades del proceso de síntesis (afectan al diseño completo)
 mediante fichero ".xcf" (debe ser incluido mediante el GUI)
 Ligaduras de implementación – controlan el proceso netlist → FPGA
 a través del Constraint Editor
 a través del GUI de propiedades del proceso de implementación (afectan al diseño
completo)
 mediante fichero ".ucf" (debe ser incluido en el proyecto)
 algunas pueden aparecer en código VHDL o en el fichero ".xcf"
 no todas las ligaduras aplican a todas las familias de FPGAs
diseño automático de sistemas
3
ligaduras de síntesis
 Relativas al proceso de síntesis – Synthesis options
© J.M. Mendías, 2011




Optimization Goal: Speed, Area
Optimization Effort: Normal, High
Use Synthesis Constraints File
Global Optimization Goal: AllClockNets, Inpad To Outpad, Offset In Before, Offset Out
After, Maximun Delay
 Relativas a la interpretación del código – HDL options
 FSM Encoding Algorithm: Auto, One-Hot, Compact, Sequential, Gray, Johnson, User,
Speed1, None.
 Específicas de la herramienta – Xilinx Specific Options
 Register Balancing: No, Yes, Fordward, Backguard
diseño automático de sistemas
4
ligaduras de implementación (i)
 Especificación del reloj:
 NET clk TMN_NET = grupoClk
 TIMESPEC TSclk = PERIOD grupoClk periodo unidad HIGH porcentaje%
INPUT_JITTER value unidad;
© J.M. Mendías, 2011
 Especificación de tiempos de llegada máximos a puertos de entrada:
 [NET puerto] OFFSET = IN retardo unidad BEFORE clk RISING;
 Especificación de tiempos de llegada máximos requeridos a puertos de salida:
 [NET puerto] OFFSET = OUT retardo unidad AFTER clk RISING;
 Especificación de tiempos de retardo máximos absolutos requeridos:
 TIMESPEC TSid = FROM grupo [THRU puntos] TO grupo retardo unidad;
ff1
A
B
LC
LC
ff2
tclk
tinput
retardo
diseño automático de sistemas
ff3
D
E
LC
LC
tclk
retardo
toutput
ff4
5
ligaduras de implementación (ii)
 Identificación de caminos falsos:
 TIMESPEC TSid=FROM grupo [THRU puntos] TO grupoDest TIG;
 Se denomina camino falso a todo camino de un circuito que sea utilizado para propagar
señales inútiles. Un camino falso no tiene por qué ser optimizado bajo las ligaduras generales
impuestas a todo el diseño.
Cualquier diseño que posea porciones de lógica compartida por varios cálculos es propenso a poseer
caminos falsos.
También son caminos falsos los lazos existentes en puertos bidireccionales, los caminos que atraviesan
lógica de reset, etc.

© J.M. Mendías, 2011

a
b
c
S1
x a+b
+
S2
y a+c
x
y
 Desde el punto de vista lógico en esta ruta de
datos existen 6 caminos registro a registro:
 a  x, a  y, b  x, b  y, c  x, c  y
 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:
 a  x, a  y, b  x, c  y
 Luego los restantes caminos, son caminos
falsos que no requieren ser optimizados:
 b  y, c  x
diseño automático de sistemas
6
ligaduras de implementación (iii)
 Identificación de caminos multiciclo:
 TIMESPEC TSid=FROM grupo TO grupo TSclk * factor;
© J.M. Mendías, 2011
 En el modelo monociclo el retardo de todos los caminos del circuito debe ser inferior al tiempo
de ciclo. Para solventar el problema de grupos de lógica con retardo elevado cabrían 2
alternativas:


Aumentar el esfuerzo del diseño (con lo que puede no conseguirse una solución aceptable).
Definir el camino que lo atraviesa como multiciclo.
 Un camino multiciclo, es un camino combinacional que tarda en propagar valores más de un
ciclo (lo que obliga a que se diseñe para que el registro ubicado al final no cargue nuevos
valores en todos los ciclos).
 Identificación de relojes derivados:
 TIMESPEC TSid = PERIOD grupoClk2 TSclk [*|/] factor PHASE [+|-]
desfase unidad;
 Son relojes derivados los que se obtienen dividiendo/multiplicando/desfasando un reloj de una
frecuencia base.
diseño automático de sistemas
7
ligaduras de implementación (iv)
© J.M. Mendías, 2011
 Especificación de condiciones ambientales:
 VOLTAGE = valor V;
 TEMPERATURE = valor C;
 En la mayor parte de las tecnologías, variaciones en la temperatura de funcionamiento, voltaje
de alimentación o proceso de fabricación pueden alterar notablemente el rendimiento (retardo)
del circuito.
 Estos factores son tenidos en cuenta las herramientas y se denominan condiciones de
funcionamiento. Una vez especificadas se utilizan para determinar una colección de factores
de escala que se aplican en los cálculos de cualquier retardo.
 Agrupaciones predefinidas:
 FFS, LATCHES, RAMS, PADS, BRAMS_PORTA, BRAMS_PORTB...
 Agrupación de elementos por nombre de interconexión:
 NET interconexión TNM_NET = grupo;
 Agrupación de elementos por nombre de instancia:
 INST instancia TNM = grupo;
 Téngase en cuenta que a la hora de referirse a elementos concretos pueden usarse los
caracteres comodín (*, ?) y que los niveles de jerarquía se separan con /
diseño automático de sistemas
8
ejemplos (i)
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 contectados a dicha señal).
NET clk TNM_NET = clk;
TIMESPEC TSclk = PERIOD clk 20 ns HIGH 50%;
Indicar que la señal x tiene un retraso de 5 ns respecto al flanco de subida del reloj de 50 MHz:
© J.M. Mendías, 2011
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:
NET z OFFSET = OUT 15 ns AFTER clk RISING;
Indicar que los caminos que unen el regA y regB son falsos
INST regA* TNM = regA;
INST regB* TNM = regB;
TIMESPEC TSfalso = FROM regA TO regB TIG;
Indicar condiciones ambientales
VOLTAGE = 3.3 V;
TEMPERATURE = 20 C;
diseño automático de sistemas
9
ejemplos (ii)
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)
© J.M. Mendías, 2011
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;
Indicar que la señal clk1 (12.5 MHz) se obtiene por división de la frecuencia de clk0 (50 MHz):
NET clk0
NET clk1
TIMESPEC
TIMESPEC
TNM_NET = clk0
TNM_NET = clk1
TSclk0 = PERIOD clk0 20 ns HIGH 50%;
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
NET clk1
TIMESPEC
TIMESPEC
TNM_NET = clk0
TNM_NET = clk1
TSclk0 = PERIOD clk0 20 ns HIGH 50%;
TSclk1 = PERIOD clk1 TSclk0 PHASE + 10 ns;
diseño automático de sistemas
Descargar