Vés al contingut

Síntesi lògica

De la Viquipèdia, l'enciclopèdia lliure

En enginyeria informàtica, la síntesi lògica és un procés pel qual una especificació abstracta del comportament del circuit desitjat, normalment a nivell de transferència de registre (RTL), es converteix en una implementació de disseny en termes de portes lògiques, normalment mitjançant un programa informàtic anomenat eina de síntesi. Els exemples habituals d'aquest procés inclouen la síntesi de dissenys especificats en llenguatges de descripció de maquinari, inclosos VHDL i Verilog. Algunes eines de síntesi generen fluxos de bits per a dispositius lògics programables com ara PAL o FPGA, mentre que d'altres tenen com a objectiu la creació d'ASIC. La síntesi lògica és un pas en el disseny de circuits en l'automatització del disseny electrònic, els altres són el lloc i la ruta i la verificació i validació.[1]

Història

[modifica]

Les arrels de la síntesi lògica es poden rastrejar al tractament de la lògica per George Boole (1815 a 1864), en el que ara s'anomena àlgebra de Boole. El 1938, Claude Shannon va demostrar que l'àlgebra de Boole de dos valors pot descriure el funcionament dels circuits de commutació. En els primers temps, el disseny lògic implicava manipular les representacions de les taules de veritat com a mapes de Karnaugh. La minimització de la lògica basada en mapes de Karnaugh està guiada per un conjunt de regles sobre com es poden combinar les entrades dels mapes. Normalment, un dissenyador humà només pot treballar amb mapes de Karnaugh que contenen fins a quatre o sis variables.[2]

El primer pas cap a l'automatització de la minimització lògica va ser la introducció de l'algoritme Quine-McCluskey que es podia implementar en un ordinador. Aquesta tècnica de minimització exacta va presentar la noció d'implicants principals i cobertures de costos mínims que es convertirien en la pedra angular de la minimització de dos nivells. Avui en dia, el minimitzador lògic heurístic Espresso, molt més eficient, s'ha convertit en l'eina estàndard per a aquesta operació. Una altra àrea d'investigació primerenca va ser la minimització d'estats i la codificació de màquines d'estats finits (FSM), una tasca que va ser la perdició dels dissenyadors. Les aplicacions de la síntesi lògica es troben principalment en el disseny d'ordinadors digitals. Per tant, IBM i Bell Labs van tenir un paper fonamental en l'automatització primerenca de la síntesi lògica. L'evolució de components lògics discrets a matrius lògics programables (PLA) va accelerar la necessitat d'una minimització eficient de dos nivells, ja que la minimització de termes en una representació de dos nivells redueix l'àrea en un PLA.[3]

Els circuits lògics de dos nivells tenen una importància limitada en un disseny d'integració a molt gran escala (VLSI); la majoria dels dissenys utilitzen diversos nivells de lògica. Gairebé qualsevol representació de circuit a RTL o Behavioral Description és una representació multinivell. Un dels primers sistemes que es va utilitzar per dissenyar circuits multinivell va ser LSS d'IBM. Va utilitzar transformacions locals per simplificar la lògica. El treball sobre LSS i el Yorktown Silicon Compiler va estimular el ràpid progrés de la recerca en síntesi lògica als anys vuitanta. Diverses universitats van contribuir fent que les seves investigacions estiguin disponibles al públic, sobretot SIS de la Universitat de Califòrnia, Berkeley, RASP de la Universitat de Califòrnia, Los Angeles i BOLD de la Universitat de Colorado, Boulder. En una dècada, la tecnologia va migrar als productes de síntesi lògica comercial que ofereixen les empreses d'automatització del disseny electrònic.[4]

Eines comercials

[modifica]

Els principals desenvolupadors i proveïdors de paquets de programari de síntesi lògica són Synopsys, Cadence i Siemens. Les seves eines de síntesi són Synopsys Design Compiler, Cadence First Encounter i Siemens Precision RTL.

Elements lògics

[modifica]

El disseny lògic és un pas del cicle de disseny estàndard en el qual el disseny funcional d'un circuit electrònic es converteix en la representació que captura operacions lògiques, operacions aritmètiques, flux de control, etc. Una sortida comuna d'aquest pas és la descripció RTL. El disseny lògic és seguit habitualment pel pas de disseny de circuits. En el disseny electrònic modern, les parts d'automatització del disseny lògic es poden automatitzar mitjançant eines de síntesi d'alt nivell basades en la descripció del comportament del circuit.

Diverses representacions d'operacions booleanes

Les operacions lògiques solen consistir en operacions booleanes AND, OR, XOR i NAND, i són les formes més bàsiques d'operacions en un circuit electrònic. Les operacions aritmètiques solen implementar-se amb l'ús d'operadors lògics.

Alt nivell o conductual

[modifica]

Amb l'objectiu d'augmentar la productivitat del dissenyador, els esforços d'investigació sobre la síntesi de circuits especificats a nivell de comportament han donat lloc a l'aparició de solucions comercials l'any 2004, que s'utilitzen per al disseny complex d'ASIC i FPGA. Aquestes eines sintetitzen automàticament circuits especificats mitjançant llenguatges d'alt nivell, com ANSI C/C++ o SystemC, a una especificació de nivell de transferència de registre (RTL), que es pot utilitzar com a entrada a un flux de síntesi lògica a nivell de porta. Utilitzant la síntesi d'alt nivell, també coneguda com a síntesi ESL, l'assignació de treball als cicles de rellotge i entre components estructurals, com ara les ALU de coma flotant, la fa el compilador mitjançant un procediment d'optimització, mentre que amb la síntesi lògica RTL (fins i tot des de Verilog comportamental o VHDL, on un fil d'execució pot fer múltiples lectures i escriptures d'aquestes variables dins d'un cicle d'escriptura).

Minimització lògica multinivell

[modifica]

Les implementacions pràctiques típiques d'una funció lògica utilitzen una xarxa multinivell d'elements lògics. A partir d'una descripció RTL d'un disseny, l'eina de síntesi construeix una xarxa booleana multinivell corresponent.

A continuació, aquesta xarxa s'optimitza mitjançant diverses tècniques independents de la tecnologia abans de realitzar optimitzacions depenent de la tecnologia. La funció de cost típica durant les optimitzacions independents de la tecnologia és el recompte literal total de la representació factoritzada de la funció lògica (que es correlaciona força bé amb l'àrea del circuit).

Finalment, l'optimització depenent de la tecnologia transforma el circuit independent de la tecnologia en una xarxa de portes en una tecnologia determinada. Les estimacions de costos simples se substitueixen per estimacions més concretes, basades en la implementació durant i després de la cartografia tecnològica. El mapeig està limitat per factors com ara les portes disponibles (funcions lògiques) a la biblioteca de tecnologia, les mides de les unitats per a cada porta i les característiques de retard, potència i àrea de cada porta.[5]

Referències

[modifica]
  1. «Logic Synthesis - an overview | ScienceDirect Topics» (en anglès). [Consulta: 22 març 2025].
  2. «Logic Synthesis in Digital Electronics» (en anglès americà), 17-07-2022. [Consulta: 22 març 2025].
  3. «A brief history of logic synthesis» (en anglès americà). [Consulta: 22 març 2025].
  4. «Introduction to Logic Synthesis» (en anglès). [Consulta: 22 març 2025].
  5. Sasao, Tsutomu «Switching Theory for Logic Synthesis» (en anglès). SpringerLink, 1999. DOI: 10.1007/978-1-4615-5139-3.