Está en la página 1de 9

Lenguaje de descripción del hardware

En ingeniería informática, un lenguaje de descripción de hardware (HDL) es un lenguaje


informático especializado que se utiliza para describir la estructura y el comportamiento de los
circuitos electrónicos y, más comúnmente, la lógica digital. circuitos

Un lenguaje de descripción de hardware permite una descripción formal y precisa de un


circuito electrónico que permite el análisis y la simulación automatizados de un circuito
electrónico. También permite la síntesis de una descripción HDL en una lista de conexiones
(una especificación de componentes electrónicos físicos y cómo se conectan entre sí), que
luego se puede colocar y enrutar para producir el conjunto de máscaras que se utilizan para
crear un circuito integrado.

Un lenguaje de descripción de hardware se parece mucho a un lenguaje de programación


como C o ALGOL; es una descripción textual que consta de expresiones, declaraciones y
estructuras de control. Una diferencia importante entre la mayoría de los lenguajes de
programación y los HDL es que los HDL incluyen explícitamente la noción de tiempo.

Los HDL forman parte integral de los sistemas de automatización de diseño electrónico (EDA),
especialmente para circuitos complejos, como circuitos integrados de aplicaciones específicas,
microprocesadores y dispositivos lógicos programables.

Motivación
Debido a la creciente complejidad de los circuitos electrónicos digitales desde la década de
1970 (consulte la ley de Moore), los diseñadores de circuitos necesitaban realizar descripciones
de lógica digital a un alto nivel sin estar vinculados a una tecnología electrónica específica,
como ECL., TTL o CMOS. Los HDL se crearon para implementar la abstracción del nivel de
transferencia de registros, un modelo del flujo de datos y la temporización de un circuito.

Hay dos lenguajes principales de descripción de hardware: VHDL y Verilog. Hay diferentes tipos
de descripción en ellos: "flujo de datos, conductual y estructural". Ejemplo de flujo de datos de
VHDL:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.TODOS;ENTIDAD no1 ES PORT() a :
INTRODUCCIÓN STD_LOGIC; b : Fuera. STD_LOGIC; );FIN no1;ARQUITECTURA
conductual OF no1 ESBEGIN b . NO a;FIN conductual;

Estructura de HDL
Los HDL son expresiones estándar basadas en texto de la estructura de los sistemas
electrónicos y su comportamiento a lo largo del tiempo. Al igual que los lenguajes de
programación concurrentes, la sintaxis y la semántica de HDL incluyen notaciones explícitas
para expresar la concurrencia. Sin embargo, a diferencia de la mayoría de los lenguajes de
programación de software, los HDL también incluyen una noción explícita de tiempo, que es un
atributo principal del hardware. Los lenguajes cuya única característica es expresar la
conectividad de circuitos entre una jerarquía de bloques se clasifican correctamente como
lenguajes de listas de conexiones utilizados en el diseño eléctrico asistido por computadora.
HDL se puede usar para expresar diseños en arquitecturas estructurales, de comportamiento o
de nivel de transferencia de registro para la misma funcionalidad de circuito; en los dos últimos
casos, el sintetizador decide la arquitectura y el diseño de la puerta lógica.
Los HDL se utilizan para escribir especificaciones ejecutables para hardware. Un programa
diseñado para implementar la semántica subyacente de las declaraciones del lenguaje y
simular el progreso del tiempo proporciona al diseñador de hardware la capacidad de modelar
una pieza de hardware antes de crearla físicamente. Es esta ejecutabilidad la que da a los HDL
la ilusión de ser lenguajes de programación, cuando se clasifican con más precisión como
lenguajes de especificación o lenguajes de modelado. Existen simuladores capaces de admitir
el modelado de eventos discretos (digitales) y de tiempo continuo (analógicos), y hay
disponibles HDL específicos para cada uno.

Comparación con lenguajes de flujo de control


