poniedziałek, 08 wrzesień 2025 22:53

Od kodu RTL do krzemu: Otwarte projektowanie układów scalonych - przewodnik

Oceń ten artykuł
(0 głosów)
Jak projektować układy scalone? Jak projektować układy scalone? fot: unsplash

Jeszcze niedawno zaprojektowanie własnego układu scalonego wymagało zaplecza dużych firm - drogich narzędzi, długich umów poufności i wielomilionowych budżetów. Dziś rosnący ekosystem otwartego oprogramowania oraz publicznie dostępnych materiałów technologicznych obniża próg wejścia dla inżynierów i pasjonatów. Dzięki rozwiązaniom otwartym można poznać i przejść ścieżkę od kodu RTL do fizycznego układu w krzemie, korzystając z narzędzi dostępnych bez barier licencyjnych. Ten tekst prowadzi przez kolejne etapy procesu i pokazuje realną zmianę - od zamkniętego świata do możliwości oferowanych przez inicjatywy otwarte.

Spis treści:

Wprowadzenie do tematyki projektowania układów scalonych

Projektowanie układów scalonych to proces przekształcania koncepcji funkcjonalnej w rzeczywisty układ elektroniczny w krzemie, obejmujący poziom logiczny i fizyczny oraz liczne weryfikacje. W podejściu tradycyjnym dominowały zamknięte narzędzia oraz niedostępne publicznie zestawy danych procesu technologicznego, co wymuszało wysokie koszty i formalne ograniczenia. Otwarty ekosystem wprowadza alternatywę umożliwiającą naukę, prototypowanie i produkcję mniejszych układów przy wykorzystaniu narzędzi bezpłatnych i publicznie dokumentowanych. W tym nurcie ważną rolę pełnią otwarte języki, biblioteki i przepływy narzędzi, które łączą opis sprzętu, syntezę logiczną oraz implementację fizyczną. Różnica między światem zamkniętym a otwartym dotyczy przede wszystkim dostępu do narzędzi, materiałów technologicznych oraz możliwości publicznego dzielenia się projektami.

Droga historyczna prowadzi od dominacji rozwiązań komercyjnych do stopniowego udostępniania komponentów niezbędnych do samodzielnych eksperymentów. Współcześnie dostępne są publiczne zestawy projektowe procesu dla wybranych węzłów technologicznych, a także kompletne przepływy narzędziowe do przejścia od kodu RTL do plików produkcyjnych. W praktyce oznacza to możliwość zbudowania małego układu cyfrowego, zweryfikowania go w symulacji i weryfikacjach fizycznych oraz przygotowania do produkcji w ramach wspólnych rund wieloprojektowych. Ekosystem otwarty obejmuje m.in. inicjatywy architektury otwartej, otwarte narzędzia EDA oraz publiczne zestawy danych procesu wykorzystywane do tworzenia komórek standardowych i reguł projektowych.

Na potrzeby czytelnika kolejne sekcje prezentują po kolei etapy praktyczne. Najpierw opis poziomu RTL i narzędzi do wstępnej weryfikacji funkcjonalnej. Następnie syntezę logiczną i tworzenie netlisty z wykorzystaniem biblioteki komórek procesu. Dalej implementację fizyczną obejmującą plan rozmieszczenia, rozmieszczenie komórek, budowę rozgałęzienia zegara oraz trasowanie. Potem weryfikacje reguł procesu, zgodności schematu z układem oraz analizy czasowe. Na końcu omówiona jest ścieżka do wysyłki projektu do produkcji, programy wieloprojektowe oraz przykłady społeczności i kierunki rozwoju. Takie uporządkowanie pozwala zobaczyć pełny łańcuch kroków od opisu funkcjonalnego do finalnej maski fotolitograficznej i gotowego układu.

Opis logiki RTL i pierwsze kroki projektanta

Poziom RTL to opis zachowania układu cyfrowego w taktach zegara, gdzie definiuje się przepływ danych między rejestrami oraz logikę kombinacyjną między nimi. Do opisu używa się języków opisu sprzętu, najczęściej Verilog oraz VHDL, a także rozszerzeń takich jak SystemVerilog w obszarze testów. Projektant przygotowuje moduły funkcjonalne, interfejsy i stany sterujące, dbając o stosowanie konstrukcji możliwych do syntezy oraz jednoznaczne określenie zachowania asynchronicznego i synchronicznego. W praktyce stosuje się restrykcyjny podzbiór konstrukcji, aby narzędzia syntezy mogły jednoznacznie odwzorować je na komórki standardowe procesu. Już na etapie RTL warto planować rejestry potokowe, ograniczać głębokość ścieżek kombinacyjnych oraz przewidywać wymagania czasowe i obciążenia sygnałów.

Wczesna weryfikacja funkcjonalna odbywa się poprzez symulację i testbenche. Popularne rozwiązania otwarte obejmują symulatory logiki zdarzeniowej oraz narzędzia generujące modele do szybkiej symulacji cyklowej. Dzięki temu można szybko uruchamiać testy jednostkowe dla modułów, testy integracyjne dla bloków większych oraz kampanie losowe służące wykrywaniu rzadkich warunków. Przydatne są też narzędzia sprawdzające styl i błędy typowe, które ostrzegają o niejednoznacznym przypisaniu, ryzyku powstania zatrzasków czy niepożądanych pętli kombinacyjnych. Im wcześniej wykryje się niezgodności funkcjonalne, tym mniejszy koszt poprawek na późniejszych etapach przepływu narzędziowego.

Dobrym ćwiczeniem jest implementacja prostego licznika, rejestru przesuwnego lub generatora PWM. Taki moduł pozwala przejść cykl od kodu, przez testbench, aż do wyniku syntezy, a następnie do analizy czasowej po implementacji fizycznej. Warto przy tym pamiętać o jawnych resetach, jednoznacznym opisie zegara oraz unikaniu opóźnień symulacyjnych, które nie mają odpowiednika w sprzęcie. Zalecane jest też rozdzielenie kodu na część syntezowalną i testową, co ułatwia utrzymanie projektu. Pisanie przejrzystego kodu RTL zgodnego z regułami syntezy skraca czas iteracji i stabilizuje rezultaty dalszych etapów.

W ekosystemie otwartym stosuje się zestaw narzędzi obejmujący syntezator logiczny oraz symulatory pozwalające na szybkie uruchamianie testów. Powszechna jest integracja z językami skryptowymi ułatwiającymi generowanie przypadków testowych i analizę wyników. Sensowne jest też stosowanie ciągłej integracji, w której każdy commit uruchamia podstawowe testy i sprawdzenia jakości kodu. Tak ustawione środowisko przypomina praktyki znane z oprogramowania i sprzyja systematycznemu rozwojowi sprzętu. Dobre praktyki na poziomie RTL fundamentalnie wpływają na jakość i czas realizacji całego projektu, bo błędy funkcjonalne w późnych fazach są najdroższe.

Synteza logiczna i przejście od opisu do netlisty

Synteza logiczna przekształca kod RTL w netlistę zbudowaną ze standardowych komórek dostępnych w wybranym zestawie projektowym procesu technologicznego. Narzędzie analizuje kod, rozwija hierarchię i konstrukcje generujące, a następnie wykonuje optymalizacje niezależne od technologii, takie jak propagacja stałych czy uproszczenia funkcji logicznych. Kolejny krok to mapowanie na komórki biblioteczne, gdzie abstrakcyjne operacje zamieniane są na zdefiniowane bramki, przerzutniki i bufory o konkretnych parametrach czasowych, powierzchni i mocy. Efektem syntezy jest netlista oraz raporty opisujące wykorzystanie komórek, zajętość i parametry czasowe zidentyfikowanych ścieżek krytycznych.

