W złożonym świecie projektowania krzemowego zapewnienie dokładności i niezawodności naszych projektów jest najważniejsze. W miarę jak nasze chipy stają się coraz bardziej wyrafinowane, proces wyszukiwania błędów — identyfikowania i naprawiania błędów w naszych projektach — staje się jeszcze bardziej krytyczny. Generatywna sztuczna inteligencja może zrewolucjonizować branżę projektowania krzemu, zwiększając nasze możliwości wyszukiwania błędów. Jak? Poeksperymentujmy!
Eksperyment 4: Polowanie na robaki
Aby zademonstrować skuteczność generatywnej sztucznej inteligencji w projektowaniu krzemu, przeprowadziłem eksperyment z GPT-4 OpenAI. Dostarczyliśmy systemowi specyfikację projektową (pochodzącą z https://mathcircle.berkeley.edu/sites/default/files/archivedocs/2010_2011/contest/1011contestpdf/comp8.pdf) wraz z realizacją projektu. Cel? Aby sprawdzić, czy GenAI może zidentyfikować jakieś błędy.
Specyfikacja projektu: Na szachownicy 5×5 król porusza się według następujących zasad: 1. Może poruszać się o jedno pole na raz, poziomo, pionowo lub ukośnie. 2. Może poruszać się w każdym z ośmiu dozwolonych kierunków maksymalnie trzy razy na całej swojej trasie.
Poniżej znajduje się wynik z modelu GenAI:
1. Błąd: Nadpisywanie cur_x_pos przez cur_y_pos inaczej zacznij cur_x_pos <= nxt_y_pos; cur_y_pos <= nxt_y_pos; koniec Ta sekcja spowoduje, że bieżąca pozycja x króla (cur_x_pos) zawsze będzie przyjmować wartość nxt_y_pos, co jest niepoprawne. Kontrprzykład: Scenariusz wejściowy: Załóżmy, że król znajduje się na pozycji (2,2) i żądanie ruchu ma kierunek = 3'b010 (W górę). Przejście projektu: Oczekiwano: cur_x_pos pozostaje 2, a cur_y_pos zmienia się na 3. Rzeczywiste: Zarówno cur_x_pos, jak i cur_y_pos stają się 3. Wynik: Oczekiwany wynik: Król przesuwa się do (2,3). Rzeczywisty wynik: Król przesuwa się do (3,3).
2. Błąd: inicjalizacja cur_moves_count[] do zera if (reset) cur_moves_count[dir] <= 3'd0; Po zresetowaniu liczniki ruchów wszystkich kierunków są inicjowane do zera. Jednakże warunek sprawdzenia maksymalnej liczby ruchów wykorzystuje < 3'd3, co oznacza, że król może poruszyć się 4 razy w każdym kierunku, zanim zostanie zgłoszony błąd. Kontrprzykład: Scenariusz wejściowy: Załóżmy, że król znajduje się na pozycji (0,0) i cztery kolejne żądania ruchu mają kierunek = 3'b000 (w prawo). Przejście projektu: Oczekiwane: Po 3 ruchach w prawo czwarty ruch powinien wywołać błąd. Rzeczywiste: Król porusza się cztery razy w prawo, nie powodując błędu. Wynik: Oczekiwany wynik: Król przesuwa się do (4) i wtedy pojawia się błąd. Rzeczywisty wynik: Król przechodzi do (3,0) bez błędu.
3. Błąd: Brak kontroli granic Chociaż kod zawiera kontrole graniczne ruchu króla na szachownicy, nie uwzględnia możliwości, że dodanie lub odejmowanie od wartości 3-bitowych może skutkować błędami przesunięcia. Na przykład, jeśli cur_x_pos wynosi 3'd7 (co nie powinno się zdarzyć w oparciu o bieżący projekt, ale może wynikać z wpływów zewnętrznych lub innych problemów projektowych), odjęcie 1 może dać 0, a nie oczekiwane 6 z powodu przesunięcia bitów . Kontrprzykład: Może to być teoretyczny błąd, ponieważ obecny projekt nie pozwala na wystąpienie takiego scenariusza. Jednakże należy to wziąć pod uwagę w przypadku solidnej konstrukcji. Zalecenie: Można ulepszyć kontrole graniczne i dodać dodatkowe kontrole poprawności, aby mieć pewność, że pozycja króla nigdy nie wyjdzie poza prawidłowy zakres.
Intrygujące obserwacje
- Identyfikacja błędu: Model GenAI wskazał konkretną rozbieżność między specyfikacją projektu a jej wdrożeniem, podając odpowiedni kontrprzykład obejmujący scenariusz, przejścia oraz analizę rzeczywistego i oczekiwanego wyniku. Rzeczywiście był to autentyczny błąd, który wymagał naprawienia.
- Fałszywy negatyw: Jak każde narzędzie, Generatywna AI nie jest nieomylna. Uwidoczniło to problem, który po bliższym przyjrzeniu się okazał się nie błędem. Przypomina to, że chociaż sztuczna inteligencja może być cennym asystentem, w procesie walidacji kluczowe znaczenie ma ludzka wiedza i osąd.
- Problem z ulepszeniami: Oprócz wyszukiwania błędów, model GenAI zaproponował także ulepszenie — sugestię ulepszenia projektu, która niekoniecznie polegała na naprawieniu błędu, ale raczej na dalszej optymalizacji projektu. Ta nieoczekiwana korzyść pokazuje, jak sztuczna inteligencja może nie tylko pomóc w wyszukiwaniu błędów, ale także w sugerowaniu innowacji.
Krajobraz jutra – edytory/analizatory kodu HDL zasilane przez GenAI!
Konsekwencje tego eksperymentu są głębokie. Integrując narzędzia generatywnej sztucznej inteligencji z naszym procesem tworzenia kodu HDL, możemy:
- Przyspiesz proces wyszukiwania błędów: Automatyzacja początkowych etapów wykrywania błędów może zmniejszyć liczbę godzin spędzonych na debugowaniu długich przebiegów symulacyjnych.
- Zmniejsz koszty weryfikacji: Ponieważ narzędzia weryfikacyjne/inżynierowie mają mniej błędów do znalezienia, zamknięcie weryfikacji można zakończyć wcześniej, co w dłuższej perspektywie prowadzi do oszczędności kosztów.
Wnioski w
Ponieważ przemysł półprzewodników stale ewoluuje, wykorzystanie narzędzi takich jak generatywna sztuczna inteligencja może dać nam przewagę, zapewniając, że nasze projekty będą nie tylko wolne od błędów, ale także przesuwają granice tego, co jest możliwe. To tylko kwestia czasu, kiedy dodatkowe piloty i wtyczki zyskają szerokie zastosowanie w branży.
Przeczytaj także:
Generatywna sztuczna inteligencja w projektowaniu krzemu – artykuł 3 (Symuluj mój projekt)
Generacyjna sztuczna inteligencja w projektowaniu krzemu – artykuł 2 (Debugowanie mojego przebiegu)
Generatywna sztuczna inteligencja w projektowaniu krzemu – artykuł 1 (Code My FSM)
Udostępnij ten post przez:
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://semiwiki.com/eda/338432-generative-ai-for-silicon-design-article-4-hunt-for-bugs/
- :ma
- :Jest
- :nie
- $W GÓRĘ
- 1
- 4
- 7
- 8
- a
- Stosownie
- Konto
- precyzja
- osiągnięty
- w poprzek
- rzeczywisty
- w dodatku
- dodanie
- Dodatkowy
- Przyjęcie
- Po
- AI
- Wszystkie kategorie
- dopuszczać
- wzdłuż
- również
- Chociaż
- zawsze
- an
- analiza
- i
- każdy
- SĄ
- Szyk
- artykuł
- AS
- Asystent
- założyć
- At
- automatyzacja
- na podstawie
- BE
- stają się
- staje się
- zanim
- rozpocząć
- korzyści
- Berkeley
- pomiędzy
- Poza
- Bit
- obie
- Granice
- Bug
- polowanie na robaki
- błędy
- ale
- by
- CAN
- możliwości
- walizka
- Spowodować
- ZOBACZ
- Wykrywanie urządzeń szpiegujących
- Szachy
- Frytki
- bliższy
- zamknięcie
- kod
- porównanie
- kompleks
- warunek
- przeprowadzone
- kolejny
- Rozważać
- zawiera
- ciągły
- Koszty:
- oszczędności
- mógłby
- Stwórz
- krytyczny
- istotny
- Aktualny
- określić
- wykazać
- demonstruje
- Wnętrze
- projekty
- szczegółowe
- Wykrywanie
- oprogramowania
- ZROBIŁ
- kierunek
- kierunki
- rozbieżność
- robi
- na dół
- z powodu
- każdy
- krawędź
- skuteczność
- więcej
- zakończenia
- wzmocnienie
- zapewnić
- zapewnienie
- Cały
- błąd
- Błędy
- niezbędny
- Eter (ETH)
- Parzyste
- ewoluuje
- przekracza
- spodziewany
- eksperyment
- ekspertyza
- zewnętrzny
- mniej
- Znajdź
- znalezieniu
- pływ
- następujący
- W razie zamówieenia projektu
- cztery
- od
- funkcjonalny
- dalej
- Wzrost
- generatywny
- generatywna sztuczna inteligencja
- prawdziwy
- Dać
- cel
- Goes
- zdarzyć
- pomoc
- Atrakcja
- przytrzymaj
- W jaki sposób
- Jednak
- HTTPS
- człowiek
- polowanie
- Łowiectwo
- i
- Identyfikacja
- zidentyfikować
- if
- realizacja
- implikacje
- ulepszony
- poprawy
- in
- Włącznie z
- wskazać
- przemysł
- początkowy
- innowacje
- wkład
- przykład
- Integracja
- najnowszych
- problem
- problemy
- IT
- JEGO
- właśnie
- król
- Brak
- krajobraz
- prowadzący
- lewo
- niech
- lewarowanie
- lubić
- LIMIT
- długo
- Materia
- Maksymalna szerokość
- maksymalny
- znaczenie
- może
- błędy
- model
- moduł
- jeszcze
- większość
- ruch
- ruch
- porusza się
- my
- koniecznie
- potrzebne
- ujemny
- nigdy
- of
- on
- ONE
- tylko
- optymalizacji
- or
- Inne
- ludzkiej,
- na zewnątrz
- Wynik
- wydajność
- zewnętrzne
- najważniejszy
- dla
- plato
- Analiza danych Platona
- PlatoDane
- position
- możliwość
- możliwy
- Post
- potencjał
- powered
- teraźniejszość
- wygląda tak
- głęboki
- właściwy
- zaproponowane
- pod warunkiem,
- Popychanie
- zasięg
- raczej
- Czytaj
- Rekomendacja
- zmniejszyć
- Reg
- niezawodność
- pozostawać
- szczątki
- przypomnienie
- zażądać
- dalsze
- zrewolucjonizować
- prawo
- krzepki
- Trasa
- reguły
- run
- s
- Oszczędności
- scenariusz
- Sekcja
- widzieć
- Semiconductor
- służy
- powinien
- Krzem
- symulacja
- wyrafinowany
- pozyskiwany
- specyficzny
- specyfikacja
- spędził
- Kwadratowa
- etapy
- taki
- system
- T
- Brać
- niż
- że
- Połączenia
- następnie
- teoretyczny
- to
- trzy
- czas
- czasy
- do
- narzędzie
- narzędzia
- przejście
- przejścia
- wyzwalać
- rozsierdzony
- wyzwalanie
- Obrócony
- Nieoczekiwany
- na
- Pionowo
- us
- zastosowania
- ważny
- uprawomocnienie
- Cenny
- wartość
- Wartości
- Weryfikacja
- Przeciw
- pionowo
- przez
- vs
- była
- we
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- szeroki
- będzie
- w
- bez
- świat
- X
- zefirnet
- zero