Ciertamente, es posible representar la semántica del hardware usando lenguajes de
programación tradicionales como C++, que operan en la semántica del flujo de control en lugar
del flujo de datos, aunque para funcionar como tales, los programas deben complementarse
con bibliotecas de clases extensas y difíciles de manejar. Generalmente, sin embargo, los
lenguajes de programación de software no incluyen ninguna capacidad para expresar
explícitamente el tiempo y, por lo tanto, no pueden funcionar como lenguajes de descripción
de hardware. Antes de la introducción de System Verilog en 2002, la integración de C++ con un
simulador lógico era una de las pocas formas de utilizar la programación orientada a objetos en
la verificación de hardware. System Verilog es el primer HDL importante que ofrece orientación
a objetos y recolección de elementos no utilizados.

Usando el subconjunto apropiado del lenguaje de descripción de hardware, un programa


llamado sintetizador, o herramienta de síntesis lógica, puede inferir operaciones lógicas de
hardware a partir de las declaraciones del lenguaje y producir una lista de conexiones
equivalente de primitivas de hardware genéricas para implementar el comportamiento
especificado. Los sintetizadores generalmente ignoran la expresión de cualquier construcción
de tiempo en el texto. Los sintetizadores lógicos digitales, por ejemplo, generalmente usan los
bordes del reloj como la forma de cronometrar el circuito, ignorando cualquier construcción de
cronometraje. La capacidad de tener un subconjunto sintetizable del lenguaje no hace en sí
mismo un lenguaje de descripción de hardware.

Historia
Los primeros lenguajes de descripción de hardware aparecieron a fines de la década de 1960 y
parecían lenguajes más tradicionales. El primero que tuvo un efecto duradero se describió en
1971 en el texto Computer Structures de C. Gordon Bell y Allen Newell. Este texto introdujo el
concepto de nivel de transferencia de registro, utilizado por primera vez en el lenguaje ISP para
describir el comportamiento del PDP-8 de Digital Equipment Corporation (DEC).

El lenguaje se generalizó más con la introducción de los módulos de nivel RT (RTM) PDP-16 de
DEC y un libro que describe su uso. Siguieron al menos dos implementaciones del lenguaje ISP
básico (ISPL e ISPS). ISPS fue adecuado para describir las relaciones entre las entradas y las
salidas del diseño y fue rápidamente adoptado por los equipos comerciales de DEC, así como
por una serie de equipos de investigación tanto en los EE. UU. como entre sus aliados de la
OTAN.

Los productos RTM nunca despegaron comercialmente y DEC dejó de comercializarlos a


mediados de la década de 1980, cuando las nuevas técnicas y, en particular, la integración a
muy gran escala (VLSI) se hicieron más populares.
Un trabajo separado realizado alrededor de 1979 en la Universidad de Kaiserslautern produjo
un lenguaje llamado KARL ("KAiserslautern Register Transfer Language"), que incluía funciones
de lenguaje de cálculo de diseño compatibles con la planificación de plantas de chips VLSI y el
diseño de hardware estructurado. Este trabajo también fue la base del lenguaje gráfico
interactivo hermano de KARL, ABL, cuyo nombre era una sigla de "Un lenguaje de diagrama de
bloques". ABL fue implementado a principios de la década de 1980 por el Centro Studi e
Laboratori Telecomunicazioni (CSELT) en Torino, Italia, produciendo el editor de diseño gráfico
VLSI de ABLED. A mediados de la década de 1980, un consorcio internacional financiado por la
Comisión de la Unión Europea implementó un marco de diseño VLSI en torno a KARL y ABL.

A fines de la década de 1970, el diseño que usaba dispositivos lógicos programables (PLD) se
hizo popular, aunque estos diseños se limitaban principalmente al diseño de máquinas de
estado finito. El trabajo en Data General en 1980 usó estos mismos dispositivos para diseñar el
Data General Eclipse MV/8000, y comenzó a crecer la necesidad comercial de un lenguaje que
pudiera corresponder bien con ellos. En 1983, Data I/O introdujo ABEL para satisfacer esa
necesidad.

