SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL.

Anuncio
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
Descargar