stringtranslate.com

Síntesis lógica

En ingeniería informática , la síntesis lógica es un proceso mediante el cual una especificación abstracta del comportamiento deseado del circuito , generalmente en el nivel de transferencia de registros (RTL), se convierte en una implementación de diseño en términos de puertas lógicas , generalmente mediante un programa de computadora llamado herramienta de síntesis . Ejemplos comunes de este proceso incluyen la síntesis de diseños especificados en lenguajes de descripción de hardware , incluidos VHDL y Verilog . [1] Algunas herramientas de síntesis generan flujos de bits para dispositivos lógicos programables como PAL o FPGA , mientras que otras apuntan a la creación de ASIC . La síntesis lógica es un paso en el diseño de circuitos en la automatización del diseño electrónico , los otros son el lugar, la ruta , la verificación y la validación .

Historia

Las raíces de la síntesis lógica se remontan al tratamiento de la lógica por parte de George Boole (1815 a 1864), en lo que ahora se denomina álgebra booleana . En 1938, Claude Shannon demostró que el álgebra de Boole de dos valores puede describir el funcionamiento de circuitos de conmutación. En los primeros días, el diseño lógico implicaba manipular las representaciones de la tabla de verdad como mapas de Karnaugh . La minimización de la lógica basada en mapas de Karnaugh se guía por un conjunto de reglas sobre cómo se pueden combinar las entradas en los mapas. Normalmente, un diseñador humano sólo puede trabajar con mapas de Karnaugh que contengan entre cuatro y seis variables.

El primer paso hacia la automatización de la minimización lógica fue la introducción del algoritmo Quine-McCluskey que podría implementarse en una computadora. Esta técnica de minimización exacta presentó la noción de implicantes primos y coberturas de costos mínimos que se convertirían en la piedra angular de la minimización de dos niveles . Hoy en día, el minimizador lógico heurístico Espresso, mucho más eficiente, se ha convertido en la herramienta estándar para esta operación. [ necesita actualización ] Otra área de investigación inicial fue la minimización del estado y la codificación de máquinas de estados finitos (FSM), una tarea que fue la pesadilla de los diseñadores. Las aplicaciones de la síntesis lógica se encuentran principalmente en el diseño de computadoras digitales. Por tanto, IBM y Bell Labs desempeñaron un papel fundamental en la automatización temprana de la síntesis lógica. La evolución de componentes lógicos discretos a matrices lógicas programables (PLA) aceleró la necesidad de una minimización eficiente de dos niveles, ya que minimizar términos en una representación de dos niveles reduce el área en un PLA.

Los circuitos lógicos de dos niveles tienen una importancia limitada en un diseño de integración a muy gran escala (VLSI); la mayoría de los diseños utilizan múltiples niveles de lógica. Casi cualquier representación de circuito en RTL o descripción de comportamiento es una representación de varios niveles. Uno de los primeros sistemas que se utilizó para diseñar circuitos multinivel fue el LSS de IBM. Usó transformaciones locales para simplificar la lógica. El trabajo sobre LSS y el Yorktown Silicon Compiler impulsó un rápido progreso en la investigación en síntesis lógica en la década de 1980. Varias universidades contribuyeron poniendo sus investigaciones a disposición del público, en particular SIS de la Universidad de California, Berkeley , RASP de la Universidad de California, Los Ángeles y BOLD de la Universidad de Colorado, Boulder . En una década, la tecnología migró a productos comerciales de síntesis lógica ofrecidos por empresas de automatización de diseño electrónico.

Herramientas comerciales

Los principales desarrolladores y proveedores de paquetes de software de síntesis lógica son Synopsys , Cadence y Siemens . Sus herramientas de síntesis son Synopsys Design Compiler, Cadence First Encounter y Siemens Precision RTL.

Elementos lógicos

El diseño lógico es un paso en el ciclo de diseño estándar en el que el diseño funcional de un circuito electrónico se convierte en la representación que captura operaciones lógicas , operaciones aritméticas , flujo de control , etc. Un resultado común de este paso es la descripción RTL . El diseño lógico suele ir seguido del paso de diseño del circuito . En la automatización del diseño electrónico moderno , partes del diseño lógico se pueden automatizar utilizando herramientas de síntesis de alto nivel basadas en la descripción del comportamiento del circuito. [2]

Varias representaciones de operaciones booleanas.

Las operaciones lógicas suelen consistir en operaciones booleanas AND, OR, XOR y NAND, y son las formas más básicas de operaciones en un circuito electrónico. Las operaciones aritméticas suelen implementarse mediante el uso de operadores lógicos.

De alto nivel o conductual

Con el objetivo de aumentar la productividad del diseñador, los esfuerzos de investigación sobre la síntesis de circuitos especificados a nivel de comportamiento han llevado al surgimiento de soluciones comerciales en 2004, [3] que se utilizan para diseños complejos de ASIC y FPGA. Estas herramientas sintetizan automáticamente circuitos especificados utilizando lenguajes de alto nivel, como ANSI C/C++ o SystemC, a una especificación de nivel de transferencia de registro (RTL), que se puede utilizar como entrada para un flujo de síntesis lógica a nivel de puerta. [3] Al utilizar la síntesis de alto nivel, también conocida como síntesis ESL, el compilador realiza la asignación de trabajo a los ciclos de reloj y a través de componentes estructurales, como las ALU de punto flotante, mediante un procedimiento de optimización, mientras que con la síntesis lógica RTL ( incluso desde Verilog conductual o VHDL, donde un hilo de ejecución puede realizar múltiples lecturas y escrituras en una variable dentro de un ciclo de reloj), esas decisiones de asignación ya se han tomado.

Minimización lógica multinivel

Las implementaciones prácticas típicas de una función lógica utilizan una red multinivel de elementos lógicos. A partir de una descripción RTL de un diseño, la herramienta de síntesis construye una red booleana multinivel correspondiente .

A continuación, esta red se optimiza utilizando varias técnicas independientes de la tecnología antes de realizar optimizaciones dependientes de la tecnología. La función de costo típica durante las optimizaciones independientes de la tecnología es el recuento literal total de la representación factorizada de la función lógica (que se correlaciona bastante bien con el área del circuito).

Finalmente, la optimización dependiente de la tecnología transforma el circuito independiente de la tecnología en una red de puertas en una tecnología determinada. Las estimaciones de costos simples se reemplazan por estimaciones más concretas, basadas en la implementación, durante y después del mapeo tecnológico. El mapeo está limitado por factores como las puertas disponibles (funciones lógicas) en la biblioteca de tecnología, los tamaños de las unidades para cada puerta y las características de retardo, potencia y área de cada puerta.

Ver también

Referencias

  1. ^ "Síntesis: Verilog to Gates" (PDF) .
  2. ^ Naveed A. Sherwani (1999). Algoritmos para la automatización del diseño físico VLSI (3ª ed.). Editores académicos de Kluwer. pag. 4.ISBN 978-0-7923-8393-2.
  3. ^ ab EETimes: Las implementaciones de síntesis de alto nivel permiten ESL [ enlace muerto permanente ]

Otras lecturas

enlaces externos