En 1985, cuando el diseño cambió a VLSI, Gateway Design Automation presentó Verilog e
Intermetrics lanzó la primera versión completa del lenguaje de descripción de hardware VHSIC
(VHDL). VHDL se desarrolló a instancias del programa VHSIC del Departamento de Defensa de
los Estados Unidos y se basó en el lenguaje de programación Ada, así como en la experiencia
adquirida con el desarrollo anterior de ISPS. Inicialmente, Verilog y VHDL se usaban para
documentar y simular diseños de circuitos ya capturados y descritos en otra forma (como
archivos esquemáticos). La simulación HDL permitió a los ingenieros trabajar a un nivel más
alto de abstracción que la simulación a nivel esquemático y, por lo tanto, aumentó la capacidad
de diseño de cientos de transistores a miles. En 1986, con el apoyo del Departamento de
Defensa de EE. UU., VHDL fue patrocinado como un estándar IEEE (IEEE Std 1076) y la primera
versión estandarizada por IEEE de VHDL, IEEE Std 1076-1987, fue aprobada en diciembre de
1987. Diseño de cadencia Posteriormente, Systems adquirió Gateway Design Automation por
los derechos de Verilog-XL, el simulador HDL que se convertiría en el estándar de facto de los
simuladores Verilog durante la próxima década.

La introducción de la síntesis lógica para los HDL hizo que los HDL pasaran de un segundo plano
al primer plano del diseño digital. Las herramientas de síntesis compilaron archivos fuente HDL
(escritos en un formato restringido llamado RTL) en una descripción de lista de conexiones
fabricable en términos de puertas y transistores. Escribir archivos RTL sintetizables requería
práctica y disciplina por parte del diseñador; En comparación con un diseño esquemático
tradicional, las netlists RTL sintetizadas casi siempre tenían un área más grande y un
rendimiento más lento. El diseño de un circuito por parte de un ingeniero experto, utilizando
una captura esquemática/diseño manual que requiere mucha mano de obra, casi siempre
superaría a su equivalente sintetizado lógicamente, pero la ventaja de productividad que tenía
la síntesis pronto desplazó la captura esquemática digital exactamente a aquellas áreas que
eran problemáticas para Síntesis RTL: circuitos asíncronos, de baja potencia o de velocidad
extremadamente alta.

En unos pocos años, VHDL y Verilog surgieron como los HDL dominantes en la industria
electrónica, mientras que los HDL más antiguos y menos capaces desaparecieron gradualmente
del uso. Sin embargo, VHDL y Verilog comparten muchas de las mismas limitaciones, como que
no son adecuados para la simulación de circuitos analógicos o de señal mixta. Los HDL
especializados (como Confluence) se introdujeron con el objetivo explícito de solucionar las
limitaciones específicas de Verilog y VHDL, aunque ninguno tuvo la intención de reemplazarlos.

A lo largo de los años, se ha invertido mucho esfuerzo en mejorar los HDL. La última iteración
de Verilog, conocida formalmente como IEEE 1800-2005 SystemVerilog, presenta muchas
características nuevas (clases, variables aleatorias y propiedades/afirmaciones) para abordar la
creciente necesidad de una mejor aleatorización del banco de pruebas, jerarquía de diseño y
reutilización. También se está desarrollando una revisión futura de VHDL y se espera que
coincida con las mejoras de SystemVerilog.

Diseño usando HDL


Como resultado de las ganancias de eficiencia obtenidas con HDL, la mayoría del diseño de
circuitos digitales modernos gira en torno a él. La mayoría de los diseños comienzan como un
conjunto de requisitos o un diagrama arquitectónico de alto nivel. Las estructuras de control y
decisión a menudo se crean prototipos en aplicaciones de diagramas de flujo o se ingresan en
un editor de diagramas de estado. El proceso de escribir la descripción HDL depende en gran
medida de la naturaleza del circuito y de la preferencia del diseñador por el estilo de
codificación. El HDL es simplemente el 'lenguaje de captura', que a menudo comienza con una
descripción algorítmica de alto nivel, como un modelo matemático C++. Los diseñadores suelen
utilizar lenguajes de secuencias de comandos como Perl para generar automáticamente
estructuras de circuitos repetitivos en el lenguaje HDL. Los editores de texto especiales ofrecen
características para sangría automática, coloración dependiente de la sintaxis y expansión
basada en macros de la declaración de entidad/arquitectura/señal.

