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