Jest to proces tłumaczenia opisu projektu przygotowanego na wysokim poziomie abstrakcji na zoptymalizowaną reprezentację na poziomie bramek logicznych w oparciu o zadaną technologiczną bibliotekę komórek standardowych. Zanim zbudowano narzędzia typu CAD taki proces odbywał się w umyśle projektanta. Współczesne narzędzia sprawiają, że: Synteza logiczna to automatyczny proces konstruowania opisu układu na poziomie bramek w oparciu o model układu przygotowany przez projektanta na poziomie przesłań rejestrowych RTL. Istnieją także narzędzia syntezy behawioralnej ale obecnie są jeszcze mało znane.
Lista konstrukcji Veriloga, które rozumiane są przez narzędzia syntezy logicznej: Konstrukcja Słowo kluczowe Uwagi Porty Parametry Definicje modułów Sygnały i zmienne Konkretyzacje Funkcje i zadania Procedury Bloki Przepływ danych Pętle Input, inout, output parameter module Wire, reg, tri Urealnienia modułów i komórek pierwotnych function, task always, if then else, case, casex, casez begin end assign for, while, forever Wektory są dozowlone Konstrukcje czasowe (np. # ) sa ignorowane initial jest niedozolony While i forever musza zawierać: @(posedge x) lub @(negedge x)
Uwagi Synteza ignoruje specyfikacje opóźnień #<opóźnienie>, co może prowadzić do sytuacji gdy wynik syntezy NIE będzie się zgadzał z wejściowym opisem RTL. Rolą projektanta jest używać takiego stylu kodowania aby nie powstały takie rozbieżności. Procedura initial nie jest przyjmowana przez syntezę dlatego konieczne jest zaprojektowanie mechanizmu zerowania służącego inicjacji sygnałów w układzie. Należy wyraźnie określać rozmiary zmiennych. Zmienne bez wymiaru mogą prowadzić do generacji za dużej netlisty zawierającej niepotrzebną logikę. Operatory działające na x i z (takie jak === i!===) są w syntezie niedozwolone ponieważ x i z są zbyt wieloznaczne dla syntezy. Przy pisaniu wyrażeń należy stosować nawiasy. Poleganie na priorytetach operatorów może skończyć się nadmiarową logiką.
Opis RTL Tłumaczenie Pośrednia reprezentacja nie optymalizowana Optymalizacja logiki Ograniczenia projektowe Mapowanie do technologii i optymalizacja Biblioteka technologiczna Optymalizowany opis na poziomie bramek
Opis RTL Tłumaczenie Pośrednia reprezentacja nie optymalizowana Optymalizacja logiki Mapowanie do technologii i optymalizacja Opis przygotowany w Verilogu przez projektanta i zweryfikowany za pomocą odpowiedniego wymuszenia. Kiedy projektant uzna, że opis zawiera funkcje zgodne z założeniami to można go zastosować jako plik wejściowy do narzędzia syntezy. Proste tłumaczenie do pośredniej nie zoptymalizowanej postaci bez uwzględniania ograniczeń i technologii. Wewnętrzna struktura danych nie widoczna dla użytkownika. Optymalizacja niezależna od technologii. Usuwa nadmiarową logikę. Wynikiem jest wewnętrzna zoptymalizowana struktura danych. Implementacja wewnętrznej struktury danych za pomocą komórek zdefiniowanych w bibliotece technologicznej. Dopiero w tym momencie projekt staje się zależny od technologii. Jeśli tworzymy układ scalony w technologii firmy AMS, CMOS 0,35µm to potrzebujemy plik technologiczny dla tej technologii. Dla narzędzi firmy Cadence jest tych plików kilka.
Biblioteka technologiczna Biblioteka zależności czasowych Timing Library Zawiera wszystkie informacje czasowe związane z konkretnym procesem technologicznym. Np. proces csx z AMS. Możliwe jest użycie następujących formatów (jednego lub połączenia obu): ALF - Ambit Library Format binarne pliki *.alf które zawierają opis funkcjonalny komórek w postaci równań, a także informacje takie jak: elektryczną charakterystyk końcówej, wejściowe pojemności, wyjściowe rezystancje i opóźnienia czasowe. TLF - ASCII Timing Library Format lub w wersji skompilowanej CTLF Biblioteka fizyczna Physical Library PKS i SE wymaga bibliotek fizycznych LEF - Library Exchange Format LEF pliki ASCII *.lef zawierają opis w specjalnym języku charakterystyk technologii i komórek bibliotecznych: informacje o pojemnościach i rezystancjach rozproszonych połączeń, dokładne rozmiary komórek i usytuowanie końcówek oraz informacje potrzebne do prowadzenia połączeń na różnych poziomach.
Biblioteka w Verilog-u Będzie też potrzebny opis komórek standardowych w Verilogu. Nasze biblioteki dla CMOS 0,35µm z AMS: TLF: csx_hrdlib.tlf LEF: csd.lef HRDLIB_3B.lef Verilog: csx_hrdlib.v - komórki stanadrdowe technologii csx udp.v komórki podstawowe dla wszystkich technologii AMS Ograniczenia Ograniczenia te dotyczą trzech aspektów: projektowe Timing układ musi działać z wymaganą prędkością, Area układ musi zmieścić się na zadanej powierzchni krzemu, Power układ nie może rozpraszać mocy powyżej pewnego limitu. Czasowe i fizyczne ograniczenia podajemy do SPR za pomocą skryptu TCL. Optymalizowany opis na poziomie bramek Zoptymalizowana netlista na bramkach jest weryfikowana za pomocą tych samych wymuszeń co wejściowa netlista RTL. Jeśli jakieś wymagania nie są spełnione należy poprawić RTL i ponowić syntezę. Jeśli wszystko się zgadza należ wygenerować layout a następnie plik GDSII i przesłać do fabryki.
Narzdzie syntezy logicznej firmy Cadence to: SPR - Synthesis Place-and-Route SPR czy funkcjonalno dwóch innych narzdzi Cadence: PKS - Physically Knowledgeable Synthesis SE - Silicon Ensemble place-and-route W ten sposób pakiet ten dostarcza kompleksowego narzędzia do projektowania cyfrowych układów scalonych w technologiach o rozmiarach dużo mniejszych niż mikrometr (deep sub-micron digital IC) począwszy od opisu RTL a skończywszy na bibliotece GDSII. RTL SP&R GDSII
Uwagi Dla uzyskania wielkich szybkości działania układów biblioteki dostarczane przez producenta mogą być nieodpowiednie. Dlatego dla projektów, dla których szybkość jest najważniejsza grupy projektowe same muszą tworzyć biblioteki i określać charakterystyki komórek. Dla uzyskania optymalnego układu cyfrowego należy stworzyć efektywny opis RTL i dokładnie określić ograniczenia projektowe. Reszta zależy od pliku technologicznego i oprogramowania. Dla projektów poniżej mikrona opóźnienia na połączeniach pomiędzy bramkami decydują o przydatności układu. Dlatego narzędzia do syntezy muszą współdziałać z narzędziami do generacji layoutu już na poziomie RTL.
Komparator 4-bitowy module mag_comp(a_gt_b, A_lt_B, A_eq_B, A, B); output A_gt_B, A_lt_B, A_eq_B; input [3:0] A, B; assign A_gt_B = (A > B); //A większe niż B assign A_lt_B = (A < B); //A mniejsze niż B assign A_eq_B = (A == B); //A równe B endmodule
Komparator 4-bitowy xatl APSC Synteza w technologii domyślnej xatl
Komparator 4-bitowy AMS APSC Synteza w technologii AMS 0,35µm csx
Maszyna sprzedająca gazety Specyfikacja: Gazeta kosztuje 15 centów Maszyna akceptuje tylko monety 10 centowe i 5 centowe Dokładna kwota musi być wrzucona. Maszyna nie wydaje reszty Poprawne kombinacje to: 10 i 5, trzy 5 centówki, 5 i 10 centów. Można wrzucić dwie 10 centówki ale nie będzie reszty. Wymagania dla układu: Wrzucenie monety formuje 2-bitowy sygnał coin[1:0]. Sygnał powstaje na opadającym zboczu zegara i trwa jeden okres zegara. Wyjściowy sygnał newspaper jest wysyłany gdy maszyna otrzyma 15 lub więcej centów. Sygnał ten traw przez jeden okres zegara i służy do otwarcia drzwiczek maszyny. Sygnał kasujący reset jest synchroniczny.
Maszyna sprzedająca gazety Wejście: brak monet, x0 coin[1:0] = 2 b00 5 centów, x5- coin[1:0] = 2 b01 10 centów, x10 - coin[1:0] = 2 b10 Wyjście: newspaper = 1 b1 otwarcie drzwiczek Stany: s0-0 centów s5 5 centów s10 10 centów s15 15 centów S0 -/1 S15 x5/0 x10/0 x0/0 x10/0 S10 x5/0 x10/0 x0/0 x5/0 APSC S5 x0/0