Diseño de sistema de control de adquisición de datos basado en CPLD
En el siglo XXI, la humanidad entrará de lleno en la sociedad de la información y seguirá planteando mayores requisitos de desarrollo para la tecnología de la información microelectrónica y la tecnología básica VLSI microelectrónica. La tecnología microelectrónica seguirá siendo uno de los campos de alta tecnología más importantes y dinámicos del siglo XXI. La tecnología de circuitos integrados (CI) juega un papel importante en el campo de la microelectrónica. Con el desarrollo de la tecnología de circuitos integrados, la automatización del diseño electrónico (EDA) se ha convertido gradualmente en un método de diseño importante y se utiliza ampliamente en muchos campos, como los sistemas de circuitos analógicos y digitales.
VHDL es un lenguaje de hardware de entrada de diseño ampliamente utilizado que se puede utilizar para la descripción, simulación y diseño automatizado de circuitos y sistemas digitales. CPLD/FPGA (dispositivo lógico programable complejo/matriz de puerta programable en campo) es flexible para el diseño de sistemas digitales y también tiene cadenas. Modo de trabajo paralelo, alta integración. ¡alta velocidad! Con características obvias como alta confiabilidad, el retraso del reloj de CPLD/FPGA puede alcanzar el nivel de nanosegundos. Combinado con su modo de trabajo paralelo, se usa ampliamente en campos de velocidad ultraalta y medición y control en tiempo real.
El propósito de este diseño es utilizar dispositivos lógicos programables para diseñar un controlador convertidor A/D dedicado para reemplazar los microcontroladores comunes para la adquisición de datos. Resumen: Este artículo presenta el control de muestreo de datos de A/D. Este diseño requiere un CPLD/FPGA, ADC y una pantalla LED para formar un sistema de adquisición de datos. CPLD/FPGA se utiliza para implementar conversión A/D, cálculo de datos y control de visualización de datos relevantes en la adquisición de datos. Además de adquirir los conocimientos de hardware correspondientes, este tema también requiere aprender a utilizar el lenguaje VHDL para diseñar dispositivos lógicos programables.
La tecnología EDA del futuro se desarrollará en amplitud y profundidad.
(1) En términos de amplitud, la tecnología EDA será cada vez más popular. En el pasado, debido a los altos precios y los altos requisitos del entorno de hardware, su entorno operativo era una estación de trabajo y un sistema operativo UNIX. En los últimos años, las plataformas de software EDA se han desarrollado rápidamente. El software EDA en estas plataformas de PC tiene un conjunto completo de herramientas de síntesis, simulación y diseño lógico. A medida que mejora el rendimiento de la PC, las funciones del software en la plataforma de la PC serán más completas.
(2) En profundidad, el siguiente paso en el desarrollo de la tecnología EDA es ESDA (Automatización de diseño de sistemas electrónicos) y CE (Proyecto de diseño concurrente de ingeniería concurrente). Actualmente, varias herramientas EDA, como simulación de sistemas, cableado de PCB, síntesis lógica y herramientas de diseño DSP, son independientes entre sí. Con el desarrollo de la tecnología, todas las herramientas del sistema deben funcionar bajo un marco de gestión y una base de datos unificada, por lo que se propusieron los conceptos de ESDA e ingeniería concurrente.
Capítulo 2 El desarrollo y aplicación de la tecnología EDA.
2.1 Descripción general del desarrollo de la automatización del diseño electrónico (EDA)
2.1.1 ¿Qué es la automatización del diseño electrónico (EDA)?
En el campo de la tecnología de diseño electrónico, la aplicación de dispositivos lógicos programables (como PLD, GAL) ha sido muy popular. Estos dispositivos aportan una gran flexibilidad al diseño de sistemas digitales. Dado que este dispositivo puede reconstruir su estructura de hardware y su modo de funcionamiento mediante programación de software, el diseño de hardware puede ser tan conveniente y rápido como el diseño de software. Todo esto ha cambiado en gran medida los métodos de diseño de sistemas digitales tradicionales, el proceso de diseño e incluso los conceptos de diseño.
La automatización del diseño electrónico (EDA) es una tecnología que realiza el diseño automático de sistemas electrónicos o productos electrónicos. Está estrechamente relacionado con el desarrollo de la tecnología electrónica y la tecnología microelectrónica, y ha absorbido la mayoría de los resultados de investigación más recientes en el campo de la informática, comenzando por CAD (diseño asistido por computadora), CAM (fabricación asistida por computadora) y CAT. (pruebas asistidas por computadora) a principios de la década de 1990, se desarrollaron CAE (ingeniería asistida por computadora) y otros conceptos. La tecnología EDA utiliza computadoras como herramientas para completar automáticamente la compilación, simplificación, segmentación, síntesis y optimización, diseño, simulación, compilación de adaptación, mapeo lógico y descarga de programas de chips de destino específicos en la plataforma de software EDA. El trabajo del diseñador se limita a describir la funcionalidad del hardware del sistema con la ayuda del software. Con la ayuda de herramientas EDA y la aplicación de los dispositivos FPGA/CPLD correspondientes, se pueden obtener los resultados finales del diseño. Aunque el sistema de destino es el hardware, todo el proceso de diseño y modificación es tan conveniente y eficiente como completar el diseño del software. Por supuesto, el llamado EDA aquí se refiere principalmente al diseño automático de sistemas digitales, porque las tecnologías de software y hardware en este campo son relativamente maduras y las aplicaciones son relativamente populares. EDA que simula sistemas electrónicos se está volviendo práctico y sus herramientas EDA iniciales no requieren necesariamente un lenguaje de descripción de hardware. Además, desde la perspectiva de la amplitud y profundidad de la aplicación, la tecnología de diseño de sistemas digitales basada en EDA tiene un mercado de aplicaciones más grande y necesidades más urgentes debido a la digitalización integral del campo de la información electrónica.
2.1.2 Historia del desarrollo de EDA
El desarrollo de la tecnología EDA comenzó en la década de 1970 y ha pasado por tres etapas. El CAD (diseño asistido por computadora) de circuitos electrónicos es la etapa inicial del desarrollo de EDA y un componente importante de los sistemas EDA avanzados. Utiliza las capacidades de edición, análisis y almacenamiento de gráficos de las computadoras para ayudar a los ingenieros a diseñar diagramas de circuitos, placas de circuitos impresos y placas de circuitos integrados para sistemas electrónicos. El uso de edición y análisis de gráficos bidimensionales puede resolver principalmente una gran cantidad de trabajos repetitivos en la etapa posterior del diseño de circuitos electrónicos y puede reducir el tedioso trabajo repetitivo de los diseñadores. Sin embargo, el grado de automatización es bajo y todo el diseño. El proceso requiere intervención manual.
Este tipo de software especial se basa principalmente en microcomputadoras, es fácil de aprender y usar, y es confiable y eficaz en el diseño de sistemas electrónicos pequeños y medianos. En la actualidad, muchos de estos programas especializados todavía se utilizan ampliamente en el diseño de ingeniería. A principios de la década de 1980, la tecnología EDA comenzó a analizar el proceso de diseño técnico y lanzó productos EDA con simulación (simulación lógica, análisis de sincronización y simulación de fallas) y colocación y enrutamiento automáticos como núcleo. En esta etapa, EDA introdujo los últimos logros de una serie de disciplinas informáticas como la tecnología de gráficos tridimensionales, tecnología de ventanas, sistemas operativos informáticos, intercambio de datos en red, bases de datos y gestión de procesos en el diseño electrónico, formando CAE (Ingeniería asistida por computadora). La llamada etapa intermedia de la tecnología EDA. Su característica principal son las funciones de simulación, análisis y verificación por computadora de diseños y circuitos automáticos. Su función no es sólo ayudar en el diseño, sino también pensar en nombre de las personas. El sistema EDA CAE basado en diagramas esquemáticos es intuitivo y fácil de entender, pero es difícil cumplir con los requisitos de un diseño electrónico complejo y no es adecuado para la optimización del diseño.
Por lo tanto, basado en sintetizadores automáticos y lenguajes de descripción de hardware, apareció ESDA (Electronic System Design Automation) en la década de 1990, es decir, la etapa EDA, que ahora se conoce comúnmente como EDA. En el pasado, el método de diseño tradicional de productos electrónicos en sistemas electrónicos utilizaba un proceso de abajo hacia arriba. Los diseñadores primero dividían la estructura del sistema en bloques y diseñaban directamente el nivel del circuito. Este método de diseño hace imposible que los diseñadores predigan los problemas en la siguiente etapa, y si hay problemas en cada etapa a menudo se determina cuando se depura todo el sistema. También es difícil lograr que todo el sistema alcance las funciones e indicadores establecidos mediante el ajuste de circuitos locales, y no se puede garantizar el éxito del diseño. En la etapa avanzada de la tecnología EDA, se adopta un nuevo concepto de diseño: procedimientos de diseño de arriba hacia abajo y métodos de diseño de ingeniería concurrentes. La energía del diseñador se centra principalmente en la definición precisa de los productos electrónicos requeridos, y el sistema EDA completa el diseño de productos electrónicos desde el nivel del sistema hasta el nivel físico. La característica principal de la tecnología EDA en esta etapa es que admite sistemas de descripción de lenguaje de alto nivel. La teoría de la síntesis de alto nivel se ha desarrollado enormemente y se puede realizar simulación y síntesis a nivel de sistema. La Figura 2-1 es un diagrama esquemático de las tres etapas anteriores.
Figura 2-2-1 Diagrama esquemático de la etapa de desarrollo de EDA
2.1.3 Aplicación de EDA
Con el desarrollo continuo de la tecnología de circuitos integrados a gran escala y tecnología informática, en el diseño de sistemas electrónicos que involucran comunicaciones, defensa nacional, aeroespacial, medicina, automatización industrial, aplicaciones informáticas, instrumentación y otros campos, el contenido de la tecnología EDA está aumentando a un ritmo alarmante y el desarrollo de alta tecnología electrónica; Los proyectos también se basan en la aplicación de tecnología EDA. Incluso en el desarrollo de productos electrónicos comunes, la tecnología EDA a menudo permite superar fácilmente algunos cuellos de botella técnicos originales, acortando así en gran medida el ciclo de desarrollo del producto y mejorando en gran medida el rendimiento de los costos. No hace falta decir que la tecnología EDA pronto se convertirá en una parte extremadamente importante del campo del diseño electrónico.
Los expertos en diseño electrónico creen que la era de los microcontroladores ha pasado y el futuro será la era de EDA, lo cual es muy revelador. Con el rápido avance de la tecnología microelectrónica, la electrónica ha entrado en una nueva era. Se caracteriza por la aplicación de tecnología electrónica que penetra en todos los ámbitos de la vida a una escala y velocidad sin precedentes. La demanda de diseño de circuitos integrados de aplicaciones específicas (ASIC) en diversas industrias es cada vez más urgente. La amplia aplicación de dispositivos programables en campo proporciona condiciones técnicas y materiales para que los ingenieros de diseño de sistemas electrónicos de diversas industrias desarrollen sus propios ASIC. En comparación con el desarrollo de sistemas de microcontroladores, el desarrollo de FPGA/CPLD mediante tecnología EDA suele ser puro desarrollo de hardware en forma de software. De esta manera, se puede desarrollar ASIC dedicado. El chip ASIC final puede ser un FPGA/CPLD o un chip de máscara de matriz de puertas personalizado. El FPGA/CPLD desempeña el papel de emulación de hardware del chip ASIC.
2.2 Desarrollo de FPGA/CPLD basado en EDA
El desarrollo de la tecnología de diseño electrónico en China hoy enfrentará un avance más significativo, es decir, FPGA/CPLD basado en EDA (campo- Los conjuntos de puertas programables disponibles/dispositivos lógicos programables complejos) se utilizan ampliamente. En cierto sentido, el mecanismo físico del nuevo sistema electrónico volverá a la estructura del circuito puramente digital original, pero este es un ciclo de nivel superior que adapta las partes excelentes de la tecnología digital pasada a un nivel superior y la abandona. Ha dado un salto cualitativo en el funcionamiento técnico y la composición del sistema del diseño electrónico. Si MCU es ilimitado en términos de implementación lógica, entonces FPGA/CPLD no solo contiene las características de MCU, sino que también toca los límites físicos de los circuitos de silicio, con modos de trabajo en serie y paralelo, alta velocidad, alta confiabilidad, aplicabilidad de amplia apertura, etc. Muchas características. Además, con el desarrollo de la tecnología EDA y el progreso de FPGA/CPLD en el campo submicrónico profundo, los límites físicos y funcionales entre ellos y dispositivos independientes como MCU, MPU, DSP, A/D, D/A, RAM y la ROM se han cruzado. Especialmente los chips IP blandos/duros (chips de propiedad intelectual; con el rápido desarrollo de la industria del núcleo de propiedad intelectual (diseño de circuitos con derechos de propiedad registrados), se destacan los dispositivos FPGA estándar y de uso general incorporados, y el sistema en chip (SOC) está al alcance de la mano Con el auge de la industria de chips IP con las características de la economía del conocimiento, FPGA/CPLD ha atraído cada vez más la atención de los expertos de la industria debido a su estatus insustituible.
2. 2. 1 Introducción a FPGA/CPLD
FPGA y CPLD son chips lógicos programables en campo de alta densidad que pueden integrar una gran cantidad de funciones lógicas en un solo circuito integrado. , su nivel de integración ha crecido hasta el millón de puertas. El dispositivo lógico programable complejo CPLD se desarrolla a partir de PAL (lógica de matriz programable) o GAL (lógica de matriz general). Utiliza interconexiones metálicas globales, por lo que tiene una gran previsibilidad de latencia y un fácil control de la lógica secuencial. Pero el consumo de energía es relativamente grande. La matriz de puertas programables en campo (FPGA) evolucionó a partir de la matriz de puertas programables (MPGA) y los dispositivos lógicos programables, y combina las características de los dos. Por lo tanto, la FPGA tiene la alta densidad lógica y la versatilidad de las matrices de puertas, así como el dispositivo lógico programable. Funciones programables por el usuario de dispositivos lógicos programados. Los FPGA generalmente constan de celdas lógicas programables (o macroceldas) separadas por recursos de cableado, y todo el chip consta de celdas Ir0 programables que rodean la matriz. Sus recursos internos están segmentados e interconectados, por lo que la latencia es impredecible y solo puede medirse después de la programación.
Existen tres tecnologías de programación para establecer conexiones lógicas programables internas entre CPLD y FPGA: Los dispositivos basados en tecnología antifusible solo permiten programar una vez y no se pueden modificar después de la programación. Sus ventajas son alta integración, alta frecuencia de operación, buena confiabilidad y adecuado para entornos hostiles con fuertes interferencias de radiación electromagnética. Los chips lógicos programables basados en la tecnología de almacenamiento EEPROM se pueden reprogramar más de 100 veces y la información de programación no se perderá después de apagar el sistema. Los métodos de programación se dividen en programación en el programador y programación con un cable de descarga. Para dispositivos programados con un cable de descarga, siempre que el dispositivo esté soldado primero a la placa de circuito impreso, la señal de nivel lógico estándar de 5 V, 3,3 V o 2,5 V, también conocida como programación ISP (programable en el sistema), también es muy útil. conveniente para la depuración y el mantenimiento. Los datos de programación del dispositivo basados en la tecnología SRAM se almacenan en el área RAM del dispositivo, lo que le permite tener funciones diseñadas por el usuario. Cuando el sistema no está encendido, los datos de programación se almacenan en EPROM, disco duro o disquete. Cuando se enciende el sistema, estos datos de programación se escriben inmediatamente en el dispositivo programable, lo que permite la configuración dinámica a nivel de placa o de sistema.
2.2.2 Proceso de desarrollo de FPGA/CPLD basado en herramientas EDA.
Proceso de desarrollo de FPGA/CPLD: al comienzo del diseño, la intención de diseño del diseñador se expresa en texto (como VHDL, programa Verilog-HDL) o gráficos (diagrama esquemático, diagrama de estado, etc.). ) utilizando el editor de texto o gráficos de la herramienta EDA. Una vez completada la descripción del diseño, se puede depurar y compilar a través del compilador y convertirla en un formato de texto específico para prepararse para el siguiente paso. Aquí, para la mayoría del software EDA, el formulario de entrada que se utiliza para el diseño inicial es opcional o mixto. El método de entrada de esquemas generales es relativamente fácil de dominar, intuitivo y conveniente. El diagrama esquemático del circuito dibujado (tenga en cuenta que este diagrama esquemático es esencialmente diferente del diagrama esquemático dibujado por PROTEL) es exactamente el mismo que el método de conexión de dispositivos tradicional y es fácilmente aceptado. Además, hay muchos dispositivos unitarios listos para usar disponibles en el editor y también puede diseñar componentes según sus propias necesidades (las funciones de los componentes se pueden expresar en HDL o diagramas esquemáticos). Por supuesto, el método de entrada más común y versátil sigue siendo el modo texto del programa HDL. Este método es el más común. Si el archivo compilado es un archivo VHDL estándar, el contenido descrito se puede simular antes de la síntesis, lo que se denomina simulación de comportamiento. Es decir, el programa fuente diseñado se envía directamente al simulador VHDL para su simulación. Porque la simulación en este momento solo se basa en la semántica de VHDL y no tiene nada que ver con el circuito específico. En la simulación, podemos hacer pleno uso de las declaraciones en VHDL adecuadas para el control de la simulación. Para el diseño de sistemas de circuitos a gran escala, este proceso de simulación es muy necesario, pero en términos generales, este paso se puede omitir.
Figura 2-2 Proceso de desarrollo de FPGA/CPLD
El tercer paso del diseño es la síntesis, que conecta el diseño de software y la implementación de hardware y convierte el software en circuitos de hardware. El sintetizador sintetiza archivos fuente para una determinada familia de productos de proveedores de FPGA/CPLD, por lo que los resultados de la síntesis se pueden lograr mediante hardware. Después de la síntesis, el sintetizador HDL generalmente puede generar un archivo netlist en formato EDIF, XNF o VHDL, que describe la estructura de puerta más básica desde el nivel de puerta. Algunos programas EDA tienen la función de dibujar archivos netlist en diagramas de circuitos en diferentes niveles para que los utilicen los diseñadores. Después de la síntesis, el archivo netlist generado se puede utilizar para una simulación funcional para comprender la coherencia de la descripción del diseño con la intención del diseño. La simulación funcional solo prueba y simula las funciones lógicas descritas en el diseño para comprender si las funciones implementadas cumplen con los requisitos del diseño original. El proceso de simulación no involucra las características de hardware del dispositivo específico, como las características de retardo, etc. Para diseños generales, este nivel de simulación también se puede omitir. Después de la síntesis, se debe utilizar un adaptador de enrutamiento/ubicación FPGA/CPLD para asignar lógicamente el archivo netlist sintetizado a un dispositivo de destino específico, incluida la configuración del dispositivo subyacente, la partición lógica, la optimización lógica, la ubicación y el enrutamiento. Una vez completada la adaptación, el software EDA producirá una serie de resultados para el diseño: 1. Informe de adaptación: el contenido incluye la asignación y utilización de recursos en el chip, bloqueo de pines, descripción de la ecuación booleana del diseño, etc.
2. Archivo Netlist para simulación de tiempo 3. Descargar archivo, como un archivo JED o POF 4. Informe de errores de adaptación, etc. La simulación de tiempo es una simulación cercana al funcionamiento de un dispositivo real. Las características del hardware del dispositivo se han tenido en cuenta durante el proceso de simulación, por lo que la precisión de la simulación es mucho mayor. Los archivos Netlist para simulación de tiempos contienen información de retraso más precisa. Si todos los procesos anteriores, incluida la compilación, síntesis, cableado/adaptación y simulación de comportamiento, simulación funcional y simulación de sincronización, no encuentran ningún problema, es decir, se cumplen los requisitos del diseño original, entonces el adaptador se puede descargar a través del Programador FPGA/CPLD o línea de descarga El archivo de configuración/descarga generado se carga en el chip FPGA o CPLD de destino y luego continúa con el paso final que se muestra en la Figura 1-2: simulación o prueba de hardware para verificar el diseño en un entorno más realista. . La llamada simulación de hardware aquí está diseñada para ASIC. En el diseño ASIC, un método común es usar FPGA para probar las funciones del diseño del sistema y luego implementar el diseño VHDL en forma de ASIC después de pasar la prueba de hardware para la aplicación directa de FPGA o CPLD en el sistema de circuito; pruebas.
2.2.3 Ventajas y desventajas del desarrollo de FPGA/CPLD
Creemos que el desarrollo y la aplicación de dispositivos FPGA/CPLD basados en la tecnología EDA pueden resolver fundamentalmente los problemas encontrados por las MCU. En comparación con MCU, las ventajas de FPGA/CPLD son muchas y las más básicas:
1 El modo de programación es simple y avanzado. Los productos FPGA/CPLD adoptan cada vez más la tecnología avanzada IEEE 1149.1 Boundary Scan Test (BST) (desarrollada por JTAG) e ISP (Programación de configuración en el sistema). En el nivel operativo de +5 V, el FPGA/CPLD en el sistema en funcionamiento se puede programar total o parcialmente en cualquier momento, y se puede realizar la llamada programación en serie de múltiples chips en cadena tipo margarita. Para FPGA con estructuras SRAM, casi no hay límite para la cantidad de programación descargable (como la serie FLEXI 10K de Altera). Este método de programación puede lograr fácilmente programación por infrarrojos, programación ultrasónica o programación inalámbrica, o programación remota en línea a través de líneas telefónicas. Estas funciones tienen usos especiales en control industrial, instrumentación inteligente, comunicaciones y militar.
2.Alta velocidad. El retraso del reloj de FPGA/CPLD puede alcanzar el nivel de nanosegundos. Combinado con su modo de trabajo paralelo, tiene perspectivas de aplicación muy amplias en aplicaciones de velocidad ultraalta y medición y control en tiempo real.
3. Alta confiabilidad. En el campo de las aplicaciones de alta confiabilidad, las deficiencias de los microcontroladores dejan mucho espacio para la aplicación de FPGA/CPLD. Además de los defectos inherentes como el reinicio poco confiable de la MCU y la desviación de la PC, la alta confiabilidad de FPGA/CPLD radica en el hecho de que casi todo el sistema se puede descargar en el mismo chip, lo que reduce en gran medida el tamaño y facilita su administración. y escudo.
4. Las herramientas de desarrollo y los lenguajes de diseño están estandarizados y el ciclo de desarrollo es corto. Debido a que la escala de integración de FPGA/CPLD es muy grande, el nivel de integración puede alcanzar millones de puertas. Por tanto, el diseño y desarrollo de FPGA/CPLD debe utilizar potentes herramientas EDA para diseñar sistemas electrónicos y desarrollar productos a través de lenguajes de descripción de hardware que cumplan con estándares internacionales (como VHDL o Verilog-HDL). Debido a la universalidad de las herramientas de desarrollo, la estandarización de los lenguajes de diseño y los procesos de diseño, casi no tiene nada que ver con la estructura de hardware del dispositivo FPGA/CPLD utilizado.
Por lo tanto, varios software de bloques de funciones lógicas diseñados con éxito tienen buena compatibilidad y portabilidad, pueden usarse en casi cualquier tipo de FPGA/CPLD y también pueden confirmarse mediante derechos de propiedad intelectual y registrarse como el llamado IP. chips, mejorando así en gran medida la eficiencia del diseño del producto del sistema en chip. Dado que el software EDA correspondiente tiene funciones completas y potentes, un modo de simulación conveniente y en tiempo real, un proceso de desarrollo vívido e intuitivo e involucra pocos factores de hardware, se puede completar un diseño de sistema muy complejo en poco tiempo, que es la mejor manera para los productos. para ingresar rápidamente al mercado. La empresa estadounidense TI cree que el 80% de las funciones de un ASIC se pueden sintetizar utilizando lógica disponible en el mercado, como chips IP. Los expertos de EDA predicen que el diseño FPGA/CPLD de sistemas a gran escala en el futuro consistirá únicamente en el ensamblaje de varias lógicas multiplexadas y chips IP, y el ciclo de diseño tomará al menos unos minutos.
5. Potente y ampliamente utilizado. En la actualidad, existe una amplia gama de opciones de FPGA/CPLD y se pueden seleccionar chips de diferentes capacidades según las diferentes aplicaciones. Utilizándolos, se puede diseñar casi cualquier forma de circuito o sistema digital. Con la aplicación generalizada de dichos dispositivos y la reducción sustancial de costos, la tasa de aplicación directa de FPGA/CPLD en sistemas se está acercando al desarrollo de ASIC. Al mismo tiempo, el método de diseño FPGA/CPLD también tiene sus limitaciones. Esto se refleja principalmente en los siguientes puntos:
(1). Generalmente, el software de diseño FPGA/CPLD necesita optimizar la lógica del circuito ((síntesis y optimización lógica) para obtener resultados fáciles de implementar. Por lo tanto, al final, existen ciertas diferencias en la implementación lógica y el retraso entre el diseño y el diseño original. Por lo tanto, algunas formas de circuito utilizadas a menudo en los métodos de diseño tradicionales (especialmente algunos circuitos secuenciales asíncronos) no son adecuadas para el diseño FPGA/CPLD. Sólo cuando el personal aprende más sobre las características del software de diseño FPGA/CPLD puede obtener diseños optimizados.
(2) FPGA generalmente adopta una estructura de tabla de búsqueda (LUT) (Xilinx), una estructura AND-OR (Altera) o una estructura multiplexor (Actel). La ventaja de estas estructuras es que son programables, pero la desventaja es que el retraso es demasiado grande, lo que provoca desviaciones de sincronización entre las señales de sincronización en el diseño original. Al mismo tiempo, si el circuito es grande, es necesario dividirlo en partes. Las compensaciones de latencia y tiempo son aún mayores debido a la latencia derivada. Los retrasos de tiempo son un problema común en el diseño de ASIC. Es muy difícil controlar con precisión el retardo de un circuito, especialmente en lógica programable como FPGA/CPLD.
(3) FPGA/CPLD tiene capacidad y cantidad de E/S limitadas. Por lo tanto, un circuito grande solo puede implementarse mediante múltiples chips FPGA/CPLD después de una división lógica. La calidad del algoritmo de división afecta directamente el rendimiento del diseño.
(4) Debido al alto costo de modificar la PCB del sistema de destino, los usuarios generalmente esperan modificar el circuito bajo la premisa de que la distribución de cables es fija. Pero cuando aumenta la tasa de utilización del chip, o hay muchos terminales de E/S en el chip, pequeñas modificaciones a menudo reducen la tasa de circulación del chip;
(5) Los primeros chips FPGA no pueden implementar memoria, circuitos analógicos, etc. Circuito especial. Algunos de los últimos productos FPGA integran estructuras RAM comunes. Sin embargo, esta estructura es ineficiente o no puede satisfacer plenamente las necesidades del diseñador. Esta contradicción proviene de las limitaciones estructurales de la propia FPGA, que son difíciles de solucionar en poco tiempo.
6. Aunque FPGA ha implementado la simulación de hardware del diseño ASIC, debido a que las características de retardo de FPGA son diferentes de las formas de ASIC, como las matrices de puertas tradicionales y las celdas estándar, al cambiar el diseño FPGA a otros diseños ASIC, hay Todavía existe la posibilidad de que el diseño falle debido a un desajuste en el retraso. Para resolver este problema, ha surgido en el mundo un sistema de simulación de hardware ASIC que utiliza una matriz FPGA (como el sistema de simulación de hardware de Quicktum). Este sistema de simulación de hardware dedicado utiliza una combinación de software y hardware para implementar un prototipo rápido de ASIC utilizando una matriz FPGA y conectarlo al sistema para realizar pruebas. El sistema puede aceptar puntos de prueba designados y observarlos directamente en la matriz FPGA (al igual que en la simulación de software), por lo que la precisión y eficiencia de la simulación mejoran enormemente.
2.3 Lenguaje de descripción de hardware
El lenguaje de descripción de hardware (HDL) es relativo a los lenguajes generales de software informático como C y Pascal. HDL es un lenguaje informático utilizado para diseñar sistemas electrónicos de hardware. Describe las funciones lógicas, la estructura de circuitos y los métodos de conexión de los sistemas electrónicos. Los diseñadores pueden utilizar programas HDL para describir el sistema de circuito deseado y especificar sus características estructurales y el comportamiento del circuito. Luego use sintetizadores y adaptadores para convertir este programa en archivos de lista de red estructurados a nivel de puerta o de nivel inferior y archivos de descarga, que pueden controlar las estructuras internas de FPGA y CPLD e implementar las funciones lógicas correspondientes. El lenguaje de descripción de hardware tiene las siguientes ventajas: a. Tecnología de diseño completa, métodos flexibles y amplio soporte. b. Acelerar el ciclo de diseño de circuitos de hardware y reducir la dificultad de diseñar circuitos de hardware. c.Utilizando la simulación temprana del sistema, se pueden descubrir y eliminar los problemas existentes en el diseño inicial del sistema. El diseño del lenguaje puede ser independiente de la tecnología procedimental. e. Estándares y especificaciones de lenguaje para facilitar el intercambio y la reutilización con * * * *. En lo que respecta al desarrollo de FPGA/CPLD, el lenguaje VHDL es uno de los lenguajes de descripción de hardware más utilizados y populares. Se seleccionó el lenguaje VHDL para este diseño. El lenguaje VHDL se presentará principalmente a continuación.
2.3.1 Introducción al lenguaje VHDL
VHDL es la abreviatura del prefijo inglés de Lenguaje de descripción de hardware de circuitos integrados de muy alta velocidad. Su nombre completo en inglés es Lenguaje de descripción de hardware de circuito integrado de ultra alta velocidad. Fue desarrollado por el proyecto VHSIC (Circuito Integrado de Muy Alta Velocidad) financiado por el Departamento de Defensa de EE. UU. en las décadas de 1970 y 1980, y nació en 1982. A finales de 1987, VHDL fue reconocido como un lenguaje de descripción de hardware estándar. por el IEEE (Instituto de Ingenieros Eléctricos y Electrónicos). Desde que IEEE anunció la versión estándar de VHDL (estándar IEEE std 1076-1987), varias empresas de EDA han lanzado sucesivamente sus propios entornos de diseño VHDL. Desde entonces, VHDL ha sido ampliamente aceptado en el campo del diseño electrónico y ha reemplazado gradualmente al HDL no estándar original. En 1993, IEEE revisó VHDL, amplió el contenido de VHDL desde un nivel de abstracción más alto y capacidades de descripción del sistema, y lanzó una nueva versión de VHDL, a saber, ANSI/IEEE std1076, 1993. En 1996, IEEE 1076.3 se convirtió en una versión completa del estándar VHDL.
VHDL se utiliza principalmente para describir la estructura, el comportamiento, las funciones y las interfaces de sistemas digitales, y es muy adecuado para el diseño de aplicaciones de chips lógicos programables. En comparación con otros HDL, VHDL tiene capacidades de descripción de comportamiento más sólidas, lo que determina que se convierta en el mejor lenguaje de descripción de hardware en el campo del diseño de sistemas. Las potentes capacidades de descripción de comportamiento son una garantía importante para describir y diseñar sistemas electrónicos a gran escala a partir de comportamientos lógicos sin estructuras de dispositivos específicas. En lo que respecta a las herramientas EDA y sintetizadores VHDL actualmente populares, ya no es un problema sintetizar programas VHDL basados en un estilo de descripción de comportamiento abstracto en archivos netlist específicos para dispositivos de destino como FPGA y CPLD.
El papel del lenguaje VHDL en el diseño de hardware será el mismo que el de C y C++ en el diseño de software. En el diseño de sistemas digitales a gran escala, reemplazará gradualmente los métodos de descripción de hardware engorrosos y de bajo nivel, como tablas de estado lógico y diagramas de circuitos lógicos, y se convertirá en la principal herramienta de descripción de hardware. Se convertirá en un lenguaje que todos los técnicos en el campo del diseño de sistemas digitales deberán dominar. La combinación de VHDL y dispositivos lógicos programables, como potente método de diseño, llevará los productos de los diseñadores al mercado en un tiempo récord.
2.3.2 Pasos de diseño en lenguaje VHDL
El diseño utilizando lenguaje VHDL se puede dividir en los siguientes pasos:
1. Antes de diseñar y escribir código VHDL, debe comprender claramente sus objetivos y requisitos de diseño. Por ejemplo, ¿qué función quieres diseñar? Definición clara del tiempo de establecimiento de la señal requerido, tiempos de reloj/salida, frecuencia operativa máxima del sistema, rutas críticas, etc. Le ayudará en su diseño y luego elegirá el método de diseño apropiado y la estructura del dispositivo correspondiente para la síntesis del diseño.
2. Utilizar lenguaje VHDL para describir el diseño.
(1) Se debe determinar el método de diseño. En términos generales, existen tres métodos de diseño: diseño de arriba hacia abajo, diseño de abajo hacia arriba y diseño plano.
Los dos primeros enfoques implican la generación de jerarquías de diseño, mientras que el último enfoque trata el circuito descrito como un circuito de un solo módulo. Un enfoque de arriba hacia abajo requiere dividir su diseño en componentes funcionales, cada uno de los cuales tiene entradas y salidas especialmente definidas y realiza una función lógica especial. Primero, se genera un módulo de nivel superior compuesto por componentes funcionales interconectados para crear una lista de redes y luego se diseña cada componente que contiene. El enfoque ascendente es todo lo contrario. El diseño plano significa que todos los componentes funcionales están diseñados en detalle en el mismo piso y en el mismo dibujo.
(2)Escribir código de diseño. Escribir código VHDL es muy diferente a escribir código en otros lenguajes de programación de computadoras. Debe comprender claramente que está diseñando hardware y que el código VHDL que escriba debe poder integrarse en la lógica digital implementada por el dispositivo lógico programable. Comprender el flujo de trabajo general del software de simulación y el software de síntesis en las herramientas EDA le ayudará a escribir un código excelente.
3. Utilice el simulador VHDL para simular las funciones del código original VHDL. Para diseños a gran escala, el uso del software de simulación VHDL para la simulación puede ahorrar tiempo, y los errores en el diseño se pueden descubrir temprano en el diseño para que puedan corregirse, minimizando así el impacto en el progreso del diseño. Porque en el caso de diseños a gran escala, su optimización y configuración integrales suelen tardar varias horas. Simular el código original antes de la síntesis puede reducir en gran medida la cantidad y el tiempo de duplicación del diseño y corrección de errores. Pero para diseños pequeños, a menudo no es necesario simular primero el código VHDL original. Incluso si se hace, tiene poca importancia. Porque para un diseño pequeño, la optimización y configuración integrales requieren muy poco tiempo, y después de una optimización integral, a menudo encontrará que para lograr los objetivos de rendimiento, deberá modificar su diseño. En este caso, no tiene sentido que el usuario dedique tiempo a simular el código original, porque una vez que se cambia el diseño, la simulación debe volver a simularse.
4. Utilice el software de optimización integral VHDL para optimizar integralmente el código VHDL original. Después de seleccionar el dispositivo de destino e ingresar las restricciones, la herramienta de software de optimización integral VHDL procesará el código original VHDL, generará una tabla de red optimizada y realizará una simulación de sincronización aproximada. El flujo de procesamiento general de las herramientas de software de optimización integral es el siguiente: primero, se detectan errores de sintaxis y semánticos, luego, después del procesamiento integral, se obtendrá un conjunto de ecuaciones lógicas específicas del proceso para los dispositivos CPLD y se generará una lista de redes específica del proceso; obtenido para dispositivos FPGA. Optimizar al final. La optimización de los CPLD normalmente implica simplificar la lógica a la suma más pequeña de términos de producto y reducir la cantidad de entradas de bloques lógicos requeridas para cualquier expresión determinada. El dispositivo optimiza aún más estas ecuaciones para lograr la asignación de recursos. La optimización de FPGA generalmente requiere la suma de términos del producto para representar la lógica. Los sistemas de ecuaciones se pueden descomponer en función de los recursos y la orientación específicos del dispositivo que impulsan los objetivos de optimización. Los factores descompuestos se pueden usar para evaluar la efectividad de la implementación, y sus criterios se pueden usar para decidir si descomponer otros sistemas de programas de manera diferente o conservar los factores existentes. El criterio generalmente se refiere a la capacidad de compartir el mismo factor, que puede almacenarse temporalmente para compararlo con cualquier factor recién generado.
5. Configuración. La tabla de red optimizada obtenida después de una optimización integral se coloca en el dispositivo de destino CPLD o FPGA seleccionado previamente. Este proceso se llama configuración.
Optimización