W praktyce synteza uwzględnia ograniczenia czasowe wynikające z zakładanego okresu zegara oraz opóźnienia wejść i wyjść. Narzędzie dobiera warianty komórek o odpowiedniej sile napędowej, dodaje bufory przy wysokim obciążeniu sygnałów oraz próbuje zbilansować ścieżki przez retiming rejestrów tam, gdzie to możliwe. Typowe raporty obejmują listę naruszeń czasów ustawienia i podtrzymania, statystyki obciążenia i długości ścieżek oraz zestawienia mocy dynamicznej i statycznej. Na tym etapie łatwo wychwycić nieefektywne konstrukcje RTL i podjąć decyzje o uproszczeniach lub wprowadzeniu potokowania.

Dobór biblioteki komórek zależy od procesu technologicznego i celu projektu. Dla zastosowań oszczędnych energetycznie stosuje się warianty o mniejszym prądzie upływu kosztem szybkości, natomiast dla maksymalnej wydajności wybiera się komórki o większej mocy. W projektach mieszanych można łączyć różne klasy komórek i zachować kompromis między powierzchnią, mocą i osiągami. Warto także weryfikować ostrzeżenia narzędzia dotyczące wysokiego rozgałęzienia sygnałów, bo nadmierny fanout bywa przyczyną problemów czasowych po implementacji fizycznej. Rzetelna analiza raportów syntezy pozwala uniknąć iteracji na ślepo i przygotowuje projekt do kolejnego etapu przepływu narzędziowego.

Dodatkowym krokiem bywa symulacja po syntezie z adnotowanymi opóźnieniami, która ujawnia zależności czasowe mogące nie być widoczne w symulacji behawioralnej. Przy dużych projektach opłaca się też dzielenie syntezy na bloki oraz ponowne wykorzystanie wyników dla modułów niezmienionych między iteracjami. Ważne jest, aby utrzymywać spójność wersji bibliotek, ograniczeń czasowych i ustawień narzędzia, co ułatwia porównanie rezultatów między przebiegami. Dobrze przygotowana netlista i komplet raportów stanowią solidny punkt wyjścia do implementacji fizycznej, w której liczą się już długości połączeń, gęstość i reguły procesu.

Tworzenie układu fizycznego i przygotowanie layoutu

Implementacja fizyczna przekłada netlistę na layout zawierający rozmieszczenie komórek oraz trasy połączeń na warstwach metalu zgodnie z regułami procesu technologicznego. Etap otwiera plan rozmieszczenia, w którym ustala się wymiary obszaru, rezerwę na makra i pamięci, przebieg szyn zasilania oraz wstępną lokalizację wyprowadzeń. Następnie narzędzie rozmieszcza komórki standardowe, minimalizując długość połączeń i przewidywaną kongestię, a po legalizacji zapewnia zgodność z siatką technologii. Kolejny krok to budowa rozgałęzienia zegara, której celem jest ograniczenie różnicy czasu dotarcia sygnału zegarowego do rejestrów oraz utrzymanie stabilności czasowej. Po rozmieszczeniu i drzewie zegara następuje trasowanie, które nadaje ostateczny kształt połączeniom logicznym w całym układzie.

Optymalizacja po trasowaniu obejmuje poprawki czasów ustawienia i podtrzymania, wstawianie buforów dla ścieżek zbyt wolnych lub zbyt szybkich oraz zamianę wariantów komórek na silniejsze lub słabsze, aby zamknąć budżet czasowy. Na tym etapie należy zwracać uwagę na gęstość upakowania, bo nadmierna gęstość zwiększa ryzyko trudnego trasowania i lokalnych przeciążeń. Ważne jest także przygotowanie i analiza sieci zasilania, ponieważ spadki napięcia i ograniczenia elektromigracji mogą zniweczyć zakładane parametry. Regularne przeglądanie layoutu w przeglądarkach widoku warstw pozwala wcześnie wykryć trudne obszary i zaplanować korekty zanim liczba błędów wzrośnie.

