Projektowanie scalonych systemów wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu dla narzędzi syntezy (standaryzacja VHLD a przez IEEE) 1989 Cadence (wykupił Gatewey) odzielenie języka opisu sprzętu od symulatora Verilog XL 1990 Cadence upublicznienie języka OVI (Open Verilog International) wymiana doświadczeń, kontrola specyfikacji i promowanie języka 1993 OVI nowa specyfikacja języka EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 2 1
VERLIOG - historia 1995 IEEE standaryzacja języka : IEEE 1364-1995 2000 Accelera konsorcjum firm: projektantów systemów cyfrowych i dostawców oprogramowania EDA 2001 nowy standard IEEE 1364-2001 (System Verilog 3.0 rozszerzenie standardu IEEE 1364-3001) 2004 Accelera dalsze rozszerzenia i połączenie poprzednich opracowań w jeden dokument 2005 IEEE nowe standardy: Verilog-2005 (IEEE 1364-2005) i System Verilog-2005 (IEEE 1800-2005) Od 2007 prace nad połączeniem obu standardów EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 3 VERLIOG - historia 2009 IEEE najnowszy standard: SystemVerilog IEEE 1800-2009 This standard represents a merger of two previous standards: IEEE Std 1364(TM)-2005 Verilog hardware description language (HDL) and IEEE Std 1800-2005 SystemVerilog unified hardware design, specification, and verification language. EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 4 2
VERILOG wady (?) Dr inż. Andrzej Skoczeń EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 5 Literatura Z. Hajduk Wprowadzenie do języka VERILOG, BTC, 2009 A. Golda, A. Kos Projektowanie układów scalonych CMOS, WKŁ, 2010 i inne EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 6 3
TERMINOLOGIA (1) model (inaczej: system, projekt) (ang. model, system, design) opis projektowanego układu cyfrowego za pomocą pliku źródłowego moduł (ang. module) podstawowa jednostka projektowa (element logiczny) wykorzystywana w modelu (projekcie) port (terminal) (ang. port, terminal) interfejs modułu służący do łączenia z innymi modułami moduł nadrzędny najwyższy w hierarchii moduł EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 7 TERMINOLOGIA (2) Moduł nie jest konkretnym elementem w układzie, lecz opisuje jego zachowanie. Jest definicją typu elementu. Dopiero instancja (urealnienie) (ang. instance) jest konkretnym użyciem wcześniej zdefiniowanego komponentu przez nadanie nazwy (identyfikatora) określonemu elementowi. Jest powołaniem do istnienia konkretnego elementu Moduł nadrzędny nie ma urealnienia. EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 8 4
OPIS UKŁADU Behawioralny opis działania układu, czyli jak układ lub jego części oddziaływają z otoczeniem, opis związków między wejściami i wyjściami układu (http://sjp.pwn.pl: behawior [wym. bihewior, behawior] psych. «każda dająca się zaobserwować reakcja zwierzęcia lub człowieka na bodźce płynące z otoczenia») Strukturalny opis struktury (budowy) układu, czyli połączeń między jego elementami netlista Fizyczny opis struktury tranzystorów układu scalonego maski logiczne i technologiczne (zbiór prostokątów lub wielokątów odpowiednich warstw układu scalonego) EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 9 OPIS STRUKTURALNY prosty układ definicja modułu sumatora EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 10 5
OPIS STRUKTURALNY ogólnie // przykład definiowania modułu module nazwa(lista_portów); input port_we; output port_wy; // opis układu (modułu) endmodule wszystkie porty modułu muszą mieć określony (zdefiniowany) kierunek definicja kierunku może być w oddzielnych liniach lub w pierwszej razem z nazwą EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 11 OPIS STRUKTURALNY typy danych dane połączeniowe (ang. net) służą do połączeń między elementami, przekazują wartości sygnałów: wire zwykłe połączenie inne: wand, wor, tri, triand, tri1, tri0, trireg, supply1, supply0 dane rejestrowe (ang. register) przechowują wartość i reprezentują zmienne reg pozwala wyspecyfikować rejestr inne: integer, time, real, realtime EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 12 6
OPIS STRUKTURALNY podstawowe elementy logiczne (ang. primitives) W jezyku Verilog jest 26 elementów: bramki logiczne: and, nand, or, nor, xor, xnor bufory: buf, bufif0, bufif1, not, notif0, notif1, pulldown, pullup tranzystory: nmos, pmos, cmos, rnmos, rpmos, rcmos, tran, tranif0, tranif1, rtran, rtranif0, rtranif1 EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 13 przerzutnik JK z resetem przykład EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 14 7
przykład przerzutnik JK: opis strukturalny EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 15 przykład przerzutnik JK: moduł testowy Moduł JK_FF_tb jest najwyżej w hierarchii i nie musi być urealniany Powołanie instancji JK1 to ona będzie symulowana Blok proceduralny initial w którym instrukcje są wykonywane sekwencyjnie (od słów begin do end) Opóźnienie i przypisanie wartości zmiennym: # n zmienna = liczba n liczba umownych jednostek czasowych tzw.: zadanie systemowe wymuszające koniec symulacji EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 16 8
przykład przerzutnik JK: bramki EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 17 przykład 2 sumator 2-bitowy Jaki jest typ zmiennej CY0? Przypisanie portów przez wylistowanie w odpowiedniej kolejności (notacja pozycyjna): Bramaki są zdef.: (wyj., wej.1, wej.2, ) Przypisanie portów przez nazwy EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 18 9
przykład 2 sumator 2-bitowy Notacja pozycyjna w powoływaniu instancji EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 19 przykład 2 8-bitowy bufor trójstanowy Opis z tablicą instancji EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 20 10
Przypisania ciągłe (współbieżne) assign Operatory logiczne: - or, & - and, ^ - exor EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 21 Przypisanie niejawne EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 22 11
EiT 2013/14 Projektowanie scalonych systemów wbudowanych - VERILOG 23 12