VHDL és l'acrònim que representa la combinació de VHSIC i HDL, on VHSIC és l'acrònim de «Very High Speed Integrated Circuit», i HDL és al seu torn l'acrònim de «Hardware Description Language». És un llenguatge usat per enginyers definit pel Institute of Electrical and Electronics Engineers (IEEE) ANSI/IEEE 1076-1993IEEE Standard VHDL Language Reference Manual que es fa servir per a modelar, simular i sintetitzar, és a dir per a dissenyar, circuits digitals. Altres mètodes per a dissenyar circuits són la captura d'esquemes (amb eines tipus CAD) i els diagrames de blocs, però aquest no són pràctics en dissenys complexos. Altres llenguatges per al mateix propòsit poden ser Verilog i ABEL. Tot i que es pot fer servir de manera general per a descriure qualsevol circuit s'usa principalment per a dissenyar circuits integrats a molt gran escala digitals d'alta complexitat i per programar PLD (programable logic device - dispositiu lògic programable) i FPGA (Field Programmable Gate Array).

Una de les característiques més important de VHDL, i probablement un dels aspectes més confusos del llenguatge per a algú nou és la capacitat del llenguatge per descriure un sistema altament concurrent per aprofitar plenament la naturalesa paral·lela de dispositius digitals.

Història El desenvolupament de VHDL començà quan el Departament de Defensa dels EUA (DoD, en anglès) va sol·licitar un llenguatge per descriure hardware. Els dos principals requisits foren:

El llenguatge havia de descriure la lògica del maquinari unívocament amb l'objectiu de poder adaptar els circuits a les noves tecnologies de maquinari sense haver de començar de nou tot el procés de disseny, solucionant així el problema de l'obsolescència tecnològica. L'estructura i la sintaxi del llenguatge havia de ser comprensible pels éssers humans, això permetria que el llenguatge VHDL fos fàcil de mantenir i modificar.

El llenguatge original va trigar més de 16 anys des del concepte inicial a la norma final. Quan el document va ésser aprovat pel comitè de IEEE es va acordar que la norma hauria de ser revisada cada 5 anys. La primera fase de revisió va donar lloc a la norma actualitzada el 1993. Independentment d'aquest acord de revisió, es fa un esforç addicional per normalitzar "les extensions" de la referència del llenguatge pur. Aquestes extensions de cobertura per a paquets d'exemples (std_logic_1164, numeric_bit, numeric_std), que conté tipus de dades molt necessaris i subprogrames.

Evolució temporal de l'estandardització de VHDL 1981 – Iniciat pel Departament de Defensa dels EUA per fer front al cicle de vida de hardware crític. 1983-85 – Desenvolupament de la base de referència d'idiomes per Intermetrics, IBM i TI 1986 – Tots els drets transferits a IEEE 1987 – Publicació de la norma IEEE 1987 - La norma Mil Std 454 requereix ampliar les descripcions VHDL per a poder descriure ASICs 1994 – Estàndard revisat (anomenat VHDL 1076-1993) 2000 – Estàndard revisat (anomenat VHDL 1076-2000) 2002 – Estàndard revisat (anomenat VHDL 1076-2002) 2007 – VHDL Procedural Language Application Interface standard (VHDL 1076c-2007) 2009 – Estàndard revisat (anomenat VHDL 1076-2008)

