Synteza logiczna - Logic synthesis

W techniki komputerowej , synteza logiczny jest procesem, w którym streszczenie określenie pożądanego obwodu zachowania, zazwyczaj w poziomie transferu rejestr (RTL) jest włączony do realizacji projektu pod względem bramek logicznych , zazwyczaj za pomocą programu komputerowego, zwanego narzędzia syntezy . Typowe przykłady tego procesu to synteza projektów określonych w językach opisu sprzętu , w tym VHDL i Verilog . Niektóre narzędzia do syntezy generują strumienie bitów dla programowalnych urządzeń logicznych, takich jak układy PAL lub FPGA , podczas gdy inne mają na celu tworzenie układów ASIC . Synteza logiczna jest jednym z aspektów automatyzacji projektowania elektronicznego .

Historia syntezy logicznej

Korzenie syntezy logiki można doszukiwać się w ujęciu logiki przez George'a Boole'a (1815-1864), w tym, co obecnie nazywa się algebrą Boole'a . W 1938 roku Claude Shannon wykazał, że dwuwartościowa algebra Boole'a może opisywać działanie obwodów przełączających. Na początku projektowanie logiki polegało na manipulowaniu reprezentacjami tabeli prawdy jako mapami Karnaugha . Minimalizacja logiki oparta na mapach Karnaugha opiera się na zestawie zasad dotyczących łączenia wpisów na mapach. Projektant-człowiek zazwyczaj może pracować tylko z mapami Karnaugha zawierającymi od czterech do sześciu zmiennych.

Pierwszym krokiem w kierunku automatyzacji minimalizacji logiki było wprowadzenie algorytmu Quine'a-McCluskeya, który można było zaimplementować na komputerze. Ta dokładna technika minimalizacji przedstawiła pojęcie głównych implikantów i pokrycia minimalnych kosztów, które stałyby się podstawą dwupoziomowej minimalizacji . W dzisiejszych czasach znacznie wydajniejszy minimalizator logiki heurystycznej Espresso stał się standardowym narzędziem do tej operacji. Innym obszarem wczesnych badań była minimalizacja stanu i kodowanie maszyn skończonych (FSM), zadanie, które było zmorą projektantów. Zastosowania syntezy logicznej leżą przede wszystkim w projektowaniu komputerów cyfrowych. Dlatego IBM i Bell Labs odegrały kluczową rolę we wczesnej automatyzacji syntezy logicznej. Ewolucja od dyskretnych elementów logicznych do programowalnych tablic logicznych (PLA) przyspieszyła potrzebę wydajnej minimalizacji na dwóch poziomach, ponieważ minimalizacja warunków w reprezentacji dwupoziomowej zmniejsza obszar w PLA.

Jednak dwupoziomowe obwody logiczne mają ograniczone znaczenie w projekcie integracji na bardzo dużą skalę (VLSI); większość projektów wykorzystuje wiele poziomów logiki. W rzeczywistości prawie każda reprezentacja obwodu w RTL lub opisie behawioralnym jest reprezentacją wielopoziomową. Wczesnym systemem używanym do projektowania obwodów wielopoziomowych był LSS firmy IBM. Używał lokalnych przekształceń, aby uprościć logikę. Prace nad LSS i Yorktown Silicon Compiler przyczyniły się do szybkiego postępu badań nad syntezą logiczną w latach 80. XX wieku. Kilka uniwersytetów wniosło swój wkład poprzez udostępnienie swoich badań opinii publicznej, w szczególności SIS z Uniwersytetu Kalifornijskiego w Berkeley , RASP z Uniwersytetu Kalifornijskiego w Los Angeles i BOLD z Uniwersytetu Kolorado w Boulder . W ciągu dekady technologia przeszła migrację do komercyjnych produktów syntezy logiki oferowanych przez firmy zajmujące się automatyzacją projektowania elektronicznego.

Elementy logiczne

Konstrukcja logiczny jest krokiem w standardowym cyklu konstrukcji, w których konstrukcja funkcyjną o układ elektroniczny jest przekształcany w reprezentację który rejestruje operacji logicznych , operacje arytmetyczne , kontroli przepływu , itp wspólne wyjście tego etapu jest opis RTL . Po projektowaniu logiki zwykle następuje etap projektowania obwodu . We współczesnej automatyzacji projektowania elektronicznego części projektu logicznego można zautomatyzować za pomocą wysokopoziomowych narzędzi syntezy opartych na behawioralnym opisie obwodu.

Różne reprezentacje operacji logicznych

Operacje logiczne zwykle składają się z operacji logicznych AND, OR, XOR i NAND i są najbardziej podstawowymi formami operacji w obwodzie elektronicznym. Operacje arytmetyczne są zwykle realizowane przy użyciu operatorów logicznych.

Synteza wysokiego poziomu lub synteza behawioralna

Mając na celu zwiększenie produktywności projektantów, wysiłki badawcze nad syntezą obwodów określonych na poziomie behawioralnym doprowadziły do ​​pojawienia się w 2004 roku rozwiązań komercyjnych, które są wykorzystywane do złożonych projektów układów ASIC i FPGA. Narzędzia te automatycznie syntetyzują obwody określone przy użyciu języków wysokiego poziomu, takich jak ANSI C/C++ lub SystemC, do specyfikacji poziomu transferu rejestru (RTL), która może być używana jako dane wejściowe do przepływu syntezy logicznej na poziomie bramki. Wykorzystując syntezę wysokiego poziomu, znaną również jako synteza ESL, alokacja pracy do cykli zegara i między komponentami strukturalnymi, takimi jak zmiennoprzecinkowe jednostki ALU, jest wykonywana przez kompilator przy użyciu procedury optymalizacji, podczas gdy w przypadku syntezy logicznej RTL (nawet z behawioralnej Verilog lub VHDL, gdzie wątek wykonania może wykonać wielokrotne odczyty i zapisy do zmiennej w cyklu zegara), te decyzje dotyczące alokacji zostały już podjęte.

Minimalizacja logiki wielopoziomowej

Typowe praktyczne implementacje funkcji logicznej wykorzystują wielopoziomową sieć elementów logicznych. Zaczynając od opisu projektu RTL, narzędzie do syntezy konstruuje odpowiednią wielopoziomową sieć logiczną .

Następnie sieć ta jest optymalizowana przy użyciu kilku technik niezależnych od technologii, zanim zostaną przeprowadzone optymalizacje zależne od technologii. Typową funkcją kosztu podczas optymalizacji niezależnych od technologii jest całkowita dosłowna liczba czynnikowej reprezentacji funkcji logicznej (która dość dobrze koreluje z powierzchnią obwodu).

Wreszcie optymalizacja zależna od technologii przekształca obwód niezależny od technologii w sieć bramek w danej technologii. Proste szacunki kosztów są zastępowane bardziej konkretnymi, opartymi na wdrożeniu szacunkami w trakcie i po mapowaniu technologii. Mapowanie jest ograniczone takimi czynnikami, jak dostępne bramki (funkcje logiczne) w bibliotece technologicznej, rozmiary napędów dla każdej bramki oraz charakterystyka opóźnienia, mocy i obszaru każdej bramki.

Zobacz też

Bibliografia

  • Podręcznik automatyzacji projektowania elektronicznego dla układów scalonych , Lavagno, Martin i Scheffer, ISBN  0-8493-3096-3 Przegląd w dziedzinie automatyzacji projektowania elektronicznego . Powyższe streszczenie zostało za pozwoleniem zaczerpnięte z tomu 2, rozdziału 2, Logic Synthesis autorstwa Sunila Khatri i Narendry Shenoy.

Dalsza lektura