Վերիլոգ

Վիքիպեդիայից՝ ազատ հանրագիտարանից

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

Բովանդակություն

[խմբագրել] Պատմություն

[խմբագրել] Սկիզբ

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

[խմբագրել] Հղումներ

[խմբագրել] Ուսուցողական ռեսուրսներ

Անձնական գործիքներ
Անվանատարածքներ

Տարբերակներ
Գործողություններ
Նավարկում
Մասնակցել
Գործիքներ
Այլ լեզուներով