Seqüència de disseny El flux de disseny d'un sistema podria ser: Divisió del disseny principal en mòduls separats. La modularitat és un dels conceptes principals de tot disseny. Normalment es diferencia entre dues metodologies de disseny: top-down i botton-up. La metodologia top-down consisteix que un disseny complex es divideix en dissenys més senzills que es puguin dissenyar (o descriure) més fàcilment. La metodologia botton-up consisteix a construir un disseny complex a partir de mòduls, ja dissenyats, més simples. A la pràctica, un disseny usa generalment ambdues metodologies. Entrada de dissenys, poden usar-se diversos mètodes tal com es va veure anteriorment. Simulació funcional, és a dir, comprovarem que l'escrit en el punt anterior realment funciona com volem, si no ho fa haurem de modificar. En aquest tipus de simulació es comprova que el codi VHDL o Verilog (o un altre tipus de llenguatge HDL) executa correctament el que es pretén. Síntesi. En aquest pas s'adapta el disseny anterior (que sabem que funciona) a un maquinari en concret, ja sigui una FPGA o un ASIC. Hi ha sentències del llenguatge que no són sintetitzables, com per exemple divisions o exponenciaciones amb nombres no constants. El fet que no totes les expressions en VHDL siguin sintetitzables és que el VHDL és un llenguatge genèric per modelat de sistemes (no només per disseny de circuits digitals), per la qual cosa hi ha expressions que no poden ser transformades a circuits digitals. Durant la síntesi es té en compte l'estructura interna del dispositiu, i es defineixen restriccions, com l'assignació de pins. El sintetitzador optimitza les expressions lògiques per tal que ocupin menor àrea, o bé són eliminades les expressions lògiques que no són usades pel circuit. Simulació post-síntesi. En aquest tipus de simulació es comprova que el sintetitzador ha realitzat correctament la síntesi del circuit, en transformar el codi HDL en blocs lògics connectats entre si. Aquest pas és necessari, ja que, de vegades, els sintetitzadors produeixen resultats de síntesi incorrectes, o bé realitza simplificacions del circuit en optimitzar-lo. Ubicació i encaminament. El procés d'ubicació consisteix a situar els blocs digitals obtinguts en la síntesi de forma òptima, de manera que aquells blocs que es troben molt interconnectats entre si se situïn pròximament. El procés d'encaminament consisteix a interconnectar adequadament els blocs entre si, intentant minimitzar retards de propagació per maximitzar la freqüència màxima de funcionament del dispositiu. Anotació final. Un cop ha estat completat el procés d'ubicació i encaminament, s'extreuen els retards dels blocs i les seves interconnexions, a fi de poder realitzar una simulació temporal (també anomenada simulació post-layout). Aquests retards són anotats en un fitxer SDF (Standard Delay Format) que associa a cada bloc o interconnexió un retard mínim / típic / màxim. Simulació temporal. Malgrat la simulació anterior potser el disseny no funcioni quan es programa, una de les causes pot ser pels retards interns del xip. Amb aquesta simulació es pot comprovar, i si hi ha errors s'ha de tornar a un dels anteriors passos. Programació en el dispositiu. S'implementa el disseny en el dispositiu final i es comprova el resultat.

Procediment de disseny El primer pas del disseny consisteix en la construcció del diagrama en bloc del sistema. En dissenys complexos com en programari els programes són generalment jeràrquics i VHDL ofereix un bon marc de treball per definir els mòduls que integren el sistema i les seves interfícies, deixant els detalls per a passos posteriors.

