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