Value Change Dump (VCD) (también conocido con menos frecuencia como "Variable Change Dump") es un formato basado en ASCII para archivos de volcado generados por herramientas de simulación lógica EDA . El formato VCD estándar de cuatro valores se definió junto con el lenguaje de descripción de hardware Verilog por el estándar IEEE 1364-1995 en 1996. Un formato VCD extendido definido seis años más tarde en el estándar IEEE 1364-2001 admite el registro de la intensidad y la direccionalidad de la señal . La estructura simple pero compacta del formato VCD ha permitido que su uso se vuelva omnipresente y se extienda a herramientas que no son de Verilog, como el simulador VHDL. GHDL y varios trazadores de kernel . Una limitación del formato es que no puede registrar los valores en las memorias.
Estructura / sintaxis
El archivo VCD comprende una sección de encabezado con información sobre la fecha, el simulador y la escala de tiempo; una sección de definición de variables; y una sección de cambio de valor, en ese orden. Las secciones no están delineadas explícitamente dentro del archivo, pero se identifican mediante la inclusión de palabras clave que pertenecen a cada sección respectiva.
Las palabras clave de VCD están marcadas con un $ al principio (pero los identificadores de variable también pueden comenzar con un $ ). En general, cada palabra clave comienza una sección que termina con una palabra clave $ end .
Todos los tokens de VCD están delimitados por espacios en blanco . Los datos del archivo VCD distinguen entre mayúsculas y minúsculas.
Sección de encabezado
La sección de encabezado del archivo VCD incluye una marca de tiempo , un número de versión del simulador y una escala de tiempo, que asigna los incrementos de tiempo enumerados en la sección de cambio de valor a las unidades de tiempo de simulación.
Sección de definición de variable
La sección de definición de variables del archivo VCD contiene información de alcance, así como listas de señales instanciadas en un alcance dado.
A cada variable se le asigna un identificador ASCII compacto y arbitrario para su uso en la sección de cambio de valor. El identificador se compone de caracteres ASCII imprimibles de! a ~ (decimal 33 a 126). Varias variables pueden compartir un identificador si el simulador determina que siempre tendrán el mismo valor.
Las definiciones de tipo de alcance siguen de cerca los conceptos de Verilog e incluyen el módulo de tipos , la tarea , la función y la bifurcación .
$ sección dumpvars
La sección que comienza con la palabra clave $ dumpvars contiene los valores iniciales de todas las variables volcadas.
Sección de cambio de valor
La sección de cambio de valor contiene una serie de cambios de valor ordenados en el tiempo para las señales en un modelo de simulación dado. La hora actual se indica con '#' seguido de la marca de tiempo. Para la señal escalar (bit único), el formato es el valor de la señal denotado por 0 o 1 seguido inmediatamente por el identificador de señal sin espacio entre el valor y el identificador de señal. Para señales vectoriales (multibit), el formato es el valor de la señal denotado por la letra 'b' o 'B' seguido del valor en formato binario seguido de un espacio y luego el identificador de la señal. El valor de las variables reales se indica con la letra 'r' o 'R' seguida de los datos que utilizan el formato% .16g printf () seguido de un espacio y luego el identificador de la variable.
Ejemplo de archivo VCD
$ fecha Texto de fecha. Por ejemplo: 11 de noviembre de 2009.$ fin$ versión Texto de información de la versión de la herramienta del generador de VCD.$ fin$ comentario Cualquier texto de comentario.$ fin$ escala de tiempo 1ps $ fin$ lógica del módulo de alcance $ end$ var cable 8 # datos $ end$ var cable 1 $ data_valid $ end$ var cable 1% en $ end$ var cable 1 & rx_en $ end$ var cable 1 'tx_en $ end$ var cable 1 ($ end vacío$ var cable 1) infrautilizado $ end$ upcope $ end$ enddefinitions $ end$ dumpvarsbxxxxxxxx #x $0%X&X'1 (0)$ fin# 0b10000001 #0 $1%0 y1 '0 (0)N.º 22110 'N.º 2296b0 #1 $# 23020 $N.º 2303
El código anterior define 7 señales usando $ var:
$ var tipo nombre de identificación de ancho de bits
La identificación se utiliza más adelante en el volcado de cambio de valor. El volcado de cambio de valor comienza después de $ enddefinitions $ end y se basa en marcas de tiempo. La marca de tiempo se indica como '#' seguida de un número. En cada marca de tiempo se muestra la lista de señales que cambian su valor. Esto se hace mediante el par valor / id:
ID de new_value
Este ejemplo se mostrará como
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/f/fa/Gtkwave_vcdExample.png)
Ver también
enlaces externos
- IEEE Std 1364-2001 : el estándar oficial para Verilog 2001 (no gratuito).
- Compare VCD : una herramienta de línea de comandos para comparar archivos VCD (con licencia GPL).
- Verilog :: VCD : software Perl CPAN para analizar archivos Verilog VCD (con licencia GPL).
- Verilog_VCD : traducido a Python desde el software Perl CPAN
- ProcessVCD : paquete Java para analizar archivos VCD (con licencia de MIT License).
- PyVCD : paquete de Python que escribe archivos de volcado de cambio de valor (VCD) como se especifica en IEEE 1364-2005 (licencia MIT).
- Volcado de cambio de valor : explicación del formato VCD, con un ejemplo.
- vcdMaker : herramienta (Linux, Windows) para traducir archivos de registro de texto en archivos VCD (licencia MIT).
- yne / vcd - (Linux, Mac, Windows) CLI para mostrar archivos VCD en el terminal (Licencia MIT).