Jakie są różnice między Verilog i Systemverilog?


Najlepsza odpowiedź

1. Verilog to HDL (język opisu sprzętu), podczas gdy SystemVerilog (SV) to zarówno HDL, jak i HVL (Hardware Verification Language), tak zwany HDVL.

2. Verilog ma głównie 2 typy danych Reg i Wire, które są logiką o 4 wartościach 0,1, x, z, podczas gdy SV jest wzbogacony o szeroką gamę typy danych, takie jak int, shortint, longint, logic, bit, real, realtime, reg, chandle, typ danych zdefiniowany przez użytkownika itp., które są połączeniem logiki o wartościach 4 i 2.

3. Pamięć i tablice deklaracja w Verilog ma charakter statyczny, podczas gdy w przypadku SV ma dynamiczny charakter oznacza, że ​​deklarację można zmienić w czasie kompilacji.

4. Cała kolejka zdarzeń w Verilog jest podzielona na 4 regiony, które są aktywne , nieaktywny, NBA i odroczony region, podczas gdy w przypadku SV jest podzielony na 17 regionów, w tym PLI i wprowadzenie bloku programu, który ma wbudowaną metodę race free testbench i jest używany jako separacja między n DUT i TB w przeciwieństwie do Verilog.

5. Verilog ma pojedynczy blok do implementacji logiki kombinacyjnej i sekwencyjnej, podczas gdy SV używa konstrukcji always\_ff, always\_comb, always\_latch do użycia innej logiki.

6. Pełne i równoległe wielkości liter w Verilog są zastępowane przez instrukcje unikalne i priorytetowe w SV.

7. Implementacja FSM w SV jest znacznie łatwiejsza w SV przy użyciu enum typu danych, który ma wiele metody takie jak number, first, last, next, previous, które pomagają w debugowaniu, w przeciwieństwie do używania parametru w Verilog, który jest zakodowany na stałe.

8. SystemVerilog używa konstrukcji interfejsu, która służyła do grupowania wszystkich sygnałów wraz z blokiem taktowania, który jest używany do synchronizacji, w przeciwieństwie do Verilog, w którym tworzenie instancji z DUT staje się żmudne z powodu dużej liczby sygnałów.

9. Verilog używa Testbench na poziomie modułu, podczas gdy SV używa testbench opartego na klasach, który ma charakter dynamiczny.

Odpowiedź

SystemVerilog to nadzbiór i rozszerzenie do języka Verilog . Aby zrozumieć, jak ewoluowała, dobrze będzie krótko zapoznać się z historią i jej przebiegiem

Język Verilog powstał w 1983 jako zastrzeżony język do modelowania sprzętu w Gateway Design Automation Inc. Gateway Design Automation została później przejęta przez Cadence w 1990 roku i kontynuowała ulepszenia. Później stał się standardem IEEE 1364 w 1995 roku i zaczął być coraz szerzej stosowany. Później w 2001 i 2005 wprowadzono dwa główne ulepszenia do Verilog.

W tym samym czasie złożoność projektowania rosła, a ulepszenia w standardzie Verilog dotyczyły głównie konstrukcji RTL.

Metodologie weryfikacji również ewoluowały w tym samym czasie, aby radzić sobie z wydajną weryfikacją złożonych projektów. Ograniczona losowa weryfikacja z weryfikacją opartą na pokryciu i potwierdzeniach stawała się coraz bardziej przydatna.

Ponieważ język Verilog nie obsługuje tego samego, kilka innych języków zorientowanych na weryfikację, takich jak Vera i Specman były szeroko stosowane w przemyśle, ponieważ te wspierały większość konstrukcji potrzebnych do weryfikacji pod względem modelowania, bodźców, twierdzeń itp. Ale te języki były ograniczone do określonych dostawców, a nie do żadnego standardu IEEE.

SystemVerilog był pierwotnie pomyślany jako rozszerzenie Verilog 2005 i stał się standardem IEEE 1800. Został opublikowany jako osobna, udokumentowana i zawiera setki ulepszeń i rozszerzenia Verilog. W 2009 roku oficjalnie stał się super zestawem Verilog i został ponownie zaktualizowany w 2012 roku jako standard IEEE 1800-2012 .

Było 5 głównych obszary, w których dodano ulepszenia w SystemVerilog

1) SVD – System Verilog for Design. Obejmuje to kilka ulepszeń konstrukcji projektowych.

2) SVTB – SystemVerilog for Testbenches: To był największy zestaw ulepszeń w SystemVerilog w celu obsługi całego modelowania Testbench i zapotrzebowania na nowsze metodologie weryfikacji.

Obejmuje to na wysokim poziomie – obsługę programowania obiektowego z klasami, rozwiązanie do rozwiązywania ograniczeń z kilkoma możliwościami tworzenia ograniczonych losowych bodźców, współbieżnych procesów , semafory, skrzynki pocztowe i wiele innych.

3) SVA – Systemowe asercje Verilog: zawiera kilka funkcji dla tymczasowych i współbieżnych twierdzeń, takich jak właściwości i sekwencje.

4) Bezpośredni interfejs programowania SVDPI – SV: zawiera funkcje dla lepszej integracji C / C ++

5) Interfejs programowania aplikacji SVAPI – SV: Obejmuje to funkcje umożliwiające lepszą integrację interfejsów API dla pokrycia i asercji.

Więcej szczegółów można znaleźć w IEEE 1800.2012 spec – 1800-2012 standard

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *