No es una buena respuesta, pero de acuerdo con esta página de Wiki ghdl puede crear un Versión comprimida del archivo VCD. Espero que se comprima bastante bien: tu breve prueba puede darte una idea de la relación de compresión.
Esto todavía te deja con todo el volcado, por supuesto, pero la wiki muestra el archivo que se está descomprimiendo y canalizado en el visor de formas de onda GTKWave.
En cambio, si lo canalizaste a un filtro usando grep
, podrías extraer una versión reducida y guardarla.
Mirando el formato de archivo VCD, este será un proceso de dos etapas:
- grep los nombres de señal en los que está interesado. Esto proporciona las secuencias de caracteres cortas que VCD usa como el ID de cada señal.
- grep para todas las líneas que comiencen con
#
(marcas de tiempo) y todas las líneas que terminen con las ID en las que está interesado.
- Empaquetar el resultado con el encabezado del archivo original debería ser fácil, ya que cada línea de encabezado comienza con
$
.
Puede ser que la opción --wave
de ghdl que escribe su propio formato de archivo .ghw sea más fácil de analizar para este propósito, pero no sé de antemano si ghdl puede comprimir eso, y lo anterior no parece tan malo. a la escritura.
Una respuesta mejor, pero a más largo plazo, es pedir que ghdl sea capaz de seleccionar señales para volcar a través de página de Entradas . Esto ha sido discutido, por supuesto, pero por lo que sé no se ha llevado más lejos. Supongo que la pregunta es el formato correcto para especificar señales de interés. Tal vez se podría hacer que GHDL escriba una lista de todas las señales jerárquicas en el archivo, y luego, cuando se ejecute, lea una versión editada del mismo archivo que especifique el subconjunto de señales a rastrear.