Վերիլոգ

Verilog, Verilog HDL (), կիսահաղորդչային և էլեկտրոնային նախագծման արդյունաբերությունում ապարատային նկարագրման լեզու (ԱՆԼ), որը օգտագործվում է էլեկտրոնային համակարգերի մոդելավորման համար։ Այն օգտագործվում է թվային, անալոգային և խառը-ազդանշանային սխեմաների նախագծման, իրականացման և թեսթավորման համար, աբստրակցիայի տարբեր մակարդակներում։

Պատմություն

Սկիզբ

Verilog-ը ստեղծվել է Phil Moorby և Prabhu Goel կողմից 1983/1984 թ. Automated Integrated Design Systems ընկերության կողմից (1985 թ. վերանվանվել է Gateway Design Automation ) որպես ապարատային նկարագրման լեզու (ԱՆԼ)։ 1990 թ. Gateway Design Automation ընկերությունը գնվել է Cadence Design Systems կողմից։

Verilog-95 

Այդ ժամանակ VHDL լեզվի աճող հաջողությանը զուգընթաց Cadence որոշում է կայացնում հասնել լեզվի ստանդարտացմանը։ Verilog-ը ուղարկվում է IEEE և ընդունվում որպես ստանդարտ IEEE 1364-1995 (հաճախ անվանում են Verilog-95)։

Verilog-2001 
Оգտագործողների կողմից Verilog-95-ում հայտնավերված թերությունները ծածկելու համար լրացումներ ուղարկվեցին IEEE, որոնք ընդունվեցին IEEE 1364-1995 ստանդարտում (հաճախ անվանում են Verilog-2001)։

Verilog-2001 զգալի նորացվել է Verilog-95 հետ համեմատած։ Նախ, ավելացվել է նշանով (2-ական լրացում) գործողություններ կատարելու հնարավորությունը գծերի (nets) և փոփոխականների հետ։ Նախկինում, ծրագրավորողը պետք է կատարեր նշանով գործողություններ օգտագործելով բիթային տրամաբանական օպերացիաներ։ Այժմ նույն գործողությունները Verilog-2001-ում կարող են ավելի հստակ նկարագրվել ներդրված օպերատորների միջոցով +, -, /, *, »> ։

Verilog 2005
Verilog 2005-ում (IEEE Standard 1364-2005) կատարվել են չնչին ուղղումներ և ավելացվել են մի քանի լեզվական առանձնահատկություններ (օրինակ uwire բանալի բառը)։

Verilog ստանդարտի մի առանձին մաս, Verilog-AMS, հրարավորություն է տալիս մոդելավորել անալոգային և խառը ազդանշանային սարքեր։

Օրինակներ 
Ներքևում բերված է Verilog լեզվով գրված "Hello world" ծրագիրը։
module main;
 initial 
 begin
 $display("Hello world!");
 $finish;
 end
endmodule

Կիսագումարիչ
module half_adder(S, C, A, B);
 output S, C;
 input A, B;

 wire S, C, A, B;

 assign S = A ^ B;
 assign C = A & B;

endmodule

Լրիվ գումարիչ օգտագործելով երկու կիսագումարիչ
module full_adder(sum, cout, in1, in2, cin);
 output sum, cout;
 input in1, in2, cin;

 wire sum, cout, in1, in2, cin;
 wire I1, I2, I3;

 half_adder ha1(I1, I2, in1, in2);
 half_adder ha2(sum, I3, I1, cin);

 assign cout = I2 || I3;

endmodule

Հղումներ

Ուսուցողական ռեսուրսներ
 Asic-World – Ընդարձակ առցանց (оnline) ազատ ուսուցողական օրինակներ
 Verilog.net – Վերիլոգ ռեսուրսների ցուցակ
 free Verilog Books  – Առցանց Verilog-ի գրքեր
 FullChipDesign– Verilog-ը օրինակներով
 HDLSnippets.com  – Verilog և SystemVerilog-ի կոդերի օրինակներ
 A Verilog Designers Guide – Սկսնակների համար

Ապարատային նկարագրման լեզուներ