# Hardware description language

Un Hardware description language (lett. "linguaggio di descrizione dell'hardware" in italiano, in acronimo HDL) è un linguaggio strutturato, comunemente utilizzato nell'ingegneria elettronica, per descrivere l'architettura dei dispositivi digitali.
Sebbene condividano alcune caratteristiche gli HDL non vanno confusi con i linguaggi di programmazione, che servono scopi diversi.

## Storia

I primi linguaggi di questo tipo apparvero alla fine degli anni '60, con l'aspetto di linguaggi più tradizionali. Il primo ad avere un effetto duraturo fu descritto nel 1971 da Gordon Bell e nel testo di Allen Newell Computer Structures . Questo testo ha introdotto il concetto di register transfer level, usato per la prima volta nel linguaggio ISP per descrivere il comportamento del PDP-8 prodotto dalla Digital Equipment Corporation. Il linguaggio è diventato più diffuso con l'introduzione dei RT-Level Modules PDP-16 di DEC, le cui caratteristiche furono descritte nel libro di Grason Newell Progettazione di computer e sistemi digitali del 1972. Seguirono almeno due implementazioni del linguaggio ISP di base (ISPL e ISPS). L'ISPS era adatto per descrivere le relazioni tra gli input e gli output del design ed è stato rapidamente adottato dai team commerciali di DEC, così come da un certo numero di gruppi di ricerca sia negli Stati Uniti che tra i suoi alleati della NATO.
Il lavoro svolto nel 1979 presso la Technische Universität Kaiserslautern ha prodotto un linguaggio chiamato KARL ("KAiserslautern Register Transfer Language"), che comprendeva le caratteristiche del linguaggio di calcolo del progetto che supportavano il floorplanning dei chip di tipo Very large scale integration (VLSI) e della progettazione hardware strutturata. Questo lavoro è stato anche la base del linguaggio cognitivo grafico interattivo di KARL, il cui nome era "A Block diagram Language" (ABL). Quest'ultimo è stato implementato nei primi anni '80 dal Centro Studi e Laboratori Telecomunicazioni (CSELT) a Torino, in Italia, producendo l'editor di grafica VLSI grafica ABLED. A metà degli anni '80, un progetto di progettazione VLSI è stato implementato attorno a KARL e ABL da un consorzio internazionale finanziato dalla Commissione dell'Unione europea. Alla fine degli anni '70, la tecnologia programmable logic device (PLD) divenne popolare, sebbene questi progetti fossero principalmente limitati alla progettazione di macchine a stati finiti. Il lavoro nel 1980 da General Data implementò questi stessi dispositivi per progettare il Data General Eclipse MV/8000, e le esigenze commerciali iniziarono a crescere per un linguaggio che potesse mappare bene a loro. Nel 1983 la Data I/O introdusse l'ABEL per soddisfare tale necessità.
Con il passaggio a VLSI, il primo moderno linguaggio di descrizione è stato Verilog, introdotto da Gateway Design Automation nel 1985. Nel 1987, una richiesta del Dipartimento della Difesa degli Stati Uniti ha portato allo sviluppo di VHDL, che era basato su Ada, nonché sull'esperienza acquisita con il precedente sviluppo dell'ISPS. Cadence Design Systems ha successivamente acquisito i diritti su Verilog-XL, il simulatore di linguaggio descrizione hardware che diventerebbe lo standard de facto di simulatori Verilog negli anni 1990.

## Descrizione

Un linguaggio di descrizione dell'hardware consente una descrizione precisa e formale di un circuito elettronico che consente l'analisi e la simulazione automatizzate di un circuito elettronico. Consente inoltre la sintesi di una descrizione HDL in una netlist (una specifica di componenti elettronici fisici e il modo in cui sono collegati insieme), che può quindi essere posizionata e instradata per produrre l'insieme di maschere utilizzate per creare un circuito integrato. Un linguaggio di descrizione dell'hardware assomiglia molto ad un linguaggio di programmazione come il C; è una descrizione testuale composta da espressioni, dichiarazioni e strutture di controllo. Una differenza importante tra la maggior parte dei linguaggi di programmazione e HDL è che le HDL includono esplicitamente la nozione di tempo.
Essi sono parte integrante dei sistemi di automazione della progettazione elettronica, specialmente per circuiti complessi, come circuiti integrati specifici per applicazioni, microprocessori e dispositivi logici programmabili.

## Struttura

Consistono in stringhe di testo che descrivono la struttura dei sistemi elettronici e del loro comportamento nel tempo. Come i linguaggi di programmazione simultanei, la sintassi e la semantica includono notazioni esplicite per esprimere la concorrenza. Tuttavia, contrariamente alla maggior parte dei linguaggi di programmazione software, esso include anche una nozione esplicita di tempo, che è un attributo primario dell'hardware. I linguaggi la cui connessione consiste nell'esprimere la connettività del circuito tra la gerarchia dei blocchi sono correttamente classificate come linguaggi netlist usati nella progettazione assistita da elaboratore elettronico (CAD). L'HDL può essere utilizzato per esprimere progetti in architetture strutturali, comportamentali o di registro a livello di trasferimento per la stessa funzionalità del circuito; negli ultimi due casi il sintetizzatore decide l'architettura e il layout della porta logica.