Generalidades

Note

  • HDL: Lenguajes de Descripción de Hardware (Hardware Description Languages).

  • VHDL / Verilog: Lenguajes estándar de modelado y simulación de circuitos y hardware.

Diferencia entre HDL y Controladores

Debe notarse la diferencia entre el comportamiento físico de un componente o chip —para el cual se emplean lenguajes de descripción de hardware (HDL) durante la fase de diseño y simulación previa a la fabricación— y un controlador de dispositivo (driver), que es el software encargado de gestionar la interacción con dicho hardware en tiempo de ejecución.

En el contexto del firmware y la gestión de energía, ACPI define un entorno de diseño estructurado cuya sintaxis en el nivel de fuente guarda similitudes con el lenguaje C.

El Lenguaje Fuente (ASL) y el Lenguaje Máquina (AML)

El lenguaje de código fuente oficial es ASL (ACPI Source Language), el cual constituye una abstracción legible para el ser humano. La plataforma de hardware o el firmware nunca ejecutan directamente el código ASL.

Siguiendo la analogía con el lenguaje C, la creación de código ejecutable requiere dos pasos fundamentales:

  1. Escritura del código fuente: Elaboración de las tablas y métodos de control en sintaxis ASL.

  2. Compilación: Traducción del código fuente mediante un compilador ASL (como iasl) para generar el bytecode binario ejecutable.

En el caso de ASL, el compilador traduce las instrucciones del desarrollador al lenguaje máquina AML (ACPI Machine Language). El intérprete ACPI integrado en el kernel del sistema operativo (por ejemplo, Acpi.sys en Windows o la subrutina ACPICA en Linux) se encarga de interpretar y ejecutar este bytecode AML en tiempo de ejecución.