Firma Synopsys zamieściła w witrynie SolvNet fascynujące przemówienie wygłoszone przez dr Theo Drane'a z Intel Graphics. Tematem jest sprawdzanie równoważności ścieżki danych. Może to brzmieć jak kolejne formalne poparcie DPV Synopsys VC, ale i tak powinieneś to obejrzeć. Jest to poszerzająca umysł dyskusja na temat zastosowań i rozważań formalnych, która wyprowadzi Cię poza rutynowy przewodnik użytkownika na bardziej fascynujące terytorium.
Intelektualne zrozumienie a testowanie próbek
Symulacja oparta na testach we wszystkich jej postaciach jest doskonała i często niezastąpiona przy weryfikacji poprawności specyfikacji projektu lub wdrożenia. Rozpoczęcie jest również łatwe. Wystarczy napisać program testowy i rozpocząć symulację. Ale drugą stroną tej prostoty jest to, że nie musimy tego robić w pełni aby zacząć, zrozum, co testujemy. Przekonujemy samych siebie, że dokładnie przeczytaliśmy specyfikację i rozumiemy wszystkie przypadki narożne, ale nie potrzeba dużej złożonej złożoności, aby przytłoczyć nasze zrozumienie.
Formalny zachęca do głębokiego zrozumienia funkcjonalności (przynajmniej jeśli chcesz dostarczyć wartościowy wynik). W powyższym przykładzie proste pytanie – czy z może mieć zawsze same jedynki – nie demonstruje przykładu w ciągu miliarda cykli na symulatorze. Nic dziwnego, ponieważ jest to ekstremalny przypadek narożny. Formalny test dostarcza konkretnego i bardzo nieoczywistego przykładu w 1 sekund i może wykazać, że jest to jedyny taki przypadek w nieco krótszym czasie.
OK, formalnie zrobił to, czego nie potrafiły testy dynamiczne, ale co ważniejsze, nauczyłeś się czegoś, czego symulator mógł ci nigdy nie powiedzieć. Że istnieje tylko jeden możliwy przypadek, w którym taki stan może zaistnieć. Formalny pomógł ci lepiej zrozumieć projekt na poziomie intelektualnym, a nie tylko jako probabilistyczne podsumowanie w skończonym zestawie przypadków testowych.
Problemy ze specyfikacją
Następny przykład Theo opiera się na automacie z błędami (tzw. automacie, ponieważ po naciśnięciu przycisku pojawia się błąd). Wygląda to na całkiem prosty problem sprawdzania równoważności C do RTL, model C po lewej stronie, model RTL po prawej. Jedną z niespodzianek dla Theo na początku jego formalnej kariery było to, że zachowanie przesunięcia w prawo w modelu C nie jest całkowicie zdefiniowane w standardzie C, mimo że gcc będzie zachowywać się rozsądnie. Jednakże DPV będzie narzekać na niedopasowanie w porównaniu z RTL, tak jak powinno. Niezdefiniowane zachowanie jest niebezpieczną rzeczą, na której można polegać.
Porównanie specyfikacji C i RTL wiąże się z innymi zagrożeniami, szczególnie w przypadku szerokości bitów. Obcięcie lub utrata bitu przenoszenia w sygnale pośrednim (#3 powyżej) są dobrymi przykładami. Czy są to problemy ze specyfikacją? Może szara strefa między wyborem specyfikacji a implementacją.
Poza sprawdzaniem równoważności
Wydaje się, że głównym celem DPV jest sprawdzenie równoważności między referencją C lub RTL a implementacją RTL. Jednak taka potrzeba występuje stosunkowo rzadko i istnieją inne przydatne sposoby zastosowania takiej technologii, jeśli są trochę gotowe do użycia. Najpierw klasyk w świecie wdrożeń – wprowadziłem zmianę, naprawiłem błąd – czy w rezultacie wprowadziłem jakieś nowe błędy? Trochę jak sprawdzanie SEQ po dodaniu bramkowania zegara. W niektórych przypadkach analiza osiągalności w wynikach bloków może być kolejnym przydatnym zastosowaniem.
Theo staje się jeszcze bardziej kreatywny, prosząc uczestników szkolenia o wykorzystanie przykładów przeciwnych, aby lepiej zrozumieć projekt, rozwiązać Sudoku or rozkładać na czynniki liczby całkowite. Przyznaje, że DPV jest dziwnym sposobem podejścia do takich problemów, ale wskazuje, że jego zamiarem jest przełamanie iluzji, że DPV służy wyłącznie do sprawdzania równoważności. Ciekawy pomysł i z pewnością wyczerpujące myślenie o takich wyzwaniach. (Przyznaję, że natychmiast zacząłem myśleć o problemie Sudoku, gdy tylko o nim wspomniał.)
Zakończyć
Theo kończy dyskusją na temat metodologii ważnych w zastosowaniu produkcyjnym, wokół ograniczeń, regresji i porównań ze starszymi modelami RTL. Również wyzwania związane z ustaleniem, czy to, co sprawdzasz, rzeczywiście odpowiada specyfikacji języka naturalnego najwyższego poziomu.
Bardzo energetyzujące wystąpienie, warte obejrzenia tutaj, w SolvNet!
Udostępnij ten post przez:
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://semiwiki.com/eda/325878-intel-keynote-on-formal-a-mind-stretcher/
- :Jest
- a
- O nas
- powyżej
- w poprzek
- faktycznie
- Po
- Wszystkie kategorie
- analiza
- i
- Inne
- Zastosowanie
- stosowany
- podejście
- SĄ
- POWIERZCHNIA
- na około
- AS
- At
- na podstawie
- BE
- bo
- Ulepsz Swój
- pomiędzy
- Poza
- Miliard
- Bit
- Blokować
- Pudełko
- przerwa
- Bug
- błędy
- przycisk
- by
- nazywa
- CAN
- ostrożnie
- nieść
- walizka
- Etui
- na pewno
- wyzwania
- zmiana
- ZOBACZ
- kontrola
- wybory
- klasyczny
- zegar
- porównanie
- całkowicie
- kompleksowość
- warunek
- Rozważania
- Ograniczenia
- przekonać
- Corner
- mógłby
- Przeciwdziałać
- Twórczy
- Cykle
- Niebezpieczny
- Dni
- głęboko
- zdefiniowane
- dostarczyć
- wykazać
- Wnętrze
- ZROBIŁ
- dyskusja
- Nie
- nie
- dynamiczny
- Wcześnie
- zachęca
- szczególnie
- Parzyste
- EVER
- przykład
- przykłady
- doskonała
- skrajny
- nie
- fascynujący
- i terminów, a
- ustalony
- Trzepnięcie
- W razie zamówieenia projektu
- formalny
- formularze
- Funkcjonalność
- GCC
- otrzymać
- dany
- dobry
- grafika
- szary
- szara strefa
- zdarzyć
- Have
- pomógł
- Jednak
- HTTPS
- i
- pomysł
- natychmiast
- realizacja
- ważny
- in
- Intel
- intelektualny
- zamiar
- ciekawy
- Pośredni
- przedstawiać
- problemy
- IT
- JEGO
- Myśl przewodnia
- Uprzejmy
- Wiedząc
- język
- dowiedziałem
- Dziedzictwo
- poziom
- lubić
- mało
- WYGLĄD
- od
- maszyna
- zrobiony
- robić
- Maksymalna szerokość
- wzmiankowany
- metodologie
- może
- model
- modele
- jeszcze
- Naturalny
- Język naturalny
- Potrzebować
- Nowości
- Następny
- of
- on
- ONE
- Inne
- Smoła
- plato
- Analiza danych Platona
- PlatoDane
- zwrotnica
- możliwy
- Post
- napisali
- naciśnij
- bardzo
- pierwotny
- Problem
- problemy
- Produkcja
- Program
- Udowodnij
- zapewnia
- cel
- pytanie
- Czytaj
- stosunkowo
- dalsze
- sekund
- zestaw
- powinien
- Signal
- Prosty
- prostota
- symulacja
- symulator
- ponieważ
- witryna internetowa
- So
- kilka
- coś
- Wkrótce
- Dźwięk
- specyficzny
- specyfikacja
- standard
- początek
- rozpoczęty
- bezpośredni
- taki
- PODSUMOWANIE
- niespodzianka
- zaskakujący
- Brać
- Mówić
- Technologia
- test
- Testowanie
- że
- Połączenia
- Te
- rzecz
- Myślący
- Przez
- czas
- do
- najwyższy poziom
- aktualny
- obcięcie
- zrozumieć
- zrozumienie
- Stosowanie
- posługiwać się
- Cenny
- VC
- weryfikacja
- Przeciw
- przez
- Oglądaj
- oglądania
- Droga..
- sposoby
- DOBRZE
- Co
- czy
- który
- będzie
- w
- świat
- wartość
- by
- napisać
- zefirnet