Glosario
Definiciones breves y autocontenidas de los términos de VHDL y de simulación que aparecen en Kmila y en su documentación. Cada término está pensado para leerse por separado.
Entity (entidad)
La interfaz de un componente de hardware en VHDL. Declara el nombre del bloque, sus puertos (in, out, inout) y sus parámetros genéricos, pero no describe su comportamiento interno. Es el «contrato» que otros diseños usan para instanciarlo.
Architecture (arquitectura)
La implementación de una entidad: describe cómo se comporta o se construye internamente. Una misma entidad puede tener varias arquitecturas (por ejemplo, una de comportamiento y otra estructural).
Process (proceso)
Un bloque de sentencias secuenciales que se ejecuta como una unidad concurrente dentro de una arquitectura. Se reactiva cuando cambia alguna señal de su lista de sensibilidad y es donde se describe la lógica secuencial y combinacional.
Signal (señal)
Un objeto que modela un cable o un registro y transporta valores en el tiempo. Se asigna con <= y su nuevo valor se aplica de forma diferida, al final del ciclo delta, no de inmediato.
Variable
Un objeto local a un proceso o subprograma que se asigna con := y se actualiza de inmediato. Sirve como almacenamiento temporal de cálculo, no como cable físico.
Delta cycle (ciclo delta)
Un paso infinitesimal de simulación que no consume tiempo simulado. Permite resolver de forma determinista varios cambios de señal que ocurren «en el mismo instante»: se evalúan todos los procesos y luego se aplican todas las actualizaciones de señal a la vez.
Elaboration (elaboración)
La etapa que convierte el árbol de sintaxis en un modelo ejecutable: resuelve entidades, arquitecturas, componentes, paquetes y librerías IEEE, y fija el tamaño real de cada señal y vector.
Sensitivity list (lista de sensibilidad)
El conjunto de señales que un proceso «observa». El proceso vuelve a ejecutarse solo cuando cambia alguna de ellas. Para lógica combinacional debe incluir todas las entradas leídas; para lógica secuencial suele incluir solo el reloj (y el reset asíncrono).
Atributo 'event
Atributo de una señal que es verdadero cuando la señal acaba de cambiar de valor en el ciclo delta actual. Es la base de la detección de flancos: rising_edge(clk) equivale a clk'event and clk = '1'.
Atributo 'stable
Atributo que es verdadero cuando una señal no ha cambiado durante un intervalo dado; es, en esencia, el complemento de 'event. Kmila también rastrea 'last_value (el valor anterior) y 'active.
std_logic
El tipo de dato estándar (de la librería IEEE.std_logic_1164) para un único bit de lógica digital. Admite nueve valores, no solo '0' y '1': por ejemplo 'Z' (alta impedancia), 'X' (desconocido) y 'U' (no inicializado).
std_logic_vector
Un arreglo de valores std_logic que representa un bus de varios bits, por ejemplo std_logic_vector(7 downto 0) para un bus de 8 bits. Los tipos relacionados signed y unsigned (de IEEE.numeric_std) añaden interpretación aritmética.
VCD (Value Change Dump)
Formato de archivo estándar que registra cada cambio de valor de las señales a lo largo del tiempo. Kmila exporta VCD compatible con GTKWave, además de CSV y texto.
Netlist
Descripción estructural de un circuito como un grafo de celdas (compuertas, registros) conectadas por nodos. Kmila la genera en un paso de síntesis independiente de la simulación para dibujar la vista de esquemático.
Testbench (banco de pruebas)
Un diseño VHDL cuya única función es estimular y verificar otro diseño (el DUT): genera relojes y entradas, y comprueba las salidas. No representa hardware sintetizable.
RTL (Register-Transfer Level)
Estilo de descripción de hardware en términos de registros y de las transferencias de datos entre ellos en cada flanco de reloj. Es el nivel de abstracción habitual para escribir diseños digitales sintetizables.
Synthesis (síntesis)
El proceso de traducir una descripción de comportamiento (RTL) a una implementación estructural en términos de primitivas de hardware. Kmila realiza una síntesis a netlist para visualización y estimación de recursos; no genera un bitstream para una FPGA física.
FPGA (Field-Programmable Gate Array)
Un chip reconfigurable cuya lógica se programa después de fabricado. Kmila permite aprender y depurar diseños sin una FPGA, simulándolos por software, y estima cuántos recursos ocuparían en un dispositivo objetivo.
LUT (Look-Up Table)
El bloque básico con el que una FPGA implementa lógica combinacional: una pequeña tabla que produce una salida para cada combinación de entradas. Kmila estima el uso de LUTs de un diseño.
Flip-flop
El elemento de almacenamiento de un bit sincronizado por reloj; los registros se construyen con flip-flops. Kmila estima el número de flip-flops contando las señales asignadas dentro de procesos con reloj.