El código HDL luego se somete a una revisión de código o auditoría. En preparación para la
síntesis, la descripción de HDL está sujeta a una serie de verificadores automáticos. Los
verificadores informan las desviaciones de las pautas de código estandarizadas, identifican
posibles construcciones de código ambiguas antes de que puedan causar una mala
interpretación y verifican errores de codificación lógica comunes, como puertos flotantes o
salidas en cortocircuito. Este proceso ayuda a resolver errores antes de que se sintetice el
código.

En el lenguaje de la industria, el diseño de HDL generalmente termina en la etapa de síntesis.


Una vez que la herramienta de síntesis ha mapeado la descripción de HDL en una lista de
conexiones de puerta, la lista de redes pasa a la etapa de back-end. Dependiendo de la
tecnología física (FPGA, matriz de compuertas ASIC, celda estándar ASIC), los HDL pueden
desempeñar o no un papel importante en el flujo de back-end. En general, a medida que el
flujo de diseño avanza hacia una forma físicamente realizable, la base de datos de diseño se
carga cada vez más con información específica de la tecnología, que no se puede almacenar en
una descripción HDL genérica. Finalmente, se fabrica o programa un circuito integrado para su
uso.

Simulación y depuración de código HDL


Esencial para el diseño HDL es la capacidad de simular programas HDL. La simulación permite
que una descripción HDL de un diseño (llamado modelo) pase la verificación del diseño, un hito
importante que valida la función (especificación) prevista del diseño frente a la
implementación del código en la descripción HDL. También permite la exploración
arquitectónica. El ingeniero puede experimentar con opciones de diseño escribiendo múltiples
variaciones de un diseño base y luego comparando su comportamiento en la simulación. Por lo
tanto, la simulación es fundamental para el éxito del diseño de HDL.
Para simular un modelo HDL, un ingeniero escribe un entorno de simulación de alto nivel
(llamado banco de pruebas). Como mínimo, un banco de pruebas contiene una instanciación
del modelo (llamado dispositivo bajo prueba o DUT), declaraciones de pines/señales para las
E/S del modelo y una forma de onda de reloj. El código del banco de pruebas está dirigido por
eventos: el ingeniero escribe instrucciones HDL para implementar la señal de restablecimiento
(generada por el banco de pruebas), para modelar transacciones de interfaz (como una
lectura/escritura de host-bus) y para monitorear la salida del DUT.. Un simulador HDL, el
programa que ejecuta el banco de pruebas, mantiene el reloj del simulador, que es la
referencia maestra para todos los eventos en la simulación del banco de pruebas. Los eventos
ocurren solo en los instantes dictados por el HDL del banco de pruebas (como un reinicio-
alternancia codificado en el banco de pruebas), o en reacción (por el modelo) a estímulos y
eventos desencadenantes. Los simuladores HDL modernos tienen interfaces gráficas de usuario
con todas las funciones, completas con un conjunto de herramientas de depuración. Estos
permiten al usuario detener y reiniciar la simulación en cualquier momento, insertar puntos de
interrupción del simulador (independientes del código HDL) y monitorear o modificar cualquier
elemento en la jerarquía del modelo HDL. Los simuladores modernos también pueden vincular
el entorno HDL con bibliotecas compiladas por el usuario, a través de una interfaz PLI/VHPI
definida. La vinculación depende del sistema (x86, SPARC, etc. con Windows/Linux/Solaris), ya
que el simulador HDL y las bibliotecas de usuario se compilan y vinculan fuera del entorno HDL.