El segon pas és l'elaboració del codi en VHDL per a cada mòdul, per les seves interfícies i els seus detalls interns. Com el VHDL és un llenguatge basat en text, es pot utilitzar qualsevol editor per aquesta tasca, encara que l'entorn dels programes de VHDL inclou el seu propi editor de text. Després que s'ha escrit algun codi es fa necessari compilar-lo. El compilador de VHDL analitza aquest codi i determina els errors de sintaxi i comprova la compatibilitat entre mòduls. Crea tota la informació necessària per a la simulació. El proper pas és la simulació, la qual li permet establir els estímuls a cada mòdul i observar la seva resposta. El VHDL dona la possibilitat de crear bancs de prova que automàticament aplica entrades i compara les sortides amb les respostes desitjades. La simulació és un pas dins del procés de verificació. El propòsit de la simulació és verificar que el circuit treballa com es desitja, és a dir és més que comparar entrades i sortides. En projectes complexos es fa necessari invertir un gran temps a generar proves que permetin avaluar el circuit en un ampli rang d'operacions de treball. Trobar errors en aquest pas del disseny és millor que al final, on cal repetir llavors una gran quantitat de passos del disseny. Hi ha dues dimensions a verificar: El seu comportament funcional, on s'estudia el seu comportament lògic independent de consideracions de temps, com les demores en les comportes. La seva verificació en el temps, on s'inclouen les demores de les comportes i altres consideracions de temps, com els temps d'establiment (set-up time) i els temps de manteniment (hold time). Després de la verificació s'està llest per entrar a la fase final del disseny. La naturalesa i eines en aquesta fase depenen de la tecnologia, però hi ha tres passos bàsics. El primer és la síntesi, que converteix la descripció en VHDL en un conjunt de components que es poden fer en la tecnologia seleccionada. Per exemple, amb PLD es generen les equacions en suma de productes. En ASIC genera una llista de comportes i un netlist que especifica com aquestes comportes són interconnectades. El dissenyador pot ajudar a l'eina de síntesi especificant requeriments a la tecnologia emprada, com el màxim nombre de nivells lògics o la capacitat de sortida que cal. En el següent pas d'ajust (Fiting) els components s'ajusten a la capacitat del dispositiu que s'utilitza. Per PLD això significa que acobla les equacions obtingudes amb els elements AND - OR que disposa el circuit. Per al cas d'ASIC es dibuixarien les comportes i es definiria com connectar. En l'últim pas es realitza la verificació temporal, ja que a aquesta altura és que es poden calcular els elements paràsits, com les capacitats de les connexions. Com en qualsevol altre procés creatiu, pot ser que ocasionalment s'avanci dos passos endavant i un cap enrere (o pitjor).

Estructura de programa VHDL va ser dissenyat sobre la base dels principis de la programació estructurada. La idea és definir la interfície d'un mòdul de maquinari mentre deixa invisible els seus detalls interns. L'entitat (ENTITY) en VHDL és simplement la declaració de les entrades i sortides d'un mòdul mentre que l'arquitectura (ARCHITECTURE) és la descripció detallada de l'estructura interna del mòdul o del seu comportament. A la següent figura s'il·lustra el concepte anterior. Molts dissenyadors conceben la Entity com una funda de l'arquitectura deixant invisible els detalls del que hi ha dins (architecture). Això forma la base d'un sistema de disseny jeràrquic, l'arquitectura de l'entitat de més nivell (top level) pot usar altres entitats, deixant invisible els detalls de l'arquitectura de la identitat de menys nivell. A la figura les entitats B, E i F no utilitzen altres entitats. Mentre que l'entitat A utilitza totes les altres. A la parella entitat-arquitectura és la flama model. En un fitxer text VHDL l'entitat i l'arquitectura s'escriuen separades, per exemple a continuació es mostra un programa molt simple en VHDL d'una comporta de 2 entrades. Com altres programes, VHDL ignora els espais i salts de línies. Els comentaris s'escriuen amb 2 guions (-) i acaben al final de la línia. A la figura següent es mostra l'estructura d'un model en VHDL.

Sintaxi per la declaració de l'entitat VHDL defineix molts caràcters especials anomenats "paraules reservades". Encara que les paraules reservades no són sensibles a les majúscules o minúscules, en l'exemple que segueix les utilitzarem en majúscules i negreta per identificar-les.

ENTITY Nom_entitat IS PORT (Nom de senyal: MODE tipus de senyal; . . . Nom de senyal: manera tipus de senyal); END nom_entitat;

A més de donar-li nom a l'entitat el propòsit de la declaració és definir els seus senyals (o ports) d'interfície externa en la declaració de ports. A més de les paraules reservades o claus ENTITY,IS, PORT i END, una ENTITY té els següents elements.

Nom_entitat, és un identificador seleccionat per l'usuari per seleccionar l'entitat. Nom de senyal, és una llista d'un o més identificadors separats per una coma i seleccionats per l'usuari per identificar els senyals externes de la interfície.