SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL. 1 Síntesis • Proceso automático, realizado por una herramienta software, para la generación de una representación con puertas lógicas de una descripción VHDL. • Las herramientas comerciales de síntesis actuales trabajan a nivel RTL. Pueden proporcionar resultados distintos para la misma descripción, además un circuito se puede representar de diversas maneras con VHDL. Pueden no producir resultados óptimos en área o tiempos. • Paquete IEEE Std 1076.6-1999, define el subconjunto del VHDL que se puede sintetizar. • Paquete IEEE Std. 1076.3-1997, clarifica la interpretación física de diversos tipos de datos e introduce varios paquetes de aplicación en síntesis. 2 Síntesis (restricciones semánticas y sintácticas) • Todas las herramientas de síntesis actuales imponen restricciones . • En principio cualquier construcción VHDL es sintetizable desde el momento en que es simulable. • El problema no es tanto sintetizar una determinada construcción sino las prestaciones (coste, área, consumo, velocidad, etc,..) que tendría. • Las restricciones sintácticas y semánticas provienen de la necesidad de asegurar una eficacia mínima en el proceso de síntesis. • Las herramientas de síntesis solo son capaces de sintetizar un subconjunto del VHDL para el que son capaces de identificar hardware, y en consecuencia obtener implementaciones eficientes. 3 Síntesis (restricciones semánticas y sintácticas) Por ejemplo de código correspondiente a una puerta and (¡¡dispositivo sencillo!!) no sintetizable fácilmente: process begin if x1=‘0’ then z<=‘0’; wait on x1; elsif x2=‘0’ then z<=‘0’; wait on x2; else z<=‘1’; wait until x1 or x2; end if; end process; 4 Síntesis (Modelado de la información) Se soportan solo tipos escalares y compuestos. De los tipos escalares solo se admiten los enteros y enumerativos. Los enteros se sintetizan como vectores de las dimensiones correspondientes.: signal valor is integer range -10 to 82; se implementaría con un vector de 7 bits. No se admiten o se ignoran Los físicos y flotantes Los tipos enumerativos de significado hardware (std_logic y std_ulogic) unifican su interpretación en el paquete de síntesis IEEE Std.1076.3-1997. En general las herramientas de síntesis solo soportan matrices unidimensionales de bits y en algunos casos de enteros. El tipo registro (register) es raramente soportado. 5 Síntesis (Funciones y operadores) • Se suelen soportan operadores VHDL, aunque con restricciones con respecto a la multiplicación, división, resto, módulo y potencia. • Se permiten funciones de usuario si no sobrecargan funciones predefinidas. • Se incluyen funciones aritméticas sobre vectores de tipo bit, std_logic y std_ulogic (IEEE Std.1076.31997); 6 Síntesis (IEEE Std.1076.3-1997) • • • • • • Interpretación de los valores lógicos ‘0’,’1’, false y true: ‘1’, True, ‘1’ (std_ulogic) equivalentes a la tensión de alimetación. ‘0’, False, ‘0’ (std_ulogic) equivalentes a la masa , referencia o tierra. Interpretación de los valores lógicos ‘L’, ‘H’: No soportados o tratados como el ‘0’ y el ‘1’ respectivamente. Interpretación de los valores metalógicos ‘U’,’W’,’X’ y ‘-’: Solo se considera (en determinadas condiciones) el indiferente ‘-’. Interpretación del valor de alta impedancia: Implica la inferencia de un buffer triestado controlado por la condición de alta impedancia. Detección de la transición activa de la señal de reloj: Funciones Rising_edge y Falling_Edge. Paquetes aritméticos Numeric_bit: Operaciones sobre vectores de tipo bit Numeric_Std: Operaciones sobre vectores del tipo Std_Ulogic. Función Std_Match compara cadenas de valores metalógicos . 7 Síntesis (Estructura FPGA) 8 Síntesis (Estructura FPGA) 9 Síntesis (Estructura FPGA) 10 Síntesis (Estructura FPGA) 11 Síntesis (Proceso) 12 Síntesis (Placa evaluación XSA50) 13 Síntesis (Placa evaluación XSA50) 14 Síntesis (Placa evaluación XSA50) 15 Síntesis (Placa evaluación XSA50) 16