Czym różni się konstrukcja ASIC od syntezy FPGA HDL?

42

Mam pewne doświadczenie z pakietami narzędzi FPGA / HDL, takimi jak Xilinx ISE, Lattice Diamond itp. Ogólny przepływ pracy polega na pisaniu Verilog / VHDL, symulacji, testowaniu, a następnie programowaniu FPGA.

Słyszałem, że kilka osób mówi, że projekt ASIC jest zupełnie inny. Jakie zestawy narzędzi są używane dla dwóch głównych typów układów ASIC, układów ASIC na poziomie bramki i układów ASIC na poziomie tranzystorów? Szukałem narzędzi do syntezy wysokiego poziomu, takich jak Catapult C i Cadence C do Silicon, ale jeszcze nigdy nie próbowałem. Czy możesz wyjaśnić różne rodzaje narzędzi dostępnych w polu ASIC / FPGA, które mogą zmienić / przyspieszyć typowy przepływ pracy HDL?

Robinicks
źródło

Odpowiedzi:

39

Zazwyczaj projektowanie ASIC jest przedsięwzięciem zespołu ze względu na złożoność i ilość pracy. Podam przybliżoną kolejność kroków, chociaż niektóre kroki można wykonać równolegle lub w kolejności. Wymienię narzędzia, których użyłem do każdego zadania, ale nie będą one encyklopedyczne.

  1. Zbuduj bibliotekę komórek. (Alternatywnie, większość procesów ma biblioteki bram, które są dostępne w handlu. Poleciłbym to, chyba że wiesz, że potrzebujesz czegoś, co nie jest dostępne.) Obejmuje to zaprojektowanie wielu bramek siły napędu dla tylu funkcji logicznych, ile potrzeba, zaprojektowanie sterowników / odbiorników padów, oraz wszelkie makra, takie jak mnożnik macierzy lub pamięć. Po zaprojektowaniu i zweryfikowaniu schematu dla każdej komórki należy zaprojektować układ fizyczny. W tym procesie wykorzystałem Cadence Virtuoso wraz z symulatorami obwodów analogowych, takimi jak Spectre i HSPICE .

  2. Scharakteryzuj bibliotekę komórek. (Jeśli masz bibliotekę bramkową innej firmy, zwykle dzieje się to za Ciebie.) Każda komórka w bibliotece musi zostać zasymulowana, aby wygenerować tabele czasowe dla analizy statycznego pomiaru czasu (STA). Obejmuje to pobranie gotowej komórki, wyodrębnienie pasożytów układu za pomocą Assura , Diva lub Calibre i symulację obwodu w różnych warunkach wejściowych i obciążeniach wyjściowych. To buduje model czasowy dla każdej bramki, która jest kompatybilna z twoim pakietem STA. Modele czasowe są zwykle w formacie pliku Liberty . Użyłem Silicon Smart i Liberty-NCXsymulować wszystkie potrzebne warunki. Pamiętaj, że prawdopodobnie będziesz potrzebować modeli czasowych w „najgorszym przypadku”, „nominalnym” i „najlepszym przypadku”, aby większość oprogramowania działała poprawnie.

  3. Zsyntetyzuj swój projekt. Nie mam doświadczenia z kompilatorami wysokiego poziomu, ale pod koniec dnia kompilator lub łańcuch kompilatora musi wziąć twój projekt wysokiego poziomu i wygenerować netlistę na poziomie bramki. Wynik syntezy jest pierwszym rzutem oka na teoretyczną wydajność systemu i gdzie po raz pierwszy rozwiązane są problemy z siłą napędu. Użyłem Design Compiler dla kodu RTL.

  4. Umieść i poprowadź swój projekt. To pobiera netlistę na poziomie bramki z syntezatora i zamienia ją w projekt fizyczny. Idealnie generuje to układ pad-to-pad, który jest gotowy do produkcji. Naprawdę łatwo jest ustawić oprogramowanie P&R tak, aby automatycznie popełniało tysiące błędów DRC, więc nie wszystkie zabawy i gry również w tym kroku. Większość oprogramowania poradzi sobie z problemami z siłą napędu i generuje drzewa zegara zgodnie z zaleceniami. Niektóre pakiety oprogramowania obejmują Astro, IC Compiler, Silicon Encounter i Silicon Ensemble. Końcowym wynikiem z miejsca i trasy jest ostateczna lista sieci, ostateczny układ i pasożyty wyodrębnionego układu.

  5. Analiza statyczna taktowania po układzie. Celem jest sprawdzenie, czy Twój projekt odpowiada specyfikacji czasowej i nie ma żadnych problemów z konfiguracją, wstrzymaniem ani bramkowaniem. Jeśli Twoje wymagania projektowe są surowe, możesz spędzić dużo czasu na naprawianiu błędów i aktualizowaniu poprawek w narzędziu P&R. Ostatnim narzędziem STA, którego użyliśmy, był PrimeTime .

  6. Fizyczna weryfikacja układu. Po wygenerowaniu układu za pomocą narzędzia P&R należy sprawdzić, czy projekt spełnia reguły projektowania procesu (Kontrola reguły projektu / DRC) i czy układ jest zgodny ze schematem (Układ kontra schemat / LVS). Należy postępować zgodnie z tymi krokami, aby upewnić się, że układ jest prawidłowo okablowany i można go wyprodukować. Ponownie, niektóre narzędzia do fizycznej weryfikacji to Assura , Diva lub Calibre .

  7. Symulacja ostatecznego projektu. W zależności od złożoności możesz wykonać symulację na poziomie tranzystora za pomocą Spectre lub HSPICE , symulację „szybkiej przyprawy” za pomocą HSIM lub całkowicie cyfrową symulację za pomocą ModelSim lub VCS . Powinieneś być w stanie wygenerować symulację z realistycznymi opóźnieniami za pomocą narzędzia STA lub P&R.

