Confruntarea cu fier vhdl împotriva verilog, geekbrains - portal de instruire pentru programatori

Pe scurt despre alegerea dificilă a programatorilor "fierului".

Dacă dezvoltați aplicații mobile, pagini web sau creați jocuri, atunci cu siguranță nu înțelegeți despre ce limbi se vorbește, ce să comparați aici și, în general, considerați că nu este vorba despre programare. Dar dacă viața ta este conectată cu FPGA (CPLD, FPGA), atunci întrebarea menționată în titlu nu este pentru tine - alegerea a fost făcută de mult timp. Prin urmare, încercați, în acest text, să luați figurativ mâna primei și să o țineți pe cea de-a doua, obligând în același timp să alegeți.

Confruntarea cu fier vhdl împotriva verilog, geekbrains - portal de instruire pentru programatori

Limbi de descriere a hardware-ului

La mijlocul anilor 1980, dezvoltarea circuitelor integrate a atins un nivel atît de aproape imposibil de a descrie funcționarea acestora cu o logică binară simplă. Pentru sistemele de microcontrolere era adecvată utilizarea limbii deja cunoscute C, dar pentru mai multe dispozitive de bază era necesar să se dezvolte o limbă complet nouă.

Primul reprezentant serios a fost Verilog, dezvoltat de Gateway Design Automation în 1985. O influență enormă asupra limbii a fost dată de același C, se referă atât la preprocesor, cât și la aspectul direct al codului. Scopul principal este circuitele integrate extrem de mari (VLSI), numărul de noduri logice în care depășește 10 mii elemente.

Limba VHDL a fost dezvoltată în paralel, iar clientul principal a fost Departamentul Apărării al SUA. În urma acestui lucru, limba infernului a fost luată ca bază, dar unele trăsături au fost împrumutate de la Pascal. Domeniul de aplicare a fost inițial mai larg decât cel al Verilog, în conformitate cu ideea creatorilor de VHDL ar trebui să se aplice în toate etapele de dezvoltare a circuitelor logice.

După cum am menționat deja, ambele limbi se bazează pe limbile obișnuite la nivel înalt, astfel încât sintaxa și designul, în general, par a fi familiare. Iată o implementare a unui element OR în VHDL:

biblioteca ieee;
utilizați ieee.std_logic_1164.all;

entitatea OR_ent este
port (x: în std_logic;
y: în std_logic;
F: out std_logic
);
end OR_ent;

arhitectura OR_arch of OR_ent este
începe

proces (x, y)
începe
-- comparați cu masa de adevăr
dacă ((x = '0') și (y = '0')) atunci
F <= '0';
altfel
F <= '1';
sfârșit dacă;
end;

arhitectura OR_beh a OR_ent este
începe

Dar punerea în aplicare a OR pe Verilog:

primitiv sau2_put (c, a, b);
ieșire c;
introducerea a, b;
tabel
// a b. c
1. 1;
. 1. 1;
0, 0;
0 x. x;
x 0. x;
endtable
endprimitive

Exemplele ilustrate arată în mod clar diferența între limbi: VHDL limbaj foarte ușor de înțeles concepute pentru designeri de circuit cu înțelegere programare mai inițială, Verilog - pentru programatori cu cunoștințe de bază în circuitele. În primul caz, trebuie doar să picteze o acțiune extrem de executabil cu înțelegere deplină a proceselor care au loc în al doilea - a economisi timp și loc, dând preferință gânduri de funcționalitatea necesară.

Confruntare contemporană

Dacă te uiți la ratingul de popularitate al TIOBE. atunci ambele limbi sunt departe de partea de sus. VHDL în noul clasament are doar 49 de locuri, Verilog - închide sute onorabile. Dacă vă concentrați asupra rezultatelor cererilor de locuri de muncă pe portalul trud.com. atunci situația este inversată - Verilog bate VHDL cu o ușoară marjă.

În plus, Verilog spune modificarea sa modernă - SystemVerilog. Acesta este un limbaj mult mai perfect, ale cărui posibilități depășesc nu numai capacitățile personajelor acestui text, dar și adesea nevoile curente (pentru comparație, diferența este aproximativ aceeași ca și între C ++ și C).

Cu toate acestea, din perspectiva experienței personale câștigă încă VHDL, pur și simplu datorită faptului că probabilitatea ca circuitele de programare se va confrunta cu mult mai mare decât dezvoltator, specializat în limbaje de nivel înalt pentru a veni în jos pentru programarea FPGA.

Articole similare