W projektach mniejszych skuteczne bywa iteracyjne prowadzenie implementacji z niewielkimi zmianami parametrów, a w dużych korzystne jest dzielenie na bloki i integracja na poziomie najwyższym. Przy integracji makr pamięci i bloków analogowych trzeba uwzględnić strefy zabronione, wymagania wyrównania oraz specjalne reguły trasowania. W przypadku interfejsów zewnętrznych należy prawidłowo rozmieścić piny i dobrać komórki wejścia wyjścia zgodnie ze standardem. Na końcu powstaje komplet plików wymiany i zestaw danych produkcyjnych. Ostateczny layout stanowi wejście do weryfikacji fizycznej oraz podstawę do przygotowania plików do wytworzenia masek fotolitograficznych.

Raporty z implementacji fizycznej zawierają statystyki kongestii, długości krytycznych ścieżek, zestawienia mocy oraz listy miejsc wymagających uwagi. Ich analiza ułatwia kierowanie iteracjami i podejmowanie decyzji o kompromisach między powierzchnią, mocą i wydajnością. Dbałość o spójność danych między etapami oraz ścisłe kontrolowanie wersji plików i ustawień skracają czas potrzebny na znalezienie przyczyn problemów. Skuteczne zamknięcie etapu fizycznego wymaga nie tylko poprawnego działania narzędzi, lecz także systematycznego przeglądu wyników i wczesnego reagowania na ostrzeżenia.

Sprawdzanie poprawności i testowanie projektu

Przed przekazaniem danych do produkcji konieczne jest przejście weryfikacji reguł procesu, zgodności układu z netlistą oraz analizy czasowej w oparciu o finalne opóźnienia połączeń. Sprawdzenie reguł procesu wykrywa naruszenia geometrii i odległości na poszczególnych warstwach, które mogłyby uniemożliwić wytworzenie lub pogorszyć niezawodność układu. Zgodność układu z netlistą porównuje schemat uzyskany z ekstrakcji layoutu z netlistą po syntezie, co pozwala stwierdzić brak zwarć, przerw oraz rozbieżności liczby elementów. Analiza czasowa na etapie końcowym opiera się na rzeczywistych opóźnieniach ścieżek z uwzględnieniem pojemności i rezystancji, a także wariantów warunków roboczych. Warunkiem gotowości do produkcji jest brak błędów reguł procesu, zgodność schematu z układem oraz zamknięte budżety czasowe dla zadanych częstotliwości i interfejsów.

Typowe pułapki weryfikacyjne obejmują błędy wynikające z nieprecyzyjnych ustawień siatki, niezgodności nazw w warstwach, pomyłek przy integracji makr pamięci oraz lokalnych ograniczeń trasowania w pobliżu gęstych obszarów. Przydatne są przeglądarki widoku warstw z możliwością podświetlania błędów, a także raporty z dokładnym wskazaniem współrzędnych miejsc problemowych. W analizie czasowej należy uważnie śledzić zarówno ścieżki ograniczane przez czasy ustawienia, jak i krótkie ścieżki wpływające na czasy podtrzymania, ponieważ poprawki w jednym obszarze mogą wpływać na drugi. Iteracyjne poprawki po analizie weryfikacyjnej są naturalnym elementem procesu i prowadzą do stabilizacji projektu na poziomie produkcyjnym.

W większych projektach stosuje się również weryfikacje dodatkowe, takie jak ocena spadków napięcia, szacowanie elektromigracji czy analiza czułości na proces, napięcie i temperaturę. W hobbystycznych i edukacyjnych zastosowaniach często skupia się na trzech filarach i stopniowo rozszerza zakres wraz z rosnącymi ambicjami projektu. Dokumentowanie ustawień narzędzi, wersji bibliotek i wyników jest konieczne, aby utrzymać powtarzalność, co ma znaczenie w cyklach wieloosobowych i przy publicznym udostępnianiu wyników. Komplet czystych raportów stanowi podstawę do przejścia do etapu przekazania projektu do produkcji w ramach wybranej rundy wieloprojektowej.

