See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Verilog - Wikipedia

Verilog

Da Wikipedia, l'enciclopedia libera.

Verilog è un linguaggio di descrizione dell'hardware (HDL) usato per descrivere sistemi elettronici.

Il linguaggio (a volte chiamato Verilog HDL) supporta la progettazione, la verifica, e l'implementazione di Circuiti Digitali e più raramente di Circuiti analogici o Circuiti misti analogico digitali a vari livelli di astrazione. Gli inventori del Verilog volevano un linguaggio con una sintassi simile al C (linguaggio di programmazione) cosi' che fosse familiare agli utilizzatori e facilmente accettato.

Allo stato attuale può considerarsi l'unico linguaggio, assieme al VHDL utilizzato nel mondo della progettazione e simulazione digitale con un 50% circa di mercato rispetto al più moderno ma assai più rigido VHDL.

Il linguaggio distingue tra caratteri maiuscoli e caratteri minuscoli, ha un preprocessore come il C, e le maggiori parole chiave di controllo del flusso del programma, come "if" e "while", sono uguali al C. La formattazione delle procedure di stampa, gli operatori del linguaggio e la loro precedenza sono simili al C.

Il linguaggio differisce dal C in alcuni punti fondamentali. Verilog usa Begin/End invece delle parentesi graffe per definire un blocco di codice. Le costanti in Verilog richiedono di essere specificate in termini di larghezza in numero di bit insieme al tipo di base utilizzata per la definizione. Verilog 95 e 2001 non ha strutture, puntatori, sottoprocedure ricorsive, mentre queste sono presenti nel SystemVerilog che ora include queste capacita'. Infine il concetto di time —così importante per l' HDL— non esiste nel C.

Il linguaggio differisce dai linguaggi di programmazione convenzionali nell'esecuzione delle istruzioni dato che essendo un linguaggio che descrive processi paralleli e concorrenti l'esecuzione non è strettamente lineare.

Un progetto Verilog consiste di una gerarchia di moduli. Ciascun modulo è definito da un insieme di ingressi e uscite e porte bidirezionali, un modulo contiene una lista di fili e registri. Definizione di processi paralleli e sequenziali definiscono il comportamento del modulo definendo la relazione tra le porte i registri e i fili. Le istruzioni sequenziale sono poste all'interno di un blocco begin/end in ordine sequenziale all'interno del blocco.

Tutti le istruzioni concorrenti e tutti i blocchi begin/end sono eseguiti in parallelo. Un modulo contiene una o più istanze di un altro modulo per definire sotto comportamenti. Un sottoinsieme delle istruzioni del linguaggio è logicamente sintetizzabile. Se il modulo in un disegno contiene soltanto istruzioni sintetizzabili, ovvero non ha dichiarazioni di simulazione, del software puo' essere utilizzato per trasformare (sintetizzare) il progetto in una lista di componenti (gate o device) e di connessioni tra loro che descrivono i macro blocchi da implementare in hardware.

La lista di connessioni (netlist) puo' essere per esempio in una forma che descrive un circuito integrato di tipo gate array, molto più raramente uno standard cells, ovvero degli ASIC (ASIC).

Più comunemente l'uscita è un bitstream utilizzata per un dispositivo programmable logic device (e.g. una FPGA).

[modifica] Storia

Il Verilog fu inventato da Phil Moorby alla Automated Integrated Design Systems (più tardi chiamata (Gateway Design Automation) nel 1985 come un linguaggio di programmazione dell'hardware. Gateway Design Automation più tardi fu comprata dalla Cadence Design Systems nel 1990 la quale rese di pubblico dominio il linguaggio Verilog fino ad allora proprietario. Da qui derivò la possibilità di renderlo un standard. Vedi IEEE 1364 (-1995 -2001 -2005). Cadence ha attualmente la proprietà completa dei diritti dei simulatori logici Gateway


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -