Reklama
Dzisiaj jest 9 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

Verilog

Verilog

Verilog to język opisu sprzętu, który służy do projektowania i symulacji układów cyfrowych, szczególnie w kontekście ASIC i FPGA.

Reklama

Historia

Verilog został opracowany w 1984 roku przez Phila Moorby’ego w firmie Gateway Design Automation. W 1985 roku pojawiła się pierwsza wersja handlowa, a w 1986 roku wprowadzono symulator Verilog-XL. W 1988 roku firma Synopsys wprowadziła pierwsze narzędzie do syntezy sprzętu wykorzystujące Verilog.

W 1989 roku Gateway Design Automation została przejęta przez Cadence, która w 1990 roku uczyniła Verilog otwartym standardem. Utworzono organizację Open Verilog International (OVI), która w 1995 roku opracowała pierwszy oficjalny standard – IEEE Std 1364-1995. W 2000 roku OVI połączyło się z VHDL International, tworząc Accellera. Standard został zrewidowany w 2001 roku (IEEE Std 1364-2001).

Reklama

W 2002 roku Accellera rozpoczęła znaczące ulepszenia Veriloga, co doprowadziło do powstania nowego projektu – SystemVerilog, z zachowaniem dużej zgodności z oryginalnym Verilogiem. W 2005 roku zatwierdzono nową wersję standardu Veriloga (IEEE Std 1364-2005) oraz pierwszy standard SystemVeriloga (IEEE Std 1800-2005).

Opis

Wersja Veriloga z 1995 roku charakteryzowała się niejednorodnością, ale oferowała doskonałe możliwości opisu na poziomie bramek oraz dobrą obsługę poziomów pośrednich (RTL). Zmiany z 2001 roku uczyniły język bardziej jednorodnym, poprawiając składnię i możliwości opisu wyższych poziomów.

Podstawową jednostką opisu w Verilogu jest moduł (module). Moduły mogą być łatwo używane w hierarchii projektu poprzez podanie ich nazwy, etykiety oraz listy parametrów i połączeń. Funkcjonalność modułów opisuje się za pomocą współbieżnych procesów always i initial, które obsługują instrukcje znane z tradycyjnych języków programowania, takie jak przypisania, wywołania funkcji czy pętle.

Przykład

Poniżej przedstawiono prosty opis układu 7400 w Verilogu:

module ttl7400(Out, A, B);
    output [3:0] Out;
    input [3:0] A;
    input [3:0] B;
    nand #10 (Out[0], A[0], B[0]);
    nand #10 (Out[1], A[1], B[1]);
    nand #10 (Out[2], A[2], B[2]);
    nand #10 (Out[3], A[3], B[3]);
endmodule

Verilog jest kluczowym narzędziem w projektowaniu układów elektronicznych, umożliwiającym efektywne modelowanie i symulację. Jego rozwój odzwierciedla ewolucję technologii w tej dziedzinie.

Reklama
Reklama