Jak wygląda droga do tape-outu i produkcji chipu?

Ostatnim etapem projektowania układów scalonych jest przygotowanie plików produkcyjnych i wysłanie ich do fabryki w procesie zwanym tape-out. To moment, w którym projekt staje się nieodwracalny i zostaje przekształcony w maski fotolitograficzne wykorzystywane w produkcji. Dla małych zespołów i pasjonatów kluczową rolę odgrywają programy rund wieloprojektowych, które umożliwiają podział kosztów produkcji między wielu uczestników. Dzięki temu możliwe jest wyprodukowanie prototypów w procesie technologicznym o długości kanału 130 nm, który udostępnia zestaw projektowy zawierający reguły projektowe, modele komórek oraz pliki potrzebne do syntezy i weryfikacji. Takie programy pozwalają otrzymać działający układ fizyczny za ułamek kosztów typowych dla komercyjnej produkcji.

Infografika: Udział różnych procesów technologicznych w programach otwartego projektowania chipów

Źródło: Efabless, SkyWater Technology, GlobalFoundries, TSMC

W praktyce przesłanie projektu do rundy wymaga kompletnego zestawu plików obejmujących layout, netlisty, raporty weryfikacyjne i dokumentację. Organizatorzy sprawdzają poprawność danych, po czym łączą wiele projektów w jedną maskę, która trafia do fabryki. Produkcja przebiega w cyklach kilkumiesięcznych, a po otrzymaniu gotowych płytek następuje testowanie i pakowanie próbek. Uczestnicy programu otrzymują kilka lub kilkanaście działających chipów, które mogą zamontować na płytkach testowych i sprawdzić w praktyce. Dzięki temu proces od pomysłu do działającego układu jest dostępny dla inżynierów akademickich, pasjonatów i startupów o ograniczonym budżecie.

Ograniczenia technologii 130 nm obejmują większe wymiary tranzystorów i mniejszą gęstość integracji niż w nowoczesnych procesach, jednak w zupełności wystarczają do nauki i prototypowania. Koszty produkcji pełnej maski w nowoczesnym procesie mogą wynosić dziesiątki milionów dolarów, podczas gdy udział w rundzie wieloprojektowej w procesie otwartym jest możliwy nawet przy kilku tysiącach dolarów. Takie różnice czynią projektowanie chipów realnie osiągalnym i demokratyzują dostęp do tej dziedziny.

Kalkulator kosztu na chip – rundy MPW Efabless

Na podstawie publicznych danych Efabless: 9 750 USD (100 QFN lub 300 WCSP), opcja 1000 WCSP × 20 USD/szt., oraz chipIgnite Mini 3 500 USD (25 QFN).

Dostępne tylko w chipIgnite Standard. Cena 20 USD/szt.
Łączna liczba części
Łączny koszt programu [USD]
Koszt na chip [USD/szt.]

Projekty społeczności i inspiracje dla początkujących

Rozwój otwartego projektowania układów scalonych nie byłby możliwy bez zaangażowanej społeczności tworzącej projekty, dokumentacje i platformy edukacyjne. Jednym z popularnych przedsięwzięć jest inicjatywa pozwalająca każdemu zainteresowanemu przygotować prosty projekt i wysłać go do produkcji w ramach wspólnej maski. Dzięki temu uczestnicy mogą zdobyć doświadczenie w praktycznym cyklu projektowym i otrzymać rzeczywisty układ scalony spełniający ich założenia. Tego typu programy przyciągają setki uczestników i pokazują, że proces projektowania układów można traktować jako formę nauki i zabawy jednocześnie.

