Red de conocimiento informático - Material del sitio web - Mejora de la calidad general de VHDL en el desarrollo de PLD

Mejora de la calidad general de VHDL en el desarrollo de PLD

Con el desarrollo de la tecnología informática y microelectrónica, la automatización del diseño electrónico (EDA) (Automatización del diseño electrónico) y los dispositivos lógicos programables (PLD) se han desarrollado muy rápidamente. El software EDA se utiliza de manera competente para desarrollar dispositivos PLD. Se ha convertido en una habilidad básica que los ingenieros electrónicos deben dominar. Las herramientas EDA avanzadas han cambiado del método de diseño tradicional de abajo hacia arriba a un método de diseño de arriba hacia abajo, que se utiliza para describir el diseño a nivel del sistema y soportar la simulación del sistema. y el diseño y la fabricación de ASIC (circuito integrado de aplicación específica) integrado de alto nivel pueden ser completados por ingenieros electrónicos en el laboratorio. Todo esto se debe a la aparición de dispositivos PLD y al soporte del potente software EDA, el más utilizado. Los dispositivos PLD de densidad actual son principalmente una matriz de puertas programables en campo FPGA (Field Programmable Gate Array) y un dispositivo lógico programable complejo CPLD (el software EDA complejo programable se puede dividir aproximadamente en dos categorías

① EDA proporcionado). por fabricantes de dispositivos PLD Las herramientas más famosas incluyen Altera's Max plus II y Quartus II Foundation Series de Xilinx Sistema ispEXERT de Latice Vantis

② El software de herramientas integral de uso común para herramientas EDA proporcionadas por compañías de software profesionales de terceros incluye Synopsys El FPGA Compiler II del software de herramientas de terceros Synplify de LeonardoSpectrum Synplicity Company de Exemplar Logic Company es un complemento y una optimización del software de desarrollo del fabricante de CPLD/FPGA. Generalmente se cree que Max plus II y Quartus II no tienen VHDL/Verilog potente. Capacidades de síntesis lógica HDL El uso de herramientas HDL dedicadas para la síntesis lógica mejorará efectivamente la calidad de la síntesis

Desarrollo de dispositivos PLD

El diseño CPLD/FPGA se está volviendo 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 general. Los lenguajes de descripción de hardware más importantes en la actualidad son VHDL (Very High Speed ​​​​Integrated Circuit HDL) y Verilog HDL. según los estándares IEEE El proceso completo de uso del lenguaje VHDL/Verilog HDL para desarrollar circuitos lógicos programables es el siguiente:

① La edición de texto se puede realizar con cualquier editor de texto, pero generalmente se realiza. se realiza en un entorno de edición HDL dedicado porque los entornos de desarrollo integrados profesionales generalmente proporcionan varias plantillas estructurales y pueden personalizar varios elementos (por ejemplo, comentarios de cadenas de palabras clave, etc.) la visualización en color mejora la legibilidad y la eficiencia de entrada

 ② Simulación funcional : transfiera el archivo al software de simulación HDL para simulación funcional y verificar 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 análisis y procesamiento lógico, es decir, convierta la descripción de alto nivel (descripción de nivel de flujo de datos o comportamiento) en una salida de lista de red de bajo nivel (descripción de nivel de registro y puerta). El software de síntesis lógica generará el archivo estándar de la industria EDA en formato EDIF (formato de intercambio de diseño electrónico). es el factor más crítico que afecta la calidad general en el proceso de desarrollo de PLD. Hay dos factores, a saber, la calidad del código y

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 coloque y enrute el archivo EDIF en el software proporcionado por el fabricante del PLD para ensamblarlo (para CPLD) o colocar y enrutar (para FPGA). La lógica diseñada se escribe en el dispositivo CPLD/FPGA.

⑥ La simulación de sincronización es una simulación de retardo: dado que diferentes dispositivos y diferentes diseños y cableado tienen diferentes efectos en la demora, es un paso esencial realizar una simulación de sincronización en el sistema para verificar el rendimiento del diseño y eliminar los riesgos de competencia

Los conceptos básicos del uso del lenguaje VHDL para el diseño y desarrollo de PLD El proceso es como 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, sin embargo, si elige una herramienta de síntesis EDA dedicada como complemento para una optimización lógica completa y una calidad de diseño integral, será mejor. La función principal del software de síntesis de terceros es sintetizar lógicamente los archivos fuente del lenguaje HDL para generar. Archivo estándar de la industria EDA de edf, y luego transfiera el archivo edf al software de desarrollo proporcionado por el fabricante de PLD para la compilación, programación del dispositivo de simulación y otros procesos, y finalmente complete todo el proceso Diseñado para los dispositivos CPLD de Altera, elegimos 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. A continuación se muestra una breve introducción a la aplicación de los dos software Quartus II

Quartus II es la cuarta generación de Altera. Entorno de desarrollo integrado de dispositivo lógico programable que proporciona todas las funciones, desde la entrada de diseño hasta la programación del dispositivo. Quartus II puede generar y reconocer archivos netlist EDIF, archivos netlist VHDL y archivos netlist Verilog HDL para otras herramientas EDA. Proporciona una interfaz conveniente para ejecutar automáticamente otras herramientas EDA. en el entorno integrado Quartus II

El proceso de desarrollo utilizando el 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 nuevo proyecto en el menú Archivo... El asistente guía al diseñador para completar la creación del proyecto cuando el diseñador lo necesita. enviar información al proyecto Al agregar un nuevo archivo VHDL, puede optar por agregarlo a través de la opción Nuevo

 ( ) Compilación de diseño

Las funciones completadas por el compilador Quartus II incluyen la verificación errores de diseño, síntesis de lógica y extracción de información de sincronización. Los archivos de salida generados por la segmentación de adaptación en dispositivos específicos de la serie Altera se utilizarán para el análisis de sincronización de simulación de diseño y los diagramas de programación del dispositivo. Interfaz avanzada FlowTabs del software LeonardoSpectrum ① Primero asegúrese de que el software esté en Compile. Modo, que se puede seleccionar a través del menú Procesamiento

② Seleccione el elemento Configuración del compilador en el menú Procesamiento como se muestra en la figura para realizar la síntesis de configuración del modo de selección del dispositivo, configuración de opciones de adaptación, verificación de diseño, etc.

③ Haga clic en el elemento Iniciar compilación en el menú Procesamiento para iniciar el proceso de compilación.

④ Vea los resultados de la compilación como se muestra en la figura. Podemos obtener un informe de compilación detallado.

() Análisis de tiempo de diseño

Haga clic en Configuración de tiempo en el menú Proyecto... la opción puede completar convenientemente el parámetro de tiempo

La función de análisis de tiempos del software Quartus II se ejecuta automáticamente después de que se completa el proceso de compilación y se muestra en la carpeta Análisis de tiempos del informe de compilación como se muestra en la figura. Entre ellos, podemos obtener la frecuencia más alta fmax, el tiempo de configuración tSU. del registro de entrada, pin a pin. Informes detallados sobre parámetros de tiempo 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 sincronizació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 excitación para el simulador. También pueden generar archivos de formas de onda vectoriales (vwf) en el editor de formas de onda del software Quartus II. como excitación para el simulador. El método de edición de forma de onda es el mismo que el de MAX PLUS. El funcionamiento del software II es similar. Seleccione la opción Modo de simulación en el menú Procesamiento para ingresar al modo de simulación. cuadro para la configuración de simulación Aquí puede seleccionar el modo de simulación del archivo de estímulo (simulación funcional o simulación de tiempo), etc. Haga clic en Ejecutar simulador para iniciar el proceso de simulación

 ()Programación del dispositivo

. Los diseñadores pueden descargar los datos de configuración al dispositivo a través del cable de comunicación MasterBlaster o ByteBlasterMV, configurar y programar el dispositivo a través del modo de configuración serial pasiva o modo JTAG, y también pueden configurar y programar el dispositivo en el modo de configuración serial pasiva o modo JTAG. Programe varios dispositivos en modo JTAG Cuando utilice el software Quartus II para programar o configurar dispositivos, primero debe abrir el programador (seleccione abrir el archivo de descripción de cadena en la opción de menú Nuevo. Puede configurar el modo de programación en el programador (Modo). cuadro desplegable) Configuración de hardware (cuadro de diálogo Programación de hardware) y selección de archivos de programación (botón Agregar archivo...) Guarde la configuración anterior para generar un archivo cdf, que almacena el nombre del dispositivo, el diseño del dispositivo y la configuración del hardware, entre otros. Cuando el proceso anterior sea correcto, haga clic en el botón Inicio. Puede comenzar a programar y configurar el dispositivo.

Aplicación del software LeonardoSpectrum

LeonardoSpectrum es un software integral profesional VHDL/Verilog HDL. de Exemplar Logic, una subsidiaria de Mentor Graphics. Es fácil de usar y relativamente controlable. Puede sintetizarse y optimizarse en LeonardoSpectrum y generar archivos EDIF como entrada de compilación para QuartusII. ) Modo de configuración rápida (finalización rápida) Advanced FlowTabs (proceso detallado) Las funciones completadas por los tres métodos son básicamente las mismas. El método Synthesis Wizard es el más simple y el método Advanced FlowTabs es el más completo. como se muestra en la figura para completar las siguientes funciones: selección de dispositivo, archivo de diseño, restricción de entrada, designación, optimización, selección, configuración del archivo netlist de salida y selección para llamar a la herramienta de ubicación y enrutamiento

