Optimización del diseño de FPGA y mejora del programa
Optimización del diseño de FPGA y mejora del programa
En el diseño de FPGA, es muy importante aclarar primero la escritura del código fuente HDL. Las diferentes herramientas de síntesis incluyen diferentes subconjuntos de síntesis, lo que da como resultado algunos HDL; Las declaraciones no se pueden sintetizar en algunas herramientas de síntesis; la misma función lógica se puede describir mediante diferentes declaraciones HDL, pero los recursos ocupados pueden ser muy diferentes. Al mismo tiempo, debemos comprender profundamente que la concurrencia es la diferencia esencial entre los lenguajes de descripción de hardware y los lenguajes ordinarios de alto nivel. Por lo tanto, el diseño de circuitos de hardware no puede estar limitado por las restricciones tradicionales del pensamiento de ejecución secuencial.
Además, debe quedar claro que la optimización de la velocidad y la optimización del área juegan un papel importante en el diseño de FPGA. Para la mayoría de los diseños de sistemas digitales, la velocidad suele ser el primer requisito, pero las características arquitectónicas de FPGA, el rendimiento de la herramienta de síntesis, la composición del circuito del sistema, el diseño de PCB y la representación del código HDL pueden tener un impacto significativo en la velocidad de operación. Podemos utilizar métodos de diseño, ecualización de registros y ruta crítica en el diseño de estructuras de circuitos para optimizar la velocidad.
(1) Diseño de canalización
La tecnología de canalización es muy popular en la optimización de la velocidad. Puede aumentar significativamente el límite superior de la velocidad de trabajo del diseño del sistema en los microprocesadores de señales digitales y MCU modernos. y el diseño de sistemas digitales de alta velocidad son inseparables de la tecnología de tuberías. Las Figuras 4 y 5 son ilustraciones típicas del diseño de tuberías. La Figura 4 no utiliza un diseño de tuberías y la Figura 5 utiliza un diseño de tuberías de 2 etapas para cortar un bloque lógico combinacional con un gran retraso en dos bloques lógicos combinacionales con retrasos aproximadamente iguales. , e inserte un flip-flop en estos dos bloques lógicos combinacionales, que satisface la siguiente relación: Ta=T1+T2, T1?T2 A través del análisis, se puede ver que Fmax?1/Ta en la Figura 4; La frecuencia de la primera etapa de la tubería es Fmax1?1/T1, y la frecuencia máxima de operación de la segunda etapa de la tubería es Fmax2?1/T2?1/T1. La frecuencia máxima de diseño general es Fmax?Fmax1?Fmax2? 1/T1 Por lo tanto, la velocidad de diseño en la Figura 5 es casi el doble que la de la Figura 4.
(2) Equilibrio de registros
El equilibrio de registros optimiza la velocidad al equilibrar bloques lógicos de retardo combinatorio entre registros. La diferencia de retardo entre los dos bloques lógicos combinacionales es tan grande que la frecuencia operativa general del diseño, Fmax, depende del bloque de retardo máximo, T1, lo que limita el rendimiento general del diseño. Al mejorar el diseño de la Figura 7, parte de la lógica de la lógica combinacional 1 con un gran retraso se transfiere a la lógica combinacional 2 para convertirse en la estructura de la Figura 8, para reducir el retraso T1, de modo que t1?t2 y satisfacer T1 +T2=t1+t2 requisitos. Después de la traducción del registro, Fmax?1/t1>1/T1 en la estructura de la Figura 8 mejora la velocidad de diseño.
(3) Método de ruta crítica
La ruta crítica se refiere a la ruta lógica con el retraso más largo desde el extremo de entrada hasta el extremo de salida del diseño. La optimización de la ruta crítica es una. método eficaz para aumentar la velocidad del trabajo de diseño. En Td1>Td2 y Td1>Td3 en la Figura 9, la ruta crítica es el módulo con retraso Td1. Dado que el retraso de entrada a salida depende de la ruta con mayor retraso y no tiene nada que ver con otras rutas con retrasos menores, Td1. se reduce Puede mejorar el retraso general desde la entrada hasta la salida.
El método de la ruta crítica se puede utilizar de forma iterativa durante el proceso de optimización del diseño hasta que no se pueda reducir el retraso de la ruta crítica. Muchas herramientas de desarrollo de EDA ofrecen analizadores de tiempo que pueden ayudar a encontrar las rutas críticas con los retrasos más largos para que los diseñadores puedan mejorar sus diseños. Para diseños con estructuras fijas, el método de ruta crítica es el método preferido para optimizar la velocidad y puede usarse junto con otros métodos.
En el diseño de FPGA, la optimización del área es esencialmente la optimización de la utilización de recursos. Existen muchos métodos de implementación para la optimización del área, como el intercambio de recursos, la optimización lógica, la serialización, etc. ** * Es ampliamente utilizado, como se muestra a continuación.
Cuando se utiliza FPGA para diseñar sistemas digitales, a menudo es necesario llamar repetidamente al mismo módulo, como multiplicadores de varios bits, sumadores de avance rápido y otros módulos aritméticos. Una gran cantidad de recursos del chip, lo que resulta en que los costos del sistema y el consumo de energía del dispositivo hayan aumentado significativamente, por lo que el uso de recursos **** puede optimizar significativamente los recursos. La Figura 10 y la Figura 11 muestran un ejemplo típico de uso compartido de recursos. Al utilizar la tecnología de uso compartido de recursos, se ahorra un multiplicador de varios bits, lo que reduce el consumo de recursos y optimiza el área. ;