Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 2 CIRCUITOS DIGITALES CONFIGURABLES (PARTE 3: Tema 3) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Diseño de sistemas digitales implementados en un circuito FPGA Enrique Mandado Pérez María José Moure Rodríguez Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Proceso de diseño de sistemas digitales implementados en un circuito FPGA GUI Diseño Esquema electrónico Traducción Diagrama Grafo de estados Lenguaje de descripción hardware Síntesis Simulación funcional Simulación temporal Simulación Compilación Enrutado Configuración dispositivo EDA: Electronic Design Automation Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA DESCRIPCIÓN MEDIANTE UN DIAGRAMA DE ESTADOS Ejemplo HERRAMIENTA StateCAD de Xilinx Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA Lenguajes de descripción hardware o HDL (Hardware Description Languages) Mediante ellos se realizan descripciones de circuitos complejos imposibles de describir mediante esquemas.los esquemáticos. • Ejemplo de HDL: VHDL architecture comportamiento of decodificador is entity decodificador is port (E0,E1, EN: in bit; S0,S1,S2,S3: out bit) end; begin process (E0,E1,EN) begin if EN=‘0’ then S0<=‘0’; S1<=‘0’; S2<=‘0’; S3<=‘0’; elseif E0=‘0’ and E1=‘0’ then S0<=‘1’; S1<=‘0’; S2<=‘0’; S3<=‘0’; elseif E0=‘1’ and E1=‘0’ then S0<=‘0’; S1<=‘1’; S2<=‘0’; S3<=‘0’; elseif E0=‘0’ and E1=‘1’ then S0<=‘0’; S1<=‘0’; S2<=‘1’; S3<=‘0’; elseif E0=‘1’ and E1=‘1’ then S0<=‘0’; S1<=‘0’; S2<=‘0’; S3<=‘1’; endif end process; end comportamiento; Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA • INDEPENDIENTE DE LA TECNOLOGÍA Utiliza descripciones de alto nivel sin tener en cuenta el circuito en el que se van a implementar. – Generalmente se utilizan descripciones de comportamiento mediante lenguajes de descripción física (HDL) . – Permite probar el sistema en diferentes circuitos, pero no optimiza las prestaciones en ninguno de ellos. • DEPENDIENTE DE LA TECNOLOGÍA Utiliza recursos y componentes específicos del circuito en el que se va a implementar el sistema digital. – Generalmente se utilizan descripciones estructurales mediante editores de esquemas (Schematic). – Permite optimizar las prestaciones para un circuito concreto, pero dificulta la migración del sistema a otro circuito. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA GENERACIÓN DE LA LISTA DE CONEXIONES (NETLIST) • • La lista de conexiones es un fichero que describe las interconexiones entre los elementos de un circuito (descripción estructural). En general es un fichero muy extenso. Existen formatos normalizados para intercambio de datos entre programas. Ejemplo: Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA SIMULACIÓNFUNCIONAL - Facilita la comprobación de la funcionalidad del circuito (nivel lógico) para lo cual asigna retardos nulos o unidad. - Hay que aplicar vectores de estímulo que se pueden ser generar automáticamente. - En general no es exhaustiva (sistemas secuenciales complejos). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA ASIGNACIÓN DE RECURSOS (FITTING) • • Asigna un elemento físico del circuito a cada elemento lógico del sistema diseñado: • Asignación de biestables. • Asignación de macroceldas a cada ecuación lógica, compartiendo si es necesario recursos de otras macroceldas. • Si no es posible asignar la ecuación a una única macrocelda, la subdivide para su realización en varias mediante realimentaciones. Obtiene una nueva lista de conexiones al final del proceso y un informe de usuario. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) DESCRIPCIÓN DEL SISTEMA ENRUTADO (ROUTING) – Asigna los caminos físicos que recorre cada señal. – Trata de obtener el menor retardo posible para cada señal. El retardo de interconexión es decisivo en el retardo total de las señales (40% al 60%). – Si no se cumplen los retardos máximos especificados por el usuario se vuelve a la fase de asignación de recursos. – Los recursos de interconexión en general no permiten ocupar toda la lógica del dispositivo (menos del 80 %). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Simulación temporal Permite evaluar: - Retardos del circuito (velocidad de funcionamiento) - Consumo - Recursos utilizados Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) HERRAMIENTAS DE DISEÑO ASISTIDO POR COMPUTADOR Cada fabricante de Circuitos Digitales Configurables dispone de su propia herramienta de CAD, que hay que utilizar imprecindiblemente al menos para la fase de implementación. Todas las herramientas de CAD son muy similares. Las herramientas actuales están orientadas sobre todo al diseño de sistemas digitales basados en al menos un lenguaje de descripción del hardware (HDL) como por ejemplo Verilog o VHDL. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Herramienta ISE de Xilinx Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) ISE: Ejemplo de resultados de la implementación Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) ISE: Programación del circuito FPGA Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) XILINX System Generator: DISEÑO DSP A PARTIR DE MATLAB