Restricción del conjunto de señales registradas en GHDL

2

Tengo un gran diseño VHDL con cientos de señales internas. Necesito ejecutar una simulación de la misma durante mucho tiempo en GHDL y, en base a una ejecución de prueba corta, el volcado de VCD resultante sería de ~ 50GB para la ejecución completa. Sin embargo, solo me interesan las señales < 10.

La documentación de GHDL dice que no hay manera de restringir el conjunto de señales grabadas cuando se ejecuta una simulación. Sin embargo, puedo ser bastante flexible en la reorganización de mi diseño, así que, por ejemplo, podría envolver componentes con más capas, etc. ¿Hay alguna forma de utilizar estos trucos para restringir el conjunto de señales grabadas?

    
pregunta Cactus

1 respuesta

2

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:

  1. 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.
  2. 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.
  3. 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.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas