En el diseño de circuitos digitales , el nivel de transferencia de registros ( RTL ) es una abstracción de diseño que modela un circuito digital sincrónico en términos del flujo de señales digitales ( datos ) entre registros de hardware y las operaciones lógicas realizadas en esas señales.
La abstracción a nivel de transferencia de registros se utiliza en lenguajes de descripción de hardware (HDL) como Verilog y VHDL para crear representaciones de alto nivel de un circuito, a partir de las cuales se pueden derivar representaciones de nivel inferior y, en última instancia, el cableado real. El diseño a nivel de transferencia de registros es una práctica típica en el diseño digital moderno. [1]
A diferencia del diseño de compiladores de software, donde el nivel de transferencia de registros es una representación intermedia y en el nivel más bajo, el nivel RTL es la entrada habitual sobre la que operan los diseñadores de circuitos. De hecho, en la síntesis de circuitos, a veces se utiliza un lenguaje intermedio entre la representación del nivel de transferencia de registros de entrada y la lista de conexiones de destino . A diferencia de la lista de conexiones, están disponibles construcciones como celdas, funciones y registros multibit. [2] Algunos ejemplos son FIRRTL y RTLIL.
El modelado a nivel de transacción es un nivel superior de diseño de sistemas electrónicos .
Un circuito síncrono consta de dos tipos de elementos: registros (lógica secuencial) y lógica combinacional . Los registros (generalmente implementados como flip-flops D ) sincronizan el funcionamiento del circuito con los flancos de la señal de reloj y son los únicos elementos del circuito que tienen propiedades de memoria. La lógica combinacional realiza todas las funciones lógicas del circuito y, por lo general, consta de puertas lógicas .
Por ejemplo, en la figura se muestra un circuito síncrono muy simple. El inversor está conectado desde la salida, Q, de un registro a la entrada del registro, D, para crear un circuito que cambia su estado en cada flanco ascendente del reloj, clk. En este circuito, la lógica combinacional consta del inversor.
Al diseñar circuitos integrados digitales con un lenguaje de descripción de hardware (HDL), los diseños suelen diseñarse a un nivel de abstracción más alto que el nivel de transistor ( familias lógicas ) o el nivel de compuerta lógica. En los HDL, el diseñador declara los registros (que corresponden aproximadamente a las variables en los lenguajes de programación informática) y describe la lógica combinacional mediante construcciones que son familiares en los lenguajes de programación, como if-then-else y las operaciones aritméticas. Este nivel se denomina nivel de transferencia de registros . El término se refiere al hecho de que el RTL se centra en describir el flujo de señales entre registros.
A modo de ejemplo, el circuito mencionado anteriormente se puede describir en VHDL de la siguiente manera:
D <= no Q ; proceso ( clk ) comienza si borde_ascendente ( clk ) entonces Q <= D ; fin si ; fin proceso ;
Si se utiliza una herramienta EDA para la síntesis, esta descripción se puede traducir directamente a un archivo de implementación de hardware equivalente para un ASIC o un FPGA . La herramienta de síntesis también realiza la optimización lógica .
A nivel de transferencia de registros, se pueden reconocer algunos tipos de circuitos. Si existe un camino cíclico de lógica desde la salida de un registro hasta su entrada (o desde las salidas de un conjunto de registros hasta sus entradas), el circuito se denomina máquina de estados o puede decirse que es lógica secuencial . Si existen caminos lógicos desde un registro hasta otro sin un ciclo, se denomina pipeline .
RTL se utiliza en la fase de diseño lógico del ciclo de diseño de circuitos integrados .
Una descripción RTL suele convertirse en una descripción a nivel de compuerta del circuito mediante una herramienta de síntesis lógica . Los resultados de la síntesis se utilizan luego mediante herramientas de colocación y enrutamiento para crear un diseño físico .
Las herramientas de simulación lógica pueden utilizar la descripción RTL de un diseño para verificar su exactitud.
Las herramientas de análisis de potencia más precisas están disponibles para el nivel de circuito, pero desafortunadamente, incluso con el modelado a nivel de interruptor en lugar de a nivel de dispositivo, las herramientas a nivel de circuito tienen desventajas como que son demasiado lentas o requieren demasiada memoria, lo que inhibe el manejo de chips grandes. La mayoría de estos son simuladores como SPICE y han sido utilizados por los diseñadores durante muchos años como herramientas de análisis de rendimiento. Debido a estas desventajas, las herramientas de estimación de potencia a nivel de compuerta han comenzado a ganar cierta aceptación, donde las técnicas más rápidas y probabilísticas han comenzado a ganar terreno. Pero también tiene su desventaja, ya que la aceleración se logra a costa de la precisión, especialmente en presencia de señales correlacionadas. A lo largo de los años se ha comprendido que las mayores ganancias en el diseño de bajo consumo no pueden provenir de optimizaciones a nivel de circuito y compuerta, mientras que las optimizaciones de arquitectura, sistema y algoritmo tienden a tener el mayor impacto en el consumo de energía. Por lo tanto, ha habido un cambio en la inclinación de los desarrolladores de herramientas hacia herramientas de análisis y optimización de alto nivel para la energía.
Es bien sabido que es posible lograr reducciones de potencia más significativas si se realizan optimizaciones en niveles de abstracción, como el nivel arquitectónico y algorítmico, que son más altos que el nivel de circuito o compuerta [3]. Esto proporciona la motivación necesaria para que los desarrolladores se concentren en el desarrollo de nuevas herramientas de análisis de potencia a nivel arquitectónico. Esto de ninguna manera implica que las herramientas de nivel inferior no sean importantes. En cambio, cada capa de herramientas proporciona una base sobre la cual se puede construir el siguiente nivel. Las abstracciones de las técnicas de estimación a un nivel inferior se pueden utilizar en un nivel superior con ligeras modificaciones.
Se trata de una técnica basada en el concepto de equivalentes de compuerta. La complejidad de la arquitectura de un chip se puede describir aproximadamente en términos de equivalentes de compuerta, donde el recuento de equivalentes de compuerta especifica el número promedio de compuertas de referencia que se requieren para implementar la función particular. La potencia total requerida para la función particular se calcula multiplicando el número aproximado de equivalentes de compuerta por la potencia promedio consumida por compuerta. La compuerta de referencia puede ser cualquier compuerta, por ejemplo, una compuerta NAND de 2 entradas.
Esta técnica personaliza aún más la estimación de potencia de varios bloques funcionales al tener un modelo de potencia independiente para la lógica, la memoria y la interconexión, lo que sugiere un método de aproximación del factor de potencia (PFA) para caracterizar individualmente una biblioteca completa de bloques funcionales, como multiplicadores, sumadores, etc., en lugar de un único modelo equivalente a una puerta para los bloques "lógicos".
La potencia de todo el chip se aproxima mediante la expresión:
Donde K i es la constante de proporcionalidad PFA que caracteriza al i -ésimo elemento funcional , es la medida de la complejidad del hardware y denota la frecuencia de activación.
G i, que denota la complejidad del hardware del multiplicador, está relacionada con el cuadrado de la longitud de la palabra de entrada, es decir, N 2, donde N es la longitud de la palabra. La frecuencia de activación es la velocidad a la que se realizan las multiplicaciones mediante el algoritmo denotado por y la constante PFA, , se extrae empíricamente de diseños de multiplicadores anteriores y se ha demostrado que es de aproximadamente 15 fW/bit2-Hz para una tecnología de 1,2 μm a 5 V. El modelo de potencia resultante para el multiplicador sobre la base de los supuestos anteriores es:
Ventajas:
Debilidad:
Se ha realizado un experimento con el error de estimación (en relación con la simulación a nivel de conmutación) para un multiplicador de 16x16 y se ha observado que cuando el rango dinámico de las entradas no ocupa por completo la longitud de palabra del multiplicador, el modelo UWN se vuelve extremadamente inexacto. [6] Es cierto que los buenos diseñadores intentan maximizar la utilización de la longitud de palabra, pero no son raros los errores en el rango del 50-100 %. La figura sugiere claramente una falla en el modelo UWN.