La verificación del diseño suele ser la parte del proceso de diseño que más tiempo consume,
debido a la desconexión entre la especificación funcional de un dispositivo, la interpretación de
la especificación por parte del diseñador y la imprecisión del lenguaje HDL.. La mayor parte del
ciclo inicial de prueba/depuración se lleva a cabo en el entorno del simulador de HDL, ya que la
etapa inicial del diseño está sujeta a cambios de circuito importantes y frecuentes. Una
descripción HDL también se puede crear prototipos y probar en hardware; a menudo se
utilizan dispositivos lógicos programables para este propósito. La creación de prototipos de
hardware es comparativamente más costosa que la simulación HDL, pero ofrece una vista del
diseño del mundo real. La creación de prototipos es la mejor manera de comparar la interfaz
con otros dispositivos de hardware y prototipos de hardware. Incluso aquellos que se ejecutan
en FPGA lentos ofrecen tiempos de simulación mucho más cortos que la simulación HDL pura.

Verificación de diseño con HDLs


Históricamente, la verificación del diseño era un ciclo laborioso y repetitivo de escritura y
ejecución de casos de prueba de simulación contra el diseño bajo prueba. A medida que los
diseños de chips se han vuelto más grandes y complejos, la tarea de verificación del diseño ha
crecido hasta el punto en que ahora domina el cronograma de un equipo de diseño. En busca
de formas de mejorar la productividad del diseño, la industria de la automatización del diseño
electrónico desarrolló el lenguaje de especificación de propiedades.

En términos de verificación formal, una propiedad es una declaración fáctica sobre el


comportamiento esperado o supuesto de otro objeto. Idealmente, para una descripción HDL
dada, una propiedad o propiedades pueden demostrarse como verdaderas o falsas utilizando
métodos matemáticos formales. En términos prácticos, muchas propiedades no pueden
probarse porque ocupan un espacio de solución ilimitado. Sin embargo, si se proporciona un
conjunto de suposiciones o restricciones operativas, un verificador de propiedades puede
probar (o refutar) ciertas propiedades al reducir el espacio de solución.

Las aserciones no modelan la actividad del circuito, pero capturan y documentan la intención
del diseñador en el código HDL. En un entorno de simulación, el simulador evalúa todas las
afirmaciones especificadas e informa la ubicación y la gravedad de cualquier infracción. En un
entorno de síntesis, la herramienta de síntesis suele funcionar con la política de detener la
síntesis ante cualquier infracción. La verificación basada en afirmaciones aún está en sus
inicios, pero se espera que se convierta en una parte integral del conjunto de herramientas de
diseño de HDL.

HDL y lenguajes de programación


Un HDL es muy similar a un lenguaje de programación de software, pero existen diferencias
importantes. La mayoría de los lenguajes de programación son inherentemente
procedimentales (un solo subproceso), con soporte sintáctico y semántico limitado para
manejar la concurrencia. Los HDL, por otro lado, se asemejan a los lenguajes de programación
concurrentes en su capacidad para modelar múltiples procesos paralelos (como flip-flops y
sumadores) que se ejecutan automáticamente de forma independiente entre sí. Cualquier
cambio en la entrada del proceso activa automáticamente una actualización en la pila de
procesos del simulador.

Tanto los lenguajes de programación como los HDL son procesados por un compilador (a
menudo llamado sintetizador en el caso de HDL), pero con diferentes objetivos. Para HDL,
"compilar" se refiere a la síntesis lógica; el proceso de transformar la lista de códigos HDL en
una netlist de puerta físicamente realizable. La salida de netlist puede tomar cualquiera de
muchas formas: una "simulación" netlist con información de retardo de puerta, una
"transferencia" netlist para la colocación y el enrutamiento posteriores a la síntesis en una
matriz de semiconductores, o un Formato de intercambio de diseño electrónico (EDIF) genérico
estándar de la industria (para la conversión posterior a un archivo de formato JEDEC).

Por otro lado, un compilador de software convierte la lista de código fuente en un código
objeto específico del microprocesador para su ejecución en el microprocesador de destino. A
medida que los HDL y los lenguajes de programación toman prestados conceptos y
características, el límite entre ellos se vuelve menos claro. Sin embargo, los HDL puros no son
adecuados para el desarrollo de software de aplicaciones de propósito general, al igual que los
lenguajes de programación de propósito general no son deseables para el modelado de
hardware.

