Indietro

ⓘ Verilog




Verilog
                                     

ⓘ Verilog

Il linguaggio a volte chiamato Verilog HDL supporta la progettazione, la verifica, e limplementazione 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 così che fosse familiare agli utilizzatori e facilmente accettato.

Uno dei metodi più immediati per fare pratica con Verilog è lutilizzo di board che montano chip FPGA, Field Programmable Gate Array. Ne esistono di diversi produttori fra i quali Digilent e Terasic che montano rispettivamente chip prodotti da Xilinx e da Altera. Tramite i tool forniti dalle case produttrici delle board è possibile sintetizzare il codice e caricare il bitstream sul chip FPGA che implementerà il circuito progettato.

Il principale concorrente è VHDL più moderno ma allo stesso tempo meno immediato da utilizzare.

                                     

1. Caratteristiche

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

È sbagliato pensare al Verilog come a un linguaggio di programmazione. Infatti lesecuzione del codice non è sequenziale ma è una descrizione del comportamento che deve assumere un modulo, cioè un componente che costituirà il sistema, per generare delle uscite in risposta a degli ingressi.

Può essere utile confrontare la sintassi con quella del linguaggio C per memorizzare i costrutti. 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 capacità. Infine il concetto di time - così importante per lHDL - non esiste nel C.

Il linguaggio Verilog differisce dai linguaggi di programmazione convenzionali nellesecuzione delle istruzioni dato che essendo un linguaggio che descrive hardware ogni modulo può essere eseguito parallelamente ad altri.

Un progetto Verilog consiste di una gerarchia di moduli. Ciascuno è definito da un insieme di ingressi e uscite e porte bidirezionali. Internamente contiene una lista di file e registri. Definizione di processi paralleli e sequenziali ne definiscono il comportamento definendo la relazione tra le porte i registri e i file. Le istruzioni sequenziali sono poste allinterno di un blocco begin/end in ordine sequenziale allinterno del blocco.

Tutte le istruzioni concorrenti e tutti i blocchi begin/end sono eseguiti in parallelo. Un modulo può contenere una o più istanze di un altro modulo per definire sotto comportamenti.

La controparte alla compilazione del codice sorgente dei comuni linguaggio di programmazione in Verilog è detta sintesi. Mentre nei linguaggio di programmazione il codice sorgente viene tradotto in codice macchina, sequenze di 1 e di 0 nella sintesi alle istruzioni e ai costrutti corrispondono componenti fisici. Le informazioni tratte dalla sintesi in successivi passo di sviluppo sono tradotte in maschere di layout per la stampa dei circuiti integrati oppure in specifico codice detto bitstream per la programmazione di FPGA.

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 può 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 può essere per esempio in una forma che descrive un circuito integrato di tipo gate array, molto più raramente uno standard cells, ovvero degli ASIC.

Più comunemente luscita è un bitstream utilizzata per un dispositivo programmable logic device ad esempio, una FPGA.

                                     

2. Storia

Il Verilog fu inventato nel 1985 da Phil Moorby presso la Automated Integrated Design Systems più tardi denominata Gateway Design Automation come un linguaggio di programmazione dellhardware. Nel 1990 lazienda fu comprata da Cadence Design Systems, la quale rese di pubblico dominio il linguaggio, fino ad allora proprietario. Da qui derivò la possibilità di renderlo uno standard, cosa che avvenne con il nome di IEEE 1364, con revisioni nel 1995, 2001 e 2005. Cadence attualmente detiene la proprietà completa dei diritti dei simulatori logici della vecchia Gateway.

                                     

3. Esempi

Un programma che visualizza "hello world":

Il codice sopra è utile solo per la simulazione. Non è possibile sintetizzare con queste istruzioni un circuito che abbia questo comportamento.

Un esempio di 2 flip-flop.

Loperatore

                                     
  • frequenza, soprattutto per implementarlo in linguaggi di programmazione come verilog VHDL, C e C con un sommatore e una serie di registri. Il contatore
  • License tramite il progetto OpenSPARC. Il progetto include: Il codice Verilog del processore Programmi per la simulazione e il test del processore Specifiche
  • linguaggi detti HDL hardware description language come il VHDL o il Verilog A livello logico ogni componente dell architettura è una rete logica che
  • esempio il linguaggio ABEL è adatto a logiche di bassa complessità, il Verilog e il VHDL sono indicati per applicazioni più complesse. Un PLD contiene
  • fisicamente il chip. Alcuni acquirenti acquistano direttamente la descrizione verilog dei processori in modo da poter ottimizzare anche il singolo core migliorandone
  • un core per CPU equivalente allo Z80, disponibile come codice sorgente Verilog o VHDL per i diffusi ASIC o come sorgente EDIF di netlist per i FPGA da
  • ingresso, e questo non accade solo per software diversi tipo VHDL e verilog ma anche tra diverse versioni dello stesso software, ecco perché diventa
  • Prolog e sistemi hardware ad esempio progettazione di circuiti con Verilog All università di Oxford ci sono tre corsi di laurea che hanno una componente

Anche gli utenti hanno cercato:

manuale verilog,

...
...
...