Innym przykładem są projekty procesorów opartych na architekturze otwartej, które dostępne są w formie kodu źródłowego i mogą być używane w edukacji i prototypowaniu. Repozytoria internetowe pełnią rolę głównego miejsca współpracy, gdzie można znaleźć przykłady implementacji, narzędzia pomocnicze oraz dokumentację. Wokół otwartych inicjatyw wyrosły aktywne fora i grupy dyskusyjne, w których uczestnicy dzielą się doświadczeniem, pomagają rozwiązywać problemy techniczne i wspólnie poszerzają granice możliwości. Takie środowisko sprzyja powstawaniu coraz bardziej złożonych projektów, od prostych kontrolerów po kompletne procesory i układy peryferyjne.

Początkujący mogą zacząć od prostych projektów takich jak licznik, sterownik wyświetlacza czy prosty procesor jednoukładowy. Udział w programach społecznościowych i korzystanie z dostępnych repozytoriów ułatwia zdobywanie wiedzy i praktycznych umiejętności. Inspiracją może być fakt, że projekty tworzone przez hobbystów trafiają do prawdziwych chipów i są testowane w laboratoriach na całym świecie.

Przyszłość otwartego projektowania układów scalonych

Obecny ekosystem oparty na procesie 130 nm to dopiero początek drogi do pełnej otwartości w projektowaniu układów scalonych. Głównym ograniczeniem jest dostępność publicznych zestawów projektowych dla nowszych technologii, które pozostają własnością komercyjnych producentów. Jednak widać postępy w stronę kolejnych procesów, które mogą zostać częściowo otwarte i udostępnione w celach edukacyjnych i badawczych. Równolegle rozwijają się narzędzia do analizy i syntezy, które stają się coraz bardziej dojrzałe i konkurencyjne wobec rozwiązań zamkniętych. Szansą na przyszłość jest rozszerzenie otwartego dostępu do procesów o mniejszej długości kanału oraz powstawanie nowych bibliotek komórek i narzędzi.

Otwarty ekosystem znajduje zastosowanie w edukacji, gdzie studenci mogą przejść pełny cykl projektowania w ramach zajęć, oraz w badaniach, gdzie eksperymentalne układy można szybko zweryfikować. Małe firmy wykorzystują go do taniego prototypowania i testowania nowych koncepcji, które w przyszłości mogą trafić do produkcji komercyjnej. Ważną rolę odgrywa też społeczność, która stale rozwija dokumentację i przepływy narzędziowe, ułatwiając nowym uczestnikom wejście w tę dziedzinę. Potencjał demokratyzacji projektowania sprzętu jest znaczący i może doprowadzić do większej różnorodności rozwiązań sprzętowych w przyszłości.

Patrząc w perspektywie, otwarte projektowanie układów scalonych może wpłynąć na sposób, w jaki powstają innowacje w elektronice. Zmniejszenie bariery wejścia otwiera drogę dla osób i zespołów, które wcześniej nie miały dostępu do technologii. W miarę dojrzewania narzędzi i poszerzania zakresu otwartych procesów możemy spodziewać się coraz bardziej zaawansowanych projektów, tworzonych w modelu współpracy podobnym do otwartego oprogramowania. To kierunek, który łączy edukację, badania i przedsiębiorczość, czyniąc projektowanie chipów dostępniejszym niż kiedykolwiek.

Znaczenie otwartego podejścia dla inżynierów i pasjonatów

Droga od kodu RTL do fizycznego układu scalonego była przez dekady dostępna jedynie wielkim firmom, lecz dziś dzięki inicjatywom otwartym może stać się doświadczeniem wielu inżynierów i pasjonatów. Artykuł przeprowadził przez kolejne etapy tego procesu, pokazując zarówno kontekst historyczny, jak i praktyczne narzędzia, które umożliwiają przejście od koncepcji do działającego chipu. Znaczenie takiego podejścia jest dwojakie: z jednej strony daje możliwość nauki i eksperymentów w skali wcześniej niedostępnej, z drugiej zaś przyspiesza innowacje poprzez wymianę wiedzy i projektów w otwartej społeczności. To wartość dla profesjonalistów poszukujących tańszych metod prototypowania i dla pasjonatów chcących zrozumieć, jak powstaje nowoczesna elektronika.

Otwarte podejście ma także wymiar społeczny. W kulturze inżynierskiej i technologicznej, która w dużej mierze przyciąga mężczyzn zainteresowanych elektroniką i programowaniem, stanowi dodatkową motywację do rozwoju. Udział w społeczności, publikowanie własnych projektów i korzystanie z pracy innych buduje poczucie wspólnoty i przyczynia się do popularyzacji wiedzy. Dzięki temu otwarty ekosystem EDA nie tylko obniża koszty i bariery, ale także tworzy nową kulturę współpracy i dzielenia się wiedzą.

Znaczenie tego trendu rośnie wraz z każdym kolejnym projektem i rundą produkcyjną. Już dziś można obserwować, jak inicjatywy społeczne i edukacyjne wpływają na rozwój młodych inżynierów, którzy dzięki praktycznemu doświadczeniu szybciej wchodzą na rynek pracy. W dłuższej perspektywie może to doprowadzić do powstania większej liczby innowacyjnych rozwiązań sprzętowych, które będą mogły konkurować z rozwiązaniami komercyjnymi. Otwarte projektowanie układów scalonych to nie tylko narzędzie techniczne, ale także zjawisko kulturowe, które zmienia sposób, w jaki patrzymy na inżynierię i rozwój technologii.

FAQ

Czy można zaprojektować własny układ scalony bez umów poufności?Tak, w ekosystemie otwartym są dostępne publiczne zestawy projektowe procesu oraz narzędzia open-source. Projekty mogą być publikowane bez NDA, a pliki do produkcji są przygotowywane na bazie otwartych reguł i bibliotek.
Co to jest PDK i dlaczego ma znaczenie w podejściu otwartym?PDK to zestaw danych procesu technologicznego, który obejmuje reguły projektowe, modele komórek i pliki bibliotek. Dzięki otwartym PDK możliwe jest tworzenie układów bez dostępu do zastrzeżonych dokumentów producenta i bez podpisywania umów.
Jakie narzędzia open-source są używane na głównych etapach projektu?Na poziomie opisu sprzętu stosuje się symulatory i narzędzia lint. Do syntezy wykorzystuje się syntezator logiczny. Implementację fizyczną realizuje zestaw place-and-route, a sprawdzenia końcowe wykonują narzędzia DRC, LVS oraz STA. Ten łańcuch pokrywa całą ścieżkę od RTL do gotowego layoutu.
Na czym polega różnica między zamkniętymi a otwartymi narzędziami EDA?Narzędzia zamknięte wymagają licencji i zwykle pracy w ramach ścisłych procedur korporacyjnych. Narzędzia otwarte są dostępne publicznie, umożliwiają wgląd w przepływ i skrypty, a ich rozwój wspiera społeczność i instytucje akademickie. Daje to łatwiejszy start oraz transparentność procesu.
Czym jest tape-out w kontekście otwartych rund wieloprojektowych?Tape-out oznacza przekazanie finalnego pliku layoutu do wykonania masek produkcyjnych. W rundach wieloprojektowych wiele niezależnych projektów trafia na wspólną maskę, co obniża koszt jednostkowy i skraca drogę od projektu do prototypu krzemowego.
Jakie są typowe ograniczenia procesu 130 nm i co można w nim zbudować?Proces 130 nm oferuje mniejszą gęstość upakowania i niższe częstotliwości niż nowoczesne węzły. Pozwala jednak integrować układy mieszane-sygnałowo, pamięci oraz logikę ogólnego przeznaczenia, co wystarcza do mikrokontrolerów, prostych SoC i wielu zastosowań edukacyjnych.
Czy można łączyć bloki analogowe z cyfrowymi w otwartym przepływie?Tak, możliwa jest integracja bloków analogowych i makr pamięci z logiką cyfrową. Wymaga to trzymania się specjalnych reguł rozmieszczenia i trasowania, a także weryfikacji zgodnie z wytycznymi procesu technologicznego.
Jak długo trwa droga od wysyłki projektu do otrzymania prototypów?Harmonogram zależy od terminów rund wieloprojektowych i cyklu produkcyjnego. Po akceptacji danych projekt trafia do maski, a następnie do produkcji, testów i pakowania. Odbiór próbek następuje po zakończeniu całego cyklu fabrycznego i logistycznego.