Sin embargo, a medida que los sistemas electrónicos se vuelven cada vez más complejos y los
sistemas reconfigurables se vuelven cada vez más comunes, existe un deseo creciente en la
industria de contar con un lenguaje único que pueda realizar algunas tareas tanto de diseño de
hardware como de programación de software. SystemC es un ejemplo de este tipo: el
hardware del sistema integrado se puede modelar como bloques arquitectónicos no detallados
(cajas negras con entradas de señal modeladas y controladores de salida). La aplicación de
destino está escrita en C o C++ y compilada de forma nativa para el sistema de desarrollo del
host; en lugar de apuntar a la CPU integrada, que requiere una simulación de host de la CPU
integrada o una CPU emulada.

El alto nivel de abstracción de los modelos SystemC se adapta bien a la exploración de


arquitectura temprana, ya que las modificaciones arquitectónicas se pueden evaluar fácilmente
sin preocuparse por los problemas de implementación a nivel de señal. Sin embargo, el modelo
de subprocesamiento utilizado en SystemC se basa en la memoria compartida, lo que hace que
el lenguaje no maneje bien la ejecución paralela o los modelos de bajo nivel.
Síntesis de alto nivel
En su nivel de abstracción, los HDL se han comparado con los lenguajes ensambladores. Hay
intentos de elevar el nivel de abstracción del diseño de hardware para reducir la complejidad
de la programación en HDL, creando un subcampo llamado síntesis de alto nivel.

Empresas como Cadence, Synopsys y Agility Design Solutions están promocionando SystemC
como una forma de combinar lenguajes de alto nivel con modelos de simultaneidad para
permitir ciclos de diseño más rápidos para FPGA de lo que es posible con los HDL tradicionales.
Los enfoques basados en C o C++ estándar (con bibliotecas u otras extensiones que permiten la
programación paralela) se encuentran en las herramientas Catapult C de Mentor Graphics y las
herramientas Impulse C de Impulse Accelerated Technologies.

Una iniciativa similar de Intel es el uso de Data Parallel C++, relacionado con SYCL, como
lenguaje de síntesis de alto nivel.

CoreFire Design Suite de Annapolis Micro Systems, Inc. y LabVIEW FPGA de National
Instruments brindan un enfoque de flujo de datos gráfico para la entrada de diseño de alto
nivel y lenguajes como SystemVerilog, SystemVHDL y Handel-C buscan lograr lo mismo
objetivo, pero tienen como objetivo hacer que los ingenieros de hardware existentes sean más
productivos, en lugar de hacer que los FPGA sean más accesibles para los ingenieros de
software existentes.

También es posible diseñar módulos de hardware usando MATLAB y Simulink usando la


herramienta MathWorks HDL Coder o DSP Builder para Intel FPGA o Xilinx System Generator
(XSG) de Xilinx.

Ejemplos de HDL
HDL para el diseño de circuitos analógicos
Nombre Descripción

HDL-A Un HDL analógico patentado

SpectreHDL Un HDL analógico patentado de Cadence Design Systems


para su simulador de circuito de Spectre
Verilog-AMS (Verilog for Analog Una extensión estándar de Accellera de IEEE Std 1364
and Mixed-Signal) Verilog para simulación analógica y de signos mixtos
VHDL-AMS (VHDL con extensión Una extensión estándar IEEE (IEEE Std 1076.1) de VHDL
Analog/Mixed-Signal) para simulación analógica y de signos mixtos
HDL para el diseño de circuitos digitales
Las dos variedades de HDL más utilizadas y mejor admitidas en la industria son Verilog y VHDL.

Nombre Descripción

Lenguaje de Expresión HDL obsoleto hecho por Data I/O Corporation en 1983
Booleana Avanzada (ABEL)

Altera Hardware Descripción un idioma propietario de Altera


