Mejora de la calidad integral de VHDL en el desarrollo de PLD
Las herramientas EDA proporcionadas por los fabricantes de dispositivos PLD son relativamente conocidas, como Max plus II de Altera y la serie Foundation Latice Vantis de Quartus II Xilinx y el sistema ispuats de Quartus II Xilinx.
② Las herramientas de síntesis comúnmente utilizadas para herramientas EDA proporcionadas por compañías de software profesionales de terceros incluyen FPGA Compiler II de Synopsys, LeonardoSpectrum Synplicity de Exemplar Logic y software de terceros desarrollado por fabricantes de FPGA para CPLD/suplementación de software y Optimización del software Synplify. Por ejemplo, Max plus II y Quartus II generalmente se consideran débiles en la síntesis lógica VHDL/Verilog HDL. Si se utilizan herramientas HDL dedicadas para la síntesis lógica, la calidad de la síntesis mejorará efectivamente.
El desarrollo de dispositivos lógicos programables
El diseño de CPLD/FPGA es cada vez más complejo. El uso de lenguajes de descripción de hardware para diseñar circuitos lógicos programables se ha convertido en una tendencia generalizada. Actualmente, los lenguajes de descripción de hardware más importantes son VHDL (Very High Speed Integrated Circuit HDL) y Verilog HDL, ambos identificados como estándares IEEE. El proceso completo de desarrollo de circuitos lógicos programables con lenguaje VHDL/Verilog HDL es el siguiente
La edición de texto se puede realizar con cualquier editor de texto, pero normalmente en un entorno de edición HDL especializado, porque los entornos de desarrollo integrados profesionales suelen ser varios. Se proporcionarán plantillas de estructura y se puede personalizar la visualización en color de varios elementos (como comentarios de cadenas de palabras clave, etc.) para mejorar la legibilidad y la eficiencia de entrada.
②Simulación funcional: transfiera el archivo al software de simulación HDL para la simulación funcional y verifique si la función lógica es correcta.
③Optimización y síntesis lógica: transfiera los archivos fuente al software de síntesis lógica para el análisis lógico, es decir, convierta descripciones de alto nivel (descripciones de nivel de flujo de datos o comportamiento) en salidas de lista de red de bajo nivel (registro y puerta). -descripciones de nivel). El software de síntesis lógica generará archivos estándar de la industria EDA en formato EDIF (Electronic Design Interchange Format). Hay dos factores clave que afectan la calidad integral en el desarrollo de PLD, a saber, la calidad del código y el rendimiento integral del software.
④Adaptación y segmentación Si todo el diseño excede los recursos de la unidad macro o de la unidad de E/S del dispositivo, el diseño se puede dividir en varios dispositivos de la misma serie.
⑤ Ensamblaje o colocación y enrutamiento Transfiera el archivo EDIF al software proporcionado por el fabricante del PLD para ensamblaje (para CPLD) o colocación y enrutamiento (para FPGA), es decir, escribir la lógica diseñada en el CPLD /Dispositivo FPGA.
⑥Simulación de tiempo, es decir, simulación de retraso. Dado que diferentes dispositivos y diferentes diseños tienen diferentes efectos en el retraso, la simulación de tiempo es un paso esencial para verificar el rendimiento del diseño del sistema.
El proceso básico de diseño y desarrollo de PLD utilizando el lenguaje VHDL se muestra en la figura.
Si elige el dispositivo CPLD de Altera como dispositivo de destino, el proceso anterior se puede completar en el entorno de desarrollo integrado Max plus II o Quartus II proporcionado por Altera, pero si elige una herramienta de integración EDA dedicada como complemento para una optimización lógica completa y completa. diseño, la calidad del software integrado de terceros será mejor. La función principal es sintetizar lógicamente archivos fuente en lenguaje HDL, generar archivos edf estándar de la industria EDA y luego transferir los archivos edf al software de desarrollo proporcionado por el fabricante de PLD para la compilación y programación del dispositivo de simulación, y finalmente completar todo el diseño. Para los dispositivos CPLD de Altera, elegimos el modelo de desarrollo combinado EDA de Quartus II LeonardoSpectrum. Más importante aún, la mayoría de los entusiastas del aprendizaje pueden obtenerlo de forma gratuita en el sitio web. La siguiente es una breve introducción a la aplicación del software Quartus II.
Quartus II es el entorno de desarrollo integrado de dispositivos lógicos programables de cuarta generación de Altera, que proporciona todas las funciones, desde la entrada de diseño hasta la programación del dispositivo. Quartus II puede generar e identificar archivos netlist EDIF, archivos netlist VHDL y archivos netlist Verilog HDL, proporcionando una interfaz conveniente para otras herramientas EDA y puede ejecutar automáticamente otras herramientas EDA en el entorno integrado de Quartus II.
El proceso de desarrollo del software Quartus II se puede resumir en los siguientes pasos: entrada del diseño, compilación del diseño, análisis de tiempos del diseño, simulación del diseño y programación del dispositivo.
() Entrada de diseño
El software Quartus II proporciona un asistente para nuevos proyectos en el menú Archivo... Este asistente guía a los diseñadores para completar la creación del proyecto. Cuando los diseñadores necesitan agregar un nuevo archivo VHDL al proyecto, pueden optar por agregarlo a través de la nueva opción.
()Diseñar y compilar
El compilador Quartus II tiene las siguientes funciones: verificar errores de diseño, extraer de manera integral información de sincronización lógica, adaptar y dividir dispositivos específicos de la serie Altera y generar archivos. se utilizará para el análisis de tiempos de simulación de diseño y diagramas de programación de dispositivos. Interfaz avanzada FlowTabs del software LeonardoSpectrum ① Primero asegúrese de que el software esté en modo de compilación, que se puede seleccionar a través del menú de procesamiento.
②Seleccione el elemento de configuración del compilador en el menú de procesamiento, como se muestra en la figura, para realizar la síntesis de configuración del modo de selección del dispositivo, la configuración de opciones de adaptación, la verificación del diseño, etc.
③Haga clic en el elemento Iniciar compilación en el menú Procesamiento para iniciar el proceso de compilación.
(4) Verifique los resultados de la compilación como se muestra en la figura, podemos obtener un informe de compilación detallado.
() Análisis de tiempos de diseño
Haga clic en la opción Configuración de tiempos... en el menú del proyecto para configurar convenientemente los parámetros de tiempo. La función de análisis de tiempo del software Quartus II se ejecutará automáticamente después de que se complete el proceso de compilación y se mostrará en la carpeta de análisis de tiempo del informe de compilación como se muestra en la figura, en la que podemos obtener el tiempo de configuración de la frecuencia más alta. pin tSU del registro de entrada fmax. Los informes detallados de los parámetros de temporización, como el retardo del pin tPD, el reloj del registro de salida al retardo de salida tCO y el tiempo de retención de entrada tH, pueden determinar claramente si se cumplen los requisitos de temporización del sistema.
() Simulación de diseño
El software Quartus II permite a los diseñadores utilizar archivos vectoriales basados en texto (vec) como estímulos para el simulador, o en el editor de formas de onda del software Quartus II Generar vector archivos de forma de onda (vwf) como formas de onda de excitación para el simulador. El método de edición es similar al software MAX PLUS II. Seleccione la opción del modo de simulación en el menú de procesamiento para ingresar. Modo de simulación Seleccione Configuración del simulador... Cuadro de diálogo Configuración de simulación. Aquí puede seleccionar el modo de simulación del archivo de simulación (Simulación funcional o Simulación de tiempo) y hacer clic en Ejecutar simulador para iniciar el proceso de simulación.
()Programación del dispositivo
Los diseñadores pueden descargar datos de configuración al dispositivo a través del cable de comunicación MasterBlaster o ByteBlasterMV y programar el dispositivo a través del modo de configuración serial pasiva o el modo JTAG. También pueden programar múltiples dispositivos en modo JTAG. Cuando utilice el software Quartus II para programar o configurar un dispositivo, primero debe abrir el programador (seleccione Abrir Chai en la nueva opción de menú). n archivo de descripción) En el programador, puede configurar el modo de programación (cuadro desplegable de modo), configurar el hardware (cuadro de diálogo de hardware de programación) y seleccionar el archivo de programación (botón agregar archivo...). Guarde la configuración anterior para generar un archivo cdf que almacene el nombre del dispositivo, el diseño del dispositivo y la configuración del hardware, y otra información de programación. Cuando el proceso anterior sea correcto, haga clic en el botón Inicio para comenzar a programar el dispositivo.
Aplicación del software Leo Spectrum
LeonardoSpectrum es un VHDL/profesional de Exemplar Logic, una subsidiaria de Mentor Graphics. El software integral Verilog HDL es fácil de usar y altamente controlable. Se puede realizar una optimización integral en LeonardoSpectrum para generar un archivo EDIF como entrada de compilación de QuartusII. Este software tiene tres métodos de síntesis lógica: asistente de síntesis, configuración rápida y pestaña de proceso avanzado (consulte el proceso detallado). Los tres métodos realizan básicamente las mismas funciones. El método Synthesis Wizard es el más simple y el método Advanced FlowTabs es el más completo. Este método tiene seis opciones y completa las siguientes funciones como se muestra en la figura. Selección de dispositivos, restricciones de entrada de archivos de diseño, selección de optimización, configuración de archivos de lista de red de salida y herramientas de ruta y lugar de llamada de selección.
Cada paso anterior proporciona la ayuda correspondiente, que es simple y clara. Cabe señalar que al ingresar archivos de diseño, el orden de los archivos debe estar organizado correctamente, con los archivos inferiores al frente y los archivos superiores atrás, para que el software LeonardoSpectrum pueda construir correctamente la base de datos. Una vez completada la síntesis, el archivo netlist de salida (EDF) se puede utilizar como entrada de diseño para MAX PLUS II o Quartus II. Luego complete la compilación, la simulación, el análisis de tiempo, la programación del dispositivo y otros pasos para completar el proceso de diseño de todo el sistema (a), (b), (c), (El impacto del método de codificación VHDL en la calidad integral.
VHDL El lenguaje admite todas las funciones de simulación, pero no todas se pueden integrar. Muchas descripciones de hardware y estructuras de simulación de programas VHDL no se implementan mediante los circuitos digitales correspondientes. Teóricamente, algunas descripciones se pueden asignar a los circuitos digitales correspondientes. No se puede garantizar el rendimiento, como el modelo de retardo. Con la mejora de la tecnología del algoritmo de síntesis, algunas descripciones de circuitos de nivel de transferencia de registro RTL (Nivel de transferencia de registro) se pueden optimizar de manera efectiva, pero esto no es suficiente para circuitos más generales. descripciones, por lo que si los resultados de la síntesis cumplen con las limitaciones de tiempo y de área dadas depende del método de codificación VHDL. Se cree que la siguiente experiencia es útil e inspiradora para mejorar la calidad general. recursos* * *
Por ejemplo, en los siguientes dos fragmentos de código, (a) solo se necesita un sumador para completar la misma función, (b) solo se necesita un sumador para reducir efectivamente el área utilizada.
A veces se puede lograr el uso de corchetes para reorganizar recursos. * * * Compartir, por ejemplo, las señales de entrada B y C en los siguientes dos códigos (C) y (D) (D) pueden lograrlo. * * * compartir el sumador.
() Enteros de rango restringido
En VHDL, el rango de valores de enteros sin restricciones es ~, lo que significa que debe representarse mediante. al menos bits, pero esto generalmente resulta en un desperdicio total de recursos. El software los optimiza automáticamente, pero el consumo de tiempo es considerable, por lo que si no necesita todo el rango de datos enteros, es mejor especificar el rango, por ejemplo. .
señal *** all_int: rango de enteros hasta
*** all_int solo requiere bits en lugar de bits en este ejemplo, lo que ahorra efectivamente área del dispositivo.
()Utilice módulos macro
Cuando se utilizan estructuras lógicas comunes, como la lógica aritmética y la lógica relacional en VHDL, la mayoría del software de desarrollo EDA y las herramientas de síntesis dedicadas suelen incluir módulos macro optimizados específicos del proceso. Están disponibles para que elijamos. Estos módulos se pueden dividir en macromódulos de circuito secuencial, macromódulos de circuito aritmético y macromódulos de memoria. Funcionan de manera eficiente, lo que da como resultado resultados de síntesis más pequeños, mayor frecuencia y tiempos de compilación más cortos. Por supuesto, son específicos del proceso, lo que hace que el programa VHDL dependa de una familia de dispositivos específica, lo que afecta la portabilidad (E) (F) Optimización del diseño avanzado.
El método anterior está completamente optimizado sin cambiar su funcionalidad. A veces podemos cambiar ligeramente sus funciones y mejorar la eficiencia general sin obstaculizar las restricciones de las especificaciones de diseño. Consulte los siguientes dos ejemplos (e) y (f).
En (e), la herramienta de síntesis construye un contador incremental y un comparador completo. En (f), la herramienta de síntesis construye un contador regresivo y un comparador con un valor constante de cero. Debido a que las comparaciones con constantes son más fáciles de implementar y ocupan menos unidades lógicas, (f) el programa es más eficiente.
Además, dado que la herramienta de síntesis solo puede admitir un subconjunto de VHDL, para garantizar que la simulación antes y después de la síntesis sea consistente, se deben evitar las siguientes declaraciones durante la síntesis.
◇Evite el uso de la declaración wait xx ns, que no se integrará en los componentes reales del circuito.
◇ Evite el uso de after xx ns, la declaración after se ignorará al sintetizar con herramientas de síntesis.
Evite asignar valores iniciales al declarar señales y variables, ya que la mayoría de herramientas de síntesis ignoran las declaraciones de inicialización. Si se utilizan declaraciones de inicialización, los resultados de la síntesis y la simulación serán diferentes.
Lishi Xinzhi/Artículo/programa/QRS/201311/11080