Articulo de referencia

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 de un circuito , generalmente a nivel de tr...

En ingeniería informática , la síntesis lógica es un proceso mediante el cual una especificación abstracta del comportamiento deseado de un circuito , generalmente a 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 informático 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 , como 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 se centran en la creación de ASIC . La síntesis lógica es un paso en el diseño de circuitos dentro de la automatización del diseño electrónico ; los otros son la colocación y el enrutamiento , y la verificación y validación .

Historia

Las raíces de la síntesis lógica se remontan al tratamiento de la lógica por George Boole (1815-1864), en lo que hoy se conoce como álgebra booleana . En 1938, Claude Shannon demostró que el álgebra booleana bivalente puede describir el funcionamiento de los circuitos de conmutación. En sus inicios, el diseño lógico implicaba la manipulación de 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 de los mapas. Un diseñador humano normalmente solo puede trabajar con mapas de Karnaugh que contienen entre cuatro y seis variables.

El primer paso hacia la automatización de la minimización lógica fue la introducción del algoritmo de Quine-McCluskey , que podía implementarse en una computadora. Esta técnica de minimización introdujo la noción de implicantes primos y coberturas de costo mínimo, 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.Otra área de investigación inicial fue la minimización de estados y la codificación de máquinas de estados finitos (FSM), una tarea que representaba un gran desafío para los diseñadores. Las aplicaciones de la síntesis lógica se centraban principalmente en el diseño de computadoras digitales. Por lo 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 los componentes lógicos discretos a las 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 una PLA.

Los circuitos lógicos de dos niveles tienen una importancia limitada en el 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 multinivel. Un sistema inicial utilizado para diseñar circuitos multinivel fue LSS de IBM. Este sistema utilizaba transformaciones locales para simplificar la lógica. El trabajo en LSS y el compilador de silicio Yorktown impulsó un rápido progreso en la investigación de la síntesis lógica en la década de 1980. Varias universidades contribuyeron poniendo sus investigaciones a disposición del público, entre las que destacan 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 se integró en los productos comerciales de síntesis lógica ofrecidos por las empresas de automatización del 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 del ciclo de diseño estándar en el que el diseño funcional de un circuito electrónico se convierte en una representación que captura las operaciones lógicas , las operaciones aritméticas , el 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 diseño del circuito . En la automatización del diseño electrónico moderno , partes del diseño lógico pueden automatizarse utilizando herramientas de síntesis de alto nivel basadas en la descripción del comportamiento del circuito. [ 2 ]

Diversas representaciones de operaciones booleanas

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

De alto nivel o conductual

Con el objetivo de aumentar la productividad de los diseñadores, los esfuerzos de investigación en la síntesis de circuitos especificados a nivel de comportamiento llevaron a la aparición de soluciones comerciales en 2004, [ 3 ] que se utilizan para el diseño de ASIC y FPGA complejos. Estas herramientas sintetizan automáticamente circuitos especificados usando lenguajes de alto nivel, como ANSI C/C++ o SystemC, a una especificación de nivel de transferencia de registros (RTL), que puede usarse como entrada para un flujo de síntesis lógica a nivel de puerta. [ 3 ] Usando la síntesis de alto nivel, también conocida como síntesis ESL, la asignación de trabajo a ciclos de reloj y a través de componentes estructurales, como ALU de punto flotante, la hace el compilador usando un procedimiento de optimización, mientras que con la síntesis lógica RTL (incluso desde Verilog o VHDL de comportamiento, donde un hilo de ejecución puede hacer 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 de lógica multinivel

Las implementaciones prácticas típicas de una función lógica utilizan una red multinivel de elementos lógicos. Partiendo 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 mediante diversas técnicas independientes de la tecnología antes de realizar optimizaciones dependientes de la misma. La función de coste típica durante las optimizaciones independientes de la tecnología es el número total de literales 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 compuertas 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 compuertas disponibles (funciones lógicas) en la biblioteca tecnológica, los tamaños de controlador para cada compuerta y las características de retardo, potencia y área de cada una.

Véase también

Referencias

  1. "Síntesis: Verilog a puertas lógicas" (PDF) .
  2. Naveed A. Sherwani (1999). Algoritmos para la automatización del diseño físico VLSI (3.ª ed.). Kluwer Academic Publishers. pág. 4. ISBN   978-0-7923-8393-2.
  3. 1 2 EETimes: Los despliegues de síntesis de alto nivel permiten ESL
  • Manual de automatización del diseño electrónico para circuitos integrados , por Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3Un estudio del campo de la automatización del diseño electrónico . El resumen anterior se extrajo, con permiso, del Volumen 2, Capítulo 2, Síntesis lógica, de Sunil Khatri y Narendra Shenoy.

Lecturas adicionales

  • Burgun, Luc; Greiner, Alain; Prado Lopes Eudes (octubre de 1994). «Un enfoque coherente en la síntesis lógica para arquitecturas FPGA». Actas de la Conferencia Internacional sobre ASIC . Pekín: 104-107 .
  • Jiang, Jie-Hong "Roland"; Devadas, Srinivas (2009). "Capítulo 6: Síntesis lógica en pocas palabras". En Wang, Laung-Terng; Chang, Yao-Wen; Cheng, Kwang-Ting (eds.). Automatización del diseño electrónico: síntesis, verificación y prueba . Morgan Kaufmann. ISBN 978-0-12-374364-0.
  • Hachtel, Gary D.; Somenzi, Fabio (2006) [1996]. Algoritmos de síntesis y verificación lógica . Springer Science & Business Media . ISBN 0-7923-9746-0.
  • Hassoun, Soha ; Sasao, Tsutomu, eds. (2002). Síntesis y verificación lógica . Kluwer. ISBN 978-0-7923-7606-4.
  • Perkowski, Marek A.; Grygiel, Stanislaw (1995-11-20). "6. Panorama histórico de la investigación sobre descomposición". Un estudio de la literatura sobre descomposición de funciones (PDF) . Versión IV. Grupo de Descomposición Funcional, Departamento de Ingeniería Eléctrica, Universidad de Portland, Portland, Oregón, EE. UU. CiteSeerX 10.1.1.64.1129 . Archivado (PDF) del original el 28-03-2021 . Recuperado el 28-03-2021 . (188 páginas)
  • Stanković, Radomir S. [en alemán] ; Sasao, Tsutomu; Astola, Jaakko Tapio [en finés] (agosto de 2001). "Publicaciones en los primeros veinte años de la teoría de conmutación y el diseño lógico" (PDF) . Serie del Centro Internacional de Procesamiento de Señales de Tampere (TICSP). Universidad Tecnológica de Tampere / TTKK, Monistamo, Finlandia. ISSN 1456-2774 . S2CID 62319288. #14. Archivado (PDF) del original el 9 de agosto de 2017. Recuperado el 28 de marzo de 2021 .  (4+60 páginas)
  • Logotipo de Wikimedia CommonsContenido multimedia relacionado con el diseño lógico en Wikimedia Commons.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Logic_synthesis&oldid=1300477405 "