Idioma (AHDL)
AHPL Un lenguaje de programación de hardware
Amaranth basado en Python
Bluespec HDL de alto nivel basado en Haskell (no integrado DSL)
Sistema BluespecVerilog basado en Bluespec, con Verilog HDL como sintaxis, por
(BSV) Bluespec, Inc.
C-to-Verilog Conversor de C a Verilog
Chisel (Constructing basado en Scala (DSL subido)
Hardware in a Scala
Embedded Language)
Choque de choque Un El choque es un lenguaje funcional de descripción de
lenguaje moderno, funcional, hardware que presta tanto su sintaxis como semántica del
de descripción de hardware lenguaje de programación funcional Haskell
COLAMO (Angulo común a idioma propietario de “Supercomputers and
orientado para la arquitectura Neurocomputers Research Center” Co Ltd.
de múltiples objetos)
Confluencia un HDL funcional; ha sido suspendido
CoWareC un HDL basado en C por CoWare. Ahora descontinuado a
favor de SystemC
CUPL (Compilador para Lógica a idioma propietario de los dispositivos lógicos, Inc.
Programable Universal)
ELLA ya no en uso común
ESys.net . Marco NET escrito en C#
Handel-C un lenguaje de diseño similar a C
Hardcaml basado en OCaml (DSL removido). Pruébalo en línea.
HHDL basado en Haskell (DSL removido).
Hardware Únase a Java (HJJ) basado en Join Java
HML (Hardware ML) basado en el estándar ML
Hydra basado en Haskell
Impulso C otro C-como HDL
ISPS HDL original de CMU, ya no en uso común
ParC (Parallel C++) kusu extendido con hilos de estilo HDL y comunicación para
la programación del paralelo de tareas
JHDL basado en Java
KARL KAiserslautern Regístrate Idioma (capítulo en), un lenguaje
descriptivo de hardware Pascalish, ya no en uso común.
Lava basado en Haskell (DSL removido).
Lola un lenguaje simple utilizado para la enseñanza
M Un HDL de Mentor Graphics
MyHDL basado en Python (DSL removido)
PALASM para dispositivos Array Logic (PAL) programables
PipelineC Un lenguaje de descripción de hardware similar a C
añadiendo una tubería automática de alta síntesis como
una función de construcción/compilador de lenguaje.
PyMTL basado en Python, de la Universidad Cornell
PyRTL basado en Python, de la Universidad de California, Santa
Barbara
ROCCC (Riverside Optimizing Fuente libre C a la herramienta HDL
Compiler for Configurable
Computing)
RHDL basado en el lenguaje de programación Ruby
ROHD (Rapid Open Hardware un marco para el diseño y verificación de hardware, escrito
Development framework) en Dart
Ruby (idioma de descripción
de hardware)
SystemC una clase estandarizada de bibliotecas C++ para el
modelado de alto nivel de comportamiento y transacción de
hardware digital a un alto nivel de abstracción, es decir, a
nivel de sistema
SystemVerilog a superset of Verilog, with enhancements to address
system-level design and verification
SpinalHDL Based on Scala (embedded DSL)
SystemTCL SDL basado en Tcl.
THDL++ (Templated HDL Ampliación de VHDL con herencia, plantillas avanzadas y
inspirado en C++) clases de política
Verik Kotlin reinterpretó con la semántica de un HDL. Se transpila
a SystemVerilog.
TL-Verilog (Transaction-Level Ampliación de Verilog/SystemVerilog con construcciones
Verilog) para tuberías y transacciones.
Verilog Una de las HDL más utilizadas y bien apoyadas
VHDL (VHSIC HDL) Una de las HDL más utilizadas y bien apoyadas

HDL para el diseño de placas de circuito impreso


Existen varios proyectos para definir la conectividad de la placa de circuito impreso utilizando
métodos de entrada de texto basados en el lenguaje.

Nombre Descripción

PHDL (PCB Un HDL de código abierto y libre para definir la conectividad del circuito
HDL) impreso

EDAsolver Un HDL para resolver diseños esquemáticos basados en limitaciones


SKiDL Módulo de python de código abierto para diseñar circuitos electrónicos

También podría gustarte