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. La tecnología de la información microelectrónica y la tecnología básica VLSI de la microelectrónica seguirán presentando mayores requisitos de desarrollo. La tecnología microelectrónica seguirá convirtiéndose en la del siglo XXI. uno de los campos de alta tecnología más importantes y dinámicos de los últimos años. La tecnología de circuitos integrados (CI) ocupa una posición 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, que 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 de automatización de circuitos y sistemas digitales. CPLD/FPGA (dispositivo lógico programable complejo/matriz de puerta programable en campo) se utiliza en el diseño de sistemas digitales con la flexibilidad de la serie. ¡Modo de operación paralelo y 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, tiene una amplia gama de aplicaciones en el campo de la velocidad ultraalta y la medición y el control en tiempo real. .
El propósito de este diseño es utilizar dispositivos lógicos programables para diseñar un controlador dedicado para el convertidor A/D para reemplazar el microcontrolador de adquisición de datos comúnmente utilizado. Este artículo discutirá el control de muestreo de datos de A/D. El diseño requiere CPLD/FPGA, un controlador de conversión analógico a digital ADC y una pantalla LED para formar un sistema de adquisición de datos. CPLD/FPGA se utiliza para implementar la conversión A/D, el cálculo de datos y el control de los datos de visualización en la adquisición de datos. Además de adquirir los conocimientos de hardware correspondientes, este tema también requiere aprender a diseñar dispositivos lógicos programables utilizando el lenguaje VHDL.
La tecnología EDA del futuro se desarrollará en dos direcciones: amplitud y profundidad.
(1) En términos de amplitud, la tecnología EDA será cada vez más popular. En el pasado, debido a que el software EDA era costoso y tenía altos requisitos en el 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 han logrado un rápido desarrollo. El software EDA en estas plataformas de PC tiene un conjunto completo de herramientas de diseño, simulación y síntesis lógica. A medida que mejora el rendimiento de la PC, el software de la plataforma de PC será más completo.
(2) En términos de profundidad, el próximo desarrollo de la tecnología EDA es ESDA Wood Electronic System Design Automation (automatización del diseño de sistemas electrónicos) y CE (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, lo que dio origen a los conceptos de ESDA y CE.
Capítulo 2 Historia y aplicación de 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 madura. Estos dispositivos aportan una gran flexibilidad al diseño de sistemas digitales. Debido a que estos dispositivos se pueden programar mediante software, la estructura y reconfiguración del hardware puede ser tan sencilla como el diseño del software. Todo esto ha cambiado en gran medida los métodos de diseño de sistemas digitales tradicionales, los procesos 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 automatizado de sistemas electrónicos o productos electrónicos. Está estrechamente relacionada con el desarrollo de la tecnología electrónica y la tecnología microelectrónica, y absorbe la mayor parte de las últimas investigaciones en. Los resultados, utilizando computadoras de alto rendimiento como plataforma de trabajo, fueron desarrollados a principios de la década de 1990 mediante CAD (diseño asistido por computadora), CAM (fabricación asistida por computadora), CAM (diseño asistido por computadora), CAM (fabricación asistida por computadora) y CAM (fabricación asistida por computadora), etc. La tecnología EDA utiliza computadoras como herramientas. En la plataforma de software EDA, los archivos de diseño se completan de acuerdo con el lenguaje de descripción de hardware HDL, y se realizan la compilación lógica, la simplificación, la partición, la síntesis y la optimización, las líneas de diseño, la simulación y la adaptación a chips de destino específicos. completado automáticamente! Compilación, mapeo lógico y descarga de programas. El trabajo del diseñador se limita a utilizar software para describir las funciones del hardware del sistema. 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 automatizado de sistemas digitales, porque la tecnología de software y hardware en este campo se ha vuelto relativamente madura y la popularidad de sus aplicaciones también se ha vuelto relativamente grande. Si bien EDA para simular sistemas electrónicos está entrando en práctica, 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, debido a la digitalización integral del campo de la información electrónica, 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.
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 hasta el momento. El circuito electrónico CAD (diseño asistido por computadora) es la etapa inicial del desarrollo de EDA y una parte importante de los sistemas EDA avanzados. Utiliza las funciones de edición, análisis y almacenamiento de gráficos de la computadora para ayudar a los ingenieros a diseñar diagramas de circuitos de sistemas electrónicos, placas de circuito impreso y diagramas de placas de circuitos integrados. Utiliza edición y análisis de gráficos bidimensionales para resolver principalmente una gran cantidad de tareas repetitivas en el; etapas posteriores del diseño de circuitos electrónicos, que pueden reducir Los diseñadores tienen un trabajo tedioso y repetitivo, pero el grado de automatización es bajo y todo el proceso de diseño requiere intervención manual. La mayoría de estos programas especiales utilizan microcomputadoras como plataforma de trabajo, son fáciles de aprender y utilizar y son confiables y eficaces para el diseño de pequeños sistemas electrónicos. Muchos de estos programas especiales 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 tiempo y simulación de fallas) y ubicación y enrutamiento automáticos como núcleo. En esta etapa, EDA ha integrado tridimensional. tecnología gráfica, tecnología de ventanas. Los últimos logros de una serie de disciplinas informáticas, como sistemas operativos informáticos, intercambio de datos en red, bases de datos y gestión de procesos, se introdujeron en el diseño electrónico, formando CAE (Ingeniería asistida por computadora). También se la conoce como etapa intermedia de la tecnología EDA. Sus características principales son la colocación y enrutamiento automático y las funciones de simulación, análisis y verificación por computadora de circuitos. Su función no es sólo ayudar en el diseño, sino también pensar en nombre de las personas. Aunque CAE, un sistema EDA basado en diagramas esquemáticos, es intuitivo y fácil de entender, es difícil cumplir con los requisitos de un diseño electrónico complejo y no es adecuado para un diseño optimizado.
Como resultado, en la década de 1990 surgió ESDA (Electronic System Design Automation), que se basaba en sintetizadores automáticos y lenguajes de descripción de hardware y soportaba totalmente la automatización del diseño electrónico, es decir, la etapa EDA. , que ahora se usa comúnmente. En el pasado, el método tradicional para diseñar sistemas electrónicos y productos electrónicos era utilizar programación ascendente (Bottom_Up). El diseñador primero realizaba un programa ascendente (Bottom_Up) en la estructura del sistema. bloques, y luego realizar directamente el diseño a nivel de circuito.
Este método de diseño hace imposible que los diseñadores predigan los problemas en la siguiente etapa, y los problemas en cada etapa a menudo sólo pueden determinarse durante la depuración de todo el sistema. También es difícil ajustar los circuitos locales para que todo el sistema alcance las funciones establecidas. e indicadores, no hay garantía de que el diseño sea exitoso. La etapa avanzada de la tecnología EDA adopta un nuevo concepto de diseño: esquema de diseño de arriba hacia abajo (Top_Down) e ingeniería concurrente (Cononductor). En el método de diseño de ingeniería concurrente, la energía del diseñador se centra principalmente en la definición precisa de productos electrónicos, 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 el uso de lenguajes de alto nivel para describir sistemas. La teoría de la síntesis de alto nivel (High Level Synthesis) se ha desarrollado enormemente y puede realizar simulación y síntesis a nivel de sistema. realizado. La Figura 2-1 ofrece un diagrama esquemático de estas tres etapas.
Figura 2-1 Diagrama esquemático de las etapas de desarrollo de EDA
2.1.3 Aplicación de EDA
Con el desarrollo continuo de la tecnología de circuitos integrados y las computadoras a gran escala La tecnología, en el diseño de sistemas electrónicos, implica trabajos de diseño de sistemas electrónicos en los campos de las comunicaciones, la defensa nacional, la industria aeroespacial, la medicina, la automatización industrial, las aplicaciones informáticas, la instrumentación y otros campos. El contenido de la tecnología EDA está aumentando a un ritmo alarmante. En aumento, el desarrollo de proyectos electrónicos de alta tecnología también se basa en la aplicación de la tecnología EDA. Incluso en el desarrollo de productos electrónicos comunes, la tecnología EDA a menudo puede superar fácilmente algunos cuellos de botella técnicos originales, acortando en gran medida el ciclo de desarrollo del producto y mejorando en gran medida la relación rendimiento-precio. No hace falta decir que la tecnología EDA se convertirá rápidamente 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 terminado y el futuro será la era de EDA. Esta es una afirmación muy reveladora. Con el rápido avance de la tecnología microelectrónica, la tecnología 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. Varias industrias tienen requisitos cada vez más urgentes para el diseño de sus propios circuitos integrados para aplicaciones específicas (ASIC). La aplicación generalizada de dispositivos programables en campo ha proporcionado las condiciones técnicas y materiales para que los ingenieros de diseño de sistemas electrónicos en diversas industrias desarrollen sus propios ASIC específicos para la industria. . En comparación con el desarrollo de sistemas de microcomputadoras de un solo chip, el uso de la tecnología EDA para desarrollar FPGA/CPLD generalmente se basa en software para el desarrollo de hardware puro. Se pueden desarrollar ASIC especiales a través de este enfoque, y el chip ASIC final puede ser un FPGA/CPLD. También puede ser un chip de máscara de matriz de puerta patentado. FPGA/CPLD desempeña el papel de simulación de hardware de un chip ASIC.
2.2 Desarrollo de FPGA/CPLD basado en EDA
Con el desarrollo de la tecnología de diseño electrónico en nuestro país hoy, enfrentaremos un gran avance en un sentido mayor, es decir, FPGA/ CPLD (matriz de puertas programables en campo, matriz de puertas programables en campo/dispositivo lógico programable complejo, dispositivo lógico programable complejo). Los dispositivos lógicos, dispositivos lógicos programables complejos) se utilizan ampliamente en EDA. En cierto sentido, el mecanismo operativo físico del nuevo sistema electrónico volverá a la estructura del circuito digital puro original, que es solo un ciclo de nivel superior. Se adapta a las partes excelentes de la tecnología digital pasada en un nivel superior y es de gran importancia. al sistema MCU (Unidad de microchip) es una especie de superación, que ha dado un salto cualitativo en el funcionamiento técnico del diseño electrónico y la composición general del sistema. 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 puede tocar los límites físicos de los circuitos de silicio y tiene modos de trabajo en serie y paralelo, alta velocidad, alta confiabilidad y amplia aplicabilidad. . aspectos sexuales y muchos otros.
No solo eso, a medida que la tecnología EDA y FPGA/CPLD se desarrollan en el profundo campo submicrónico, los límites físicos y funcionales entre ellos y los dispositivos independientes como MCU, MPU, DSP, A/D, D/A, RAM y ROM han cambiado. También cambió. Se está poniendo borroso. Especialmente con el rápido desarrollo de la industria de chips IP blandos y duros (chip de propiedad intelectual; núcleo de propiedad intelectual, un diseño de circuito con derechos de propiedad registrados), los dispositivos y sistemas integrados FPGA estándar y de uso general en un chip (SOC) están cerca de mano. El estatus irreemplazable de FPGA/CPLD va acompañado del auge de la industria de chips IP con fuertes características de economía basada en el conocimiento. Con su estatus irreemplazable y el consiguiente auge de la industria de chips IP con fuertes características de economía basada en el conocimiento, ha atraído cada vez más atención por parte de los expertos de la industria.
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. El nivel de integración se ha desarrollado hasta el nivel actual de millones de puertas. El dispositivo lógico programable complejo CPLD se desarrolla a partir de PAL (Programmable Array Logic, lógica de matriz programable) o GAL (Generic Array Logic, lógica de matriz general). Utiliza líneas de interconexión metálicas globales, por lo que tiene una mayor previsibilidad de retardo y es fácil de controlar 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 el dispositivo lógico programable, y combina las características de los dos, por lo que la FPGA tiene la alta densidad lógica y la versatilidad de la matriz de puertas, y tiene las características programables por el usuario de las matrices programables. dispositivos lógicos. FPGA suele ser una matriz compuesta de celdas lógicas programables (o macrocélulas) que separan los recursos de cableado, y también hay un chip completo compuesto 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 en la práctica 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 el dispositivo una vez y no se pueden modificar después de la programación. Sus ventajas son una alta integración, frecuencia de funcionamiento y confiabilidad, y es 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 mediante un cable de descarga. Para programar el dispositivo usando el cable de descarga, simplemente suelde el dispositivo a la placa de circuito impreso y genere la señal de nivel lógico estándar de 5 V, 3,3 V o 2,5 V, también conocido como método de programación ISP (In System Programmable), también es muy conveniente para depuración y mantenimiento. Los datos de programación para dispositivos basados en SRAM se almacenan en el área RAM del dispositivo, lo que le permite tener una funcionalidad diseñada 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 sistema.
2.2.2 Proceso de desarrollo FPGA/CPLD basado en herramientas EDA
Proceso de desarrollo FPGA/CPLD: El diseño parte del editor de texto o gráfico de la herramienta EDA, con texto (como como VHDL, expresa la intención de diseño del diseñador en forma de programa Verilog-HDL) o gráficos (diagrama esquemático, diagrama de estado, etc.). Expresar la intención del diseño utilizando texto (como programas VHDL, Verilog-HDL) o gráficos (esquemas, diagramas de estado, etc.). Una vez completada la descripción del diseño, se puede utilizar el compilador para compilarlo en un formato de texto específico para depurarlo y prepararlo para el siguiente paso de síntesis.
Aquí, como ocurre con la mayoría del software EDA, los formularios de entrada específicos para el diseño inicial son opcionales y se pueden combinar. El método de entrada del diagrama esquemático general es relativamente fácil de dominar, intuitivo y conveniente. El diagrama esquemático del circuito dibujado (tenga en cuenta que este tipo de diagrama esquemático es esencialmente diferente del diagrama esquemático dibujado con PROTEL) es exactamente el mismo que el del dispositivo tradicional. método de conexión y es fácil de aceptar, y hay muchos componentes individuales listos para usar que se pueden usar en el editor, y también pueden diseñar componentes de acuerdo con sus necesidades (la función del componente se puede expresar en HDL) (el. La función del componente se puede expresar en HDL o aún se puede expresar en un diagrama esquemático). Por supuesto, el método de entrada más versátil y común es el método textual de los programas HDL. Este método es el más versátil. Si el archivo compilado es un archivo VHDL estándar, el contenido se puede simular y describir antes de la síntesis, lo que se denomina simulación de comportamiento. Es decir, el programa fuente de diseño se entrega 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 simulación, VHDL se puede utilizar completamente para declaraciones de control de simulación. Este proceso de simulación es muy necesario para diseñar sistemas de circuitos a gran escala, pero en general, 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 vincula el diseño de software con la realizabilidad del hardware y convierte el software en pasos críticos del circuito. La síntesis de archivos fuente por parte del sintetizador es específica de la familia de productos de un proveedor específico de FPGA/CPLD, por lo que los resultados de la síntesis se pueden implementar en hardware. Después de la síntesis, el sintetizador HDL generalmente puede generar archivos netlist en formato EDIF, XNF o VHDL, que describen 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 resultante 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 especificadas 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. En el diseño general, este nivel de simulación también puede omitirse. La síntesis requiere el uso de adaptadores de cableado/ubicación FPGA/CPLD para realizar operaciones de mapeo lógico en el archivo netlist sintetizado para un dispositivo de destino específico, incluida la configuración del dispositivo subyacente, partición lógica, optimización lógica, ubicación y enrutamiento, etc. Una vez completada la adaptación, el software EDA producirá una serie de resultados para este diseño: 1. Informe de adaptación: que incluye la asignación y utilización de recursos del chip, el bloqueo de pines y la descripción de la ecuación booleana del diseño 2. Simulación de tiempo con el archivo netlist; Descargue archivos, como archivos JED o POF; 4 informes de errores de adaptación. 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 mayor. Los archivos Netlist para simulación de tiempos contienen información de retraso más precisa. Si no se encuentran problemas en todos los procesos anteriores, incluida la compilación, síntesis, cableado/adaptación, simulación de comportamiento, simulación funcional y simulación de sincronización, es decir, se cumplen los requisitos del diseño original, el archivo de configuración/descarga del adaptador se puede generado a través del programador FPGA/CPLD O descargue el cable y cárguelo en el chip FPGA o CPLD de destino, y luego continúe con el paso final que se muestra en la Figura 1-2: simulación o prueba de hardware para verificar el funcionamiento del diseño de una manera más detallada. entorno realista. La llamada simulación de hardware aquí es para el diseño ASIC. En el diseño ASIC, un método común es usar FPGA para probar funcionalmente el diseño del sistema y luego implementar el diseño VHDL en forma de ASIC después de pasar la prueba, mientras que la prueba de hardware es probar el FPGA o CPLD utilizado directamente en el sistema de circuito; .
2.2.3 Ventajas y desventajas del uso del desarrollo 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. . problema.
En comparación con las MCU, las ventajas de FPGA/CPLD son múltiples y fundamentales:
1. Los productos FPGA/CPLD adoptan cada vez más la tecnología avanzada de prueba de escaneo de límites (BST) IEEE 1149.1 (fabricada por Joint Test Action Group JTAG Development). e ISP (Método de programación de configuración en el sistema). Todo o parte del FPGA/CPLD en el sistema en funcionamiento se puede programar en el sistema en cualquier momento con un voltaje de funcionamiento de 5 V y puede realizar la llamada programación en serie de múltiples chips en cadena tipo margarita, y casi no hay límite en el número de descargas y tiempos de programación de una estructura SRAM (como la serie FLEXI 10K de Altera). Este tipo de programación se logra fácilmente mediante programación infrarroja, ultrasónica o inalámbrica, o programación remota en línea a través de una línea telefónica. Estas funciones tienen usos especiales en control industrial, instrumentación inteligente, comunicaciones y campos militares.
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 los campos de aplicaciones de velocidad ultraalta y medición y control en tiempo real.
3. Alta confiabilidad. En el campo de las aplicaciones de alta confiabilidad, la falta de MCU deja mucho espacio para la aplicación de FPGA/CPLD. Además de las deficiencias inherentes de un reinicio poco confiable y el posible descontrol de las PC exclusivas de las MCU, la alta confiabilidad de FPGA/CPLD también se refleja 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 haciéndolo más fácil de manejar y proteger.
4. Las herramientas de desarrollo y los lenguajes de diseño están estandarizados y el ciclo de desarrollo es corto. Dado que la escala de integración de FPGA/CPLD es muy grande, el nivel de integración puede alcanzar millones de puertas. Por lo tanto, el diseño y desarrollo de FPGA/CPLD debe utilizar potentes herramientas EDA para el diseño de sistemas electrónicos y desarrollo de 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 el proceso de diseño, casi no tiene nada que ver con la estructura de hardware del dispositivo FPGA/CPLD utilizado.
Por lo tanto, varios tipos de software de bloques de funciones lógicas diseñados con éxito tienen buena compatibilidad y portabilidad. Se pueden aplicar a casi cualquier modelo de FPGA/CPLD y también se pueden reconocer en forma de derechos de propiedad intelectual. Y está registrado como el llamado chip IP, lo que mejora 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, la simulación es conveniente y en tiempo real, el proceso de desarrollo es vívido e intuitivo y hay pocos factores de hardware involucrados, se puede completar un diseño de sistema muy complejo en poco tiempo, lo cual es la razón del rápido desarrollo de este producto. Lo más valioso de ingresar al mercado. American TI cree que las funciones del ASIC 80 se pueden sintetizar utilizando chips IP y otra lógica disponible en el mercado. Los expertos de EDA predicen que el diseño FPGA/CPLD de sistemas a gran escala en el futuro será simplemente la reaplicación de varias lógicas y el ensamblaje de chips IP, con un ciclo de diseño tan corto como unos pocos minutos.
5. Potente y muy utilizado. Actualmente, FPGA/CPLD tiene una amplia gama de aplicaciones para elegir y se pueden seleccionar chips con diferentes capacidades según las diferentes aplicaciones. Se pueden utilizar para implementar casi cualquier forma de circuito digital o diseño de sistema digital. Con la aplicación generalizada de dichos dispositivos y la importante reducción de costos, la tasa de aplicación directa de FPGA/CPLD en sistemas está cerca del desarrollo de ASIC. Al mismo tiempo, el enfoque de diseño FPGA/CPLD tiene sus limitaciones.
Esto se refleja principalmente en los siguientes aspectos:
(1). El software de diseño FPGA/CPLD generalmente requiere una optimización de la síntesis lógica (síntesis y optimización del segmento lógico) del circuito para obtener resultados fáciles de implementar. , existen ciertas diferencias en la implementación lógica y la latencia entre el diseño final y el diseño original. Por lo tanto, algunas formas de circuito comúnmente utilizadas en los métodos de diseño tradicionales (especialmente algunos circuitos secuenciales asíncronos) no son adecuados para los métodos de diseño FPGA/CPLD. para saber más sobre las características del software de diseño FPGA/CPLD para obtener diseños optimizados;
(2) FPGA generalmente utiliza una estructura de tabla de búsqueda (LUT) (Xilinx) y una estructura AND-OR (). Altera) o estructura multiplexora (Actel). La ventaja de estas estructuras es que son programables, pero la desventaja es que el retraso es demasiado grande, lo que provoca una desviación del retraso entre las señales de sincronización en el diseño original. El circuito es grande. El tiempo de retardo y el desplazamiento de tiempo son aún mayores debido a la necesidad de una implementación segmentada. Los problemas de retardo son problemas comunes en el diseño de ASIC, especialmente en lógica programable como FPGA/CPLD. La capacidad y la cantidad de E/S de FPGA/CPLD son limitadas. Por lo tanto, un circuito más grande requiere múltiples chips FPGA/CPLD para realizar la división lógica (partición lógica), la calidad del algoritmo de partición afecta directamente el rendimiento del diseño.
(4) Dado que el costo de modificación de la placa PCB del sistema de destino es muy alto, los usuarios generalmente esperan modificar el circuito mediante asignaciones de pines fijos. Sin embargo, cuando la tasa de utilización del chip aumenta o el chip tiene. más pines de E/S, modificaciones menores a menudo reducirán el rendimiento del chip;
(5) Los primeros chips FPGA no pueden implementar alguna forma especial de circuitos, como memoria y circuitos analógicos. Algunos de los últimos productos FPGA se integran. Estructuras RAM de uso general Sin embargo, esta estructura no se utiliza por completo o no puede satisfacer completamente las necesidades de los diseñadores. Esta contradicción proviene de la estructura de la FPGA en sí. >
6. Aunque FPGA realiza la simulación de hardware del diseño ASIC, las características de retardo de FPGA y las formas ASIC tradicionales, como la matriz de puertas y la unidad estándar, son diferentes. Al trasplantar el diseño FPGA a otros diseños ASIC, el diseño aún puede fallar. Para retrasar la falta de coincidencia, han surgido a nivel internacional sistemas de simulación de hardware de matriz FPGA a ASIC (como el sistema de simulación de hardware de Quicktum, que utiliza una combinación de software y hardware para implementar prototipos rápidos de ASIC). el sistema puede aceptar puntos de prueba designados, que se pueden observar directamente en la matriz FPGA (como 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 (HDL)
El lenguaje de descripción de hardware (HDL) es relativo a los lenguajes de software informático generales 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 las conexiones de los sistemas electrónicos. Los diseñadores pueden usar programas HDL para describir los sistemas de circuitos requeridos y especificar sus características estructurales y comportamientos de circuitos, luego pueden usar sintetizadores y adaptadores para controlar las estructuras internas de FPGA y CPLD e implementar estructuras de nivel de puerta o de bajo nivel de las funciones lógicas correspondientes; .Netlist archivos y descargar archivos. El lenguaje de descripción de hardware tiene las siguientes ventajas: a. Tecnología de diseño completa, métodos flexibles y amplia gama de soporte. b. Acelera el ciclo de diseño de circuitos de hardware y reduce la dificultad de diseñar circuitos de hardware. c. Utilizar la simulación temprana del sistema para descubrir y eliminar los problemas existentes en las primeras etapas del diseño del sistema. d. El diseño del lenguaje puede ser independiente de la tecnología del proceso. e. El lenguaje está estandarizado y normalizado para facilitar la comunicación.
En términos de desarrollo de FPGA/CPLD, el lenguaje VHDL es uno de los lenguajes de descripción de hardware más utilizados y populares. Este diseño utiliza el lenguaje VHDL. El lenguaje VHDL se presentará principalmente a continuación.
2.3.1 Introducción a VHDL
VHDL es la abreviatura de Lenguaje de descripción de hardware de circuito integrado de muy alta velocidad, que fue desarrollado por el Departamento de Defensa de EE. UU. en la década de 1970. y 1980. Fue desarrollado en las décadas de 1970 y 1980 bajo el proyecto VHSIC (Circuito Integrado de Muy Alta Velocidad) financiado por el Departamento de Defensa de Estados Unidos y nació en 1982. A finales de 1987, el IEEE (Instituto de Ingenieros Eléctricos y Electrónicos de Producción) reconoció VHDL como lenguaje de descripción de hardware estándar. Desde que IEEE anunció la versión del estándar VHDL ((estándar IEEE std 1076-1987)), las empresas EDA lanzaron sus propios entornos de diseño VHDL. En 1993, IEEE revisó VHDL y amplió las capacidades de abstracción y descripción del sistema de VHDL desde un nivel superior. Nueva versión de VHDL, a saber, ANSI/IEEE std1076, versión 1993.
VHDL se utiliza principalmente para describir la estructura, el comportamiento, la función y la interfaz de sistemas digitales y es muy adecuado para el diseño de aplicaciones de lógica programable. chips y otros. En comparación con HDL, VHDL tiene capacidades de descripción de comportamiento más sólidas, lo que determina que es el mejor lenguaje de descripción de hardware en el campo del diseño de sistemas. La poderosa capacidad de descripción de comportamiento es evitar estructuras de dispositivos específicas y describir y diseñar a gran escala. sistemas electrónicos del comportamiento lógico Garantía importante En lo que respecta a las herramientas EDA y sintetizadores VHDL actualmente populares, no es un problema sintetizar programas VHDL basados en un estilo de descripción de comportamiento abstracto en archivos netlist de dispositivos de destino específicos, como FPGA y CPLD.
El lenguaje desempeñará el mismo papel en el campo del diseño de hardware que el lenguaje C y C en el campo del diseño de software, y gradualmente reemplazará el nivel inferior. Los métodos engorrosos de descripción de hardware, como tablas de estado lógico y diagramas de circuitos lógicos, se convertirán en la principal herramienta de descripción de hardware y se convertirán en un lenguaje que todos los técnicos en el campo del diseño de sistemas digitales deben dominar. Como un poderoso método de diseño, la combinación de VHDL y. Los dispositivos lógicos programables permitirán a los diseñadores implementar VHDL en el menor tiempo posible. Lanzamiento del producto al mercado
2.3.2 Pasos de diseño de VHDL
El diseño utilizando VHDL se puede dividir en los siguientes pasos. :
1. Defina los requisitos de diseño. Antes de escribir código VHDL, debe comprender claramente el propósito y los requisitos del diseño. Por ejemplo, ¿cuáles son las funciones que desea diseñar y el tiempo de configuración de la señal? reloj/tiempo de salida, frecuencia operativa máxima del sistema, ruta crítica, etc. Los requisitos deben tener una definición clara, lo que le ayudará a diseñar, luego seleccionar el método de diseño apropiado y la estructura del dispositivo correspondiente, y sintetizar el diseño.
2. Utilice el lenguaje VHDL para describir el diseño.
(1) Se deben determinar los métodos de diseño: diseño de arriba hacia abajo, diseño de abajo hacia arriba y diseño plano.
Los dos primeros métodos incluyen la generación a nivel de diseño, mientras que el último enfoque trata el circuito descrito como un circuito de un solo módulo. El enfoque de arriba hacia abajo requiere que el diseño se divida en elementos funcionales, cada uno de los cuales tiene entradas y salidas específicamente definidas y realiza funciones lógicas especializadas. Primero, se genera un módulo de nivel superior formado por la interconexión de componentes funcionales para formar una lista de red, y luego se diseña cada componente en la lista de red. Un enfoque ascendente es todo lo contrario.
El diseño plano, por otro lado, significa que todos los componentes funcionales están detallados en la misma capa y en el mismo diagrama.
(2) Escribir código de diseño. Escribir código en VHDL es muy diferente a escribir código en otros lenguajes de programación de computadoras. Debe darse cuenta de que está diseñando hardware y que el código VHDL que escriba debe poder sintetizarse en lógica digital implementada mediante dispositivos lógicos programables. Comprender cómo funciona generalmente el software de simulación y síntesis en las herramientas EDA le ayudará a escribir un buen código.
3. Utilice un simulador VHDL para realizar una simulación funcional en el código VHDL original. Para diseños grandes, simularlos con el software de simulación VHDL puede ahorrar tiempo y los errores en el diseño se pueden encontrar en las primeras etapas del diseño para que puedan corregirse para minimizar el impacto en el cronograma de diseño. Debido a que la síntesis, optimización y configuración a menudo toman horas para diseños grandes, simular el código original antes de la síntesis puede reducir en gran medida la cantidad y el tiempo de iteraciones de diseño y correcciones de errores. Sin embargo, para diseños pequeños, normalmente no es necesario simular primero el código VHDL original, e incluso si se simulara, no tendría mucho sentido. Esto se debe a que, para diseños pequeños, la optimización y configuración integrales toman muy poco tiempo y, después de una optimización integral, a menudo encontrará que necesitará modificar su diseño para lograr sus objetivos de rendimiento. En este caso, el tiempo que el usuario dedica a simular previamente el código original no tiene sentido porque una vez modificado el diseño, se debe volver a simular la simulación.
4. Utilice software de optimización y síntesis VHDL para sintetizar y optimizar el código VHDL original. Después de seleccionar el dispositivo de destino e ingresar restricciones, las herramientas de software de optimización y síntesis de VHDL procesan el código VHDL sin procesar, generan una lista de redes optimizada y realizan simulaciones de sincronización aproximada. El proceso de procesamiento de la herramienta de software de optimización integral es aproximadamente el siguiente: primero, se detectan errores de sintaxis y semánticos, luego se realiza la síntesis. Para los dispositivos CPLD, se obtendrá un conjunto de ecuaciones lógicas específicas del proceso y, para los dispositivos FPGA, una. se obtendrá una lista de red específica del proceso Finalmente, la optimización, la optimización de CPLD generalmente implica reducir la lógica a la suma mínima de términos del producto, reducir la cantidad de bloques lógicos necesarios para cualquier expresión dada y reducir la cantidad de entradas de bloques lógicos requeridas para cualquier expresión. Dada la expresión, estas ecuaciones se pasan a través de una asignación adicional de recursos específica para la optimización del dispositivo. La optimización de FPGA también requiere a menudo expresar la lógica como una suma de términos de producto. El sistema de ecuaciones se puede factorizar en función de los recursos específicos del dispositivo y los criterios basados en objetivos de optimización. Los factores factorizados se pueden usar para evaluar la efectividad de la implementación. Los criterios se pueden usar para determinar si se debe factorizar el sistema FPGA de manera diferente o conservarlo. los existentes Hay factores. La pauta suele ser la capacidad de compartir *** los mismos factores, es decir, los factores pueden organizarse para facilitar la comparación con cualquier factor recién generado.
5. Configuración. El proceso de colocar la lista de redes optimizada resultante del proceso de optimización de síntesis en un dispositivo de destino CPLD o FPGA previamente seleccionado se llama configuración. Optimización