Logo Studenta

Lenguajes de descripción de hardware

¡Estudia con miles de materiales!

Vista previa del material en texto

Lenguajes de descripción de hardware 
 
Un lenguaje de descripción de hardware (HDL, hardware description language) es un lenguaje de 
programación especializado que se utiliza para definir la estructura, diseño y operación de 
circuitos electrónicos, y más comúnmente, de circuitos electrónicos digitales, como el convertidor 
analógico-digital o cualquier antena satelital. Así, los lenguajes de descripción de hardware hacen 
posible una descripción formal de un circuito electrónico, y posibilitan su análisis automático y su 
simulación. 
 
Los lenguajes de descripción de hardware se parecen mucho a otros lenguajes de programación de 
ordenadores tales como el C o Java: básicamente consisten en una descripción textual con 
expresiones, declaraciones y estructuras de control. Sin embargo, una importante diferencia entre 
los HDL y otros lenguajes de programación está en que el HDL incluye explícitamente la noción de 
tiempo. 
 
Orígenes 
Debido a la creciente complejidad de los circuitos electrónicos digitales desde la década de 1970, 
los diseñadores de circuitos necesitaban descripciones de alto nivel de la lógica digital que no 
estuviesen atadas a una determinada tecnología electrónica, tales como la CMOS o la BJT. Así, los 
HDL fueron creados para hacer posible el diseño de circuitos con un alto nivel de abstracción, y 
con la posibilidad de incluir en los modelos características propias de los circuitos electrónicos, 
tales como los flujos de datos y su variación en el tiempo. Estructura de los HDL 
Los HDL utilizan expresiones estándar basadas en texto que reflejan la estructura de los circuitos 
electrónicos, si se viera dentro de una tarjeta, se podrían observar más de un millón de 
compuertas a disposición del programador. Al igual que los lenguajes de programación 
concurrentes, la sintaxis y semántica de los HDL incluyen notaciones específicas para la 
concurrencia. Sin embargo, al contrario de lo que ocurre con la mayoría de los lenguajes de 
programación, los HDL incluyen también una notación específica para el tiempo, debido a que este 
es una característica fundamental en los circuitos electrónicos reales. Los lenguajes cuyo único 
propósito es expresar la conectividad entre una jerarquía de bloques son más bien clasificados 
como "lenguajes de listas de conexiones" (o lenguajes "netlist"), tales como los que se usan en los 
programas de diseño asistido por ordenador (CAD). Los HDL son algo más rico que estos lenguajes 
de listas de conexiones, ya que no sólo permiten definir la estructura de un circuito, sino también 
su comportamiento. 
 
Así, los HDL pueden ser usados para escribir especificaciones "ejecutables" de hardware. Es decir, 
un programa escrito en HDL hace posible que el diseñador de hardware pueda modelar y simular 
un componente electrónico antes de que este sea construido físicamente. Es esta posibilidad de 
"ejecución" de componentes lo que hace que a veces los HDL se vean como lenguajes de 
programación convencionales, cuando en realidad se debería clasificarlos más precisamente como 
lenguajes de modelado. 
 
En la práctica existen distintos tipos de simuladores capaces de trabajar tanto con eventos 
discretos (digitales) como continuos (analógicos), existiendo lenguajes HDL específicos para cada 
caso. 
 
Pero desde el punto de vista práctico, una gran ventaja de los HDL está en que, utilizando un 
programa llamado "sintetizador" es posible inferir, a partir de la expresión textual del programa, el 
conjunto de operaciones lógicas y el circuito equivalente necesarios para realizar la función del 
programa. Esto permite saltar desde el ámbito de la simulación software al de la implementación 
real del hardware sobre circuitos lógicos reales tales como los ASIC o las FPGA. 
 
Lenguajes 
• VHDL 
• Verilog 
• ABEL HDL

Continuar navegando