Przypisy:

Architektura otwarta - Termin ten oznacza rozwiązania projektowe, które są dostępne publicznie bez konieczności uiszczania opłat licencyjnych i bez ograniczeń wynikających z własności intelektualnej. W świecie układów scalonych najbardziej znanym przykładem architektury otwartej jest RISC-V, która umożliwia każdemu korzystanie z pełnych specyfikacji i rozwijanie własnych implementacji.

Maska fotolitograficzna - Specjalna płytka szklana pokryta chromem, która zawiera wzory odpowiadające warstwom układu scalonego. Maski wykorzystywane są w procesie fotolitografii podczas produkcji chipów i umożliwiają odwzorowanie zaprojektowanego layoutu w krzemie.

Interfejsy wejścia wyjścia - Wyspecjalizowane komórki odpowiedzialne za komunikację układu scalonego ze światem zewnętrznym. Obsługują różne standardy elektryczne i logiczne, zapewniają ochronę przed wyładowaniami elektrostatycznymi i muszą być rozmieszczone na obwodzie układu.

Testbench - To specjalny kod, który nie trafia do syntezy i nie jest częścią finalnego układu, ale służy do sprawdzania poprawności modułów RTL. Testbench zawiera zestaw bodźców wejściowych oraz oczekiwane odpowiedzi, dzięki czemu można automatycznie zweryfikować, czy projekt zachowuje się zgodnie z założeniami.

Bufory - Elementy używane do wzmacniania sygnałów logicznych w sytuacji, gdy muszą one sterować dużą liczbą wejść lub pokonywać długie odległości w układzie. Bufory redukują opóźnienia i poprawiają integralność sygnałów, stanowiąc jednocześnie jeden z podstawowych mechanizmów optymalizacji czasowej.

Fanout - W elektronice cyfrowej to liczba wejść bramek logicznych, które są sterowane przez jedno wyjście. Zbyt duży fanout powoduje nadmierne obciążenie sygnału, co prowadzi do opóźnień i problemów z zamknięciem czasu w syntezie logicznej oraz implementacji fizycznej.

Legalizacja - Proces wykonywany po rozmieszczeniu komórek w układzie, który dostosowuje ich pozycje do wymagań siatki technologicznej. Dzięki legalizacji komórki nie zachodzą na siebie, a wszystkie znajdują się w dopuszczalnych miejscach, co ułatwia dalsze etapy implementacji, w tym trasowanie.

Makra pamięci - Gotowe bloki pamięci, takie jak SRAM lub ROM, dostarczane przez producenta procesu technologicznego. Projektanci wykorzystują je jako czarne skrzynki, które integruje się z logiką cyfrową. Makra pamięci zajmują duże obszary w układzie i mają ściśle określone reguły rozmieszczania.

Ekstrakcja układu - To proces uzyskiwania schematu elektrycznego z gotowego layoutu fizycznego. Narzędzia analizują połączenia w układzie i tworzą netlistę, którą następnie porównuje się z netlistą logiczną w ramach weryfikacji LVS, aby upewnić się, że układ odpowiada założeniom projektowym.

 

Źródło: Embedded.com, Efabless, Google Open Source Blog, Hackaday, KLayout, Magic VLSI, OpenLane, OpenROAD, OpenSTA, SkyWater Technology, TinyTapeout, Verilator, YosysHQ, YouTube

Ostatnio zmieniany poniedziałek, 08 wrzesień 2025 23:39