Cada paso anterior proporciona ayuda correspondiente. Es simple y claro. Cabe señalar que al ingresar los archivos de diseño, el orden de los archivos debe estar ordenado correctamente. De esta manera, el software Leonardo Spectrum. puede crear información de datos correctamente Una vez completada la síntesis de la biblioteca, el archivo netlist de salida (EDF) se puede utilizar como archivo de entrada de diseño para MAX PLUS II o Quartus II, y luego los pasos como la compilación, el análisis de tiempo de simulación y la programación del dispositivo. se completan para completar el proceso de diseño de todo el sistema (A) (B) (C) (D) El impacto del método de codificación VHDL en la calidad integral

El lenguaje VHDL admite todas las funciones de simulación, pero no todas se pueden sintetizar. Muchas descripciones de hardware y estructuras de simulación de programas VHDL no tienen circuitos digitales correspondientes para implementar. Algunas descripciones se pueden asignar en teoría. Sin embargo, no se puede garantizar su precisión. Por ejemplo, el modelo de retardo se puede optimizar de manera efectiva para algunas descripciones de circuitos de nivel de transferencia de registro RTL (Nivel de transferencia de registro) con la mejora de la tecnología de algoritmo integral. descripciones generales del circuito, tan completas. Si el resultado satisface las limitaciones de tiempo y de área dadas también depende del método de codificación VHDL. A continuación se presentan algunas experiencias que creo que serán útiles e inspiradoras para mejorar la calidad integral.

  <. /p>

 ( ) Compartir recursos

Por ejemplo, en los siguientes dos fragmentos de código (A) se necesita un sumador para completar la misma función con ligeras modificaciones (B) solo se necesita un sumador , reduciendo efectivamente el área de uso

El uso apropiado de paréntesis para la recombinación a veces puede lograr el intercambio de recursos. Por ejemplo, en los siguientes dos fragmentos de código (C) y (D), se puede implementar el sumador. ingresando las señales byc en (D). ***Disfrute

( ) Utilice enteros de rango restringido

El rango de enteros sin restricciones en VHDL es ~ Esto significa que en Se necesitan la menor cantidad de bits para representarlo, pero normalmente esto provocará un desperdicio de recursos. Algunos programas completos se optimizarán automáticamente, pero el tiempo consumido es considerable. Por lo tanto, si no necesita toda la gama de datos enteros, es mejor especificarlos. el rango Por ejemplo

signal *** all_int: integer range downto;

*** all_int en este ejemplo solo requiere bits en lugar de bits, lo que ahorra efectivamente el área del dispositivo.

() usando módulos macro

Cuando está en VHDL Cuando se usan estructuras lógicas generales como lógica aritmética, lógica relacional, etc., la mayoría del software de desarrollo EDA y las herramientas de síntesis especiales generalmente incluyen módulos macro optimizados para específicos. Los procesos para que podamos elegir funcionalmente se pueden dividir en macromódulos de circuito secuencial, macromódulos de circuito aritmético y macromódulos de memoria. Tienen muchas funciones. La alta eficiencia de ejecución hace que el área de resultados de la síntesis sea más pequeña y de mayor frecuencia. Por supuesto, son específicos del proceso, lo que hará que el programa VHDL dependa de la familia de dispositivos específica, lo que afectará la portabilidad (E) (F) ( ) Optimización de diseño avanzada

Los métodos anteriores son completos. optimización sin cambiar su funcionalidad A veces podemos cambiar ligeramente su función para mejorar la eficiencia general sin afectar las restricciones de las especificaciones de diseño. Consulte los siguientes dos ejemplos (E) y (F)

En (E) el. La herramienta de síntesis crea un contador ascendente y un comparador completo. En (F), la herramienta de síntesis crea un contador descendente y un comparador para cero constante. Dado que en comparación con las constantes, es más fácil de implementar y ocupa menos unidades lógicas, por lo que (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 siga siendo la misma, se deben evitar las siguientes declaraciones durante la síntesis.

 ◇ Evite el uso de esperar a xx ns. Esta declaración no se sintetizará en los componentes del circuito real.

 ◇ Evite el uso de después de xx ns al sintetizar con la herramienta de síntesis. Se ignorarán las declaraciones posteriores

◇ Evite asignar valores iniciales al declarar señales y variables porque la mayoría de las herramientas de síntesis ignorarán las declaraciones de inicialización. Si se utilizan declaraciones de inicialización, los resultados de la síntesis y los resultados de la simulación serán diferentes lishixinzhi/Article /program/qrs/. 201311/11080