Rozpoczynanie od istniejącej biblioteki bram to ogromna oszczędność czasu, a także korzystanie z makr korzystnych dla twojego projektu, takich jak pamięć, mikrokontroler lub alternatywne bloki przetwarzania. Duże znaczenie ma także zarządzanie złożonością projektu - projekt pojedynczego zegara będzie łatwiejszy do zweryfikowania niż obwód z wieloma domenami zegarowymi.

W5VO
źródło
2
Odkąd wspomniałeś o Virtuoso, Cadence zapewnia kompletny zestaw narzędzi do projektowania (myślę, że nazywa się Opus), w którym można zacząć od schematów, ułożyć pojedynczą komórkę, ocenić efekty pasożytnicze, scharakteryzować ją, a następnie wbudować na wyższy poziom .
clabacchio
1
Myślę, że każdy główny dostawca oferuje kompletny zestaw narzędzi. W naszym zestawie narzędzi korzystaliśmy z wielu dostawców, dzięki czemu mogliśmy korzystać z narzędzi, które były nam najbardziej znane lub miały najlepszą reputację w branży.
W5VO
1
Narzędzia do pobierania do obsługi biblioteki lub zestawu projektowego są praktycznie wymagane. Jeśli nie korzystasz z obsługiwanej wersji określonego oprogramowania, niektóre niezgodności mogą zniszczyć twój projekt lub dać fałszywe odczyty. To powiedziawszy, ogromna większość narzędzi EDA, które widziałem, działa na systemach Unix / Linux. Większość ma strome krzywe uczenia się.
W5VO
1
@MartinThompson Absolutnie. Im bardziej przekraczasz granice swojej technologii (ASIC / FPGA), tym bardziej krytyczne są te kroki. To powiedziawszy, wersje ASIC tych narzędzi zapewniają znacznie więcej lin, abyś mógł wpaść w kłopoty.
W5VO
1
Zauważ, że 1 i 2 nie są ogólną częścią projektu. Kroki te są częścią tak zwanej „kwalifikacji procesu”, a wyniki (w pełni scharakteryzowane biblioteki) dostarcza FAB Vendor. Ale niektóre firmy robią „pełny niestandardowy projekt” i muszą samodzielnie ukończyć 1 i 2.
Ale..chenski 18.09.16
7

Odpowiedź od W5VO tendencję do skupienia się na back-end, a to jest zasadnicza różnica między ASIC i FPGA płynie; ale brakuje części do weryfikacji projektu cyfrowego.

Gdy projekt na krzem może kosztować milion dolarów i więcej, możesz też zapakować znacznie więcej użytecznych bram na ASIC w porównaniu do FPGA, wtedy spędzasz znacznie więcej czasu z dala od laboratorium i PCB przed stacjami roboczymi prowadzącymi farmy symulatorów oraz emulatory i testy pisemne w celu pełniejszej weryfikacji projektu ASIC przed udostępnieniem go do produkcji. Projektanci FPGA zwykle wykonują dużą część swoich testów, wykorzystując układ FPGA w systemie, w którym staną się częścią.

Paddy3118
źródło
Dodałbym, że podstawowy obieg pracy dla projektanta cyfrowego nie różni się zbytnio między ASIC i FPGA, ale ASIC ma znacznie większą elastyczność pod względem dostępnych elementów makro / mikro, umieszczania i routingu, podczas gdy FPGA jest ograniczone do prefabrykowanych bloków logicznych i ma ograniczoną topologię połączeń. Dlatego FPGA nie może osiągnąć poziomów wydajności ASIC i może dyktować nieco inne rozwiązania projektowe.
Ale..chenski 18.09.16
Cześć Ali Chen. Jeśli uważa się, że projekt cyfrowy i cyfrowa weryfikacja są odrębne, to przepływ dla projektu czysto cyfrowego jest bliższy dla FPGA vs ASIC, ale jak już wspomniałem, w weryfikacji jest duża separacja. :-)
Paddy3118