¿Cómo puedo mostrar las señales internas de mi código fuente VHDL en mi banco de pruebas para poder verlas como formas de onda? Yo uso Active HDL. Me gustaría saber si hay alguna herramienta independiente del método para lograr mi objetivo. Cualquier ayuda es apreciada.
Me sale este error ahora.
Mi código fuente es
entity SPI_DAC is
Port (
-- inputs and oututs
)
end SPI_DAC;
architecture Behavioral of SPI_DAC is
--These are my internal signals
signal ch1_byte_data_sent : STD_LOGIC_VECTOR(23 downto 0) := x"000000";
signal ch1_byte_cmd_sent : STD_LOGIC_VECTOR(23 downto 0) := x"000000";
--and a few other signals
begin
--functionality
end Behavioral;
Mi código de banco de pruebas es
entity tb_spi_dac is
end tb_spi_dac;
architecture behavioral of tb_spi_dac is
component spi_dac
port(
--declaration, inputs and outputs
);
end component;
begin
uut: spi_dac port map(
--map ports
);
--stimulus process
end;
.tp_spi_dac.uut.ch1_byte_data_sent
.Respuestas:
Lo que está buscando se llama nombres externos (o nombres jerárquicos) en VHDL. Se pueden usar para eludir la visibilidad del alcance / jerarquía. La sintaxis es como el siguiente ejemplo.
También puede acceder a constantes y variables con nombres externos. Sin embargo, debe cambiar el tipo en el tipo externo. Puede usar nombres externos directamente para acceso de lectura / escritura. Sin embargo, debe usar alias para mejorar la legibilidad.
El nombre externo debe contener la ruta al elemento al que desea acceder. La ruta puede ser absoluta o relativa. Los elementos individuales en su camino están separados por puntos. Tenga en cuenta que debe proporcionar las etiquetas de la instancia / proceso / entidad / ... y no el nombre. La ruta absoluta comienza con un
.
seguido por el nombre de su nivel superior. Para rutas relativas, puede usar^
para subir en la jerarquía. Cuando use constantes / señales de algún paquete, también puede usarlo@
para moverse a una biblioteca.Un ejemplo de una ruta absoluta es
Para acceder al mismo elemento desde el banco de pruebas con nombres relativos, puede usar
Cuando desee acceder a alguna señal / constante de banco de pruebas desde la instancia secundaria, puede usar
Para acceder a alguna otra constante en un paquete de configuración ubicado en la biblioteca de configuración, puede usar
Puede usar su navegador de diseño / biblioteca de simuladores como señaló David para encontrar el nombre de ruta correcto.
Esta característica se agregó en VHDL-2008, por lo que debería ser compatible con todas las herramientas que ya tienen soporte para VHDL-2008 (incluido ActiveHDL, creo). La mayoría de los simuladores no usan VHDL-2008 de manera predeterminada, pero proporcionan un argumento de línea de comando u opción de configuración para habilitarlo.
fuente
alias
, debe escribir la tarea en una nueva declaración. La ventaja es que puede usar el nombre de alias en lugar del nombre externo largo.Un banco de pruebas implica simulación: una entidad sin puertos generalmente no es elegible para síntesis.
Si bien nunca he usado Active-HDL, entiendo que tiene un navegador de diseño que debería permitirle seleccionar señales en su jerarquía para mostrarlas en su forma de onda Vea el video de compilación y simulación de Aldec (5:02, min: seg).
Y por ahora tengo la impresión de que el video puede causar confusión, tal vez en este caso particular.
A las 2:22 del final, el video muestra un archivo do (macro) que controla la simulación:
Donde vemos cada señal en el nivel superior del diseño se ha agregado a la pantalla de forma de onda con el comando de onda. También debería ser posible especificar una señal en cualquier lugar de la jerarquía de diseño.
La idea básica es que muchos simuladores le permiten programar señales (y algunas permiten variables) que se recopilarán para la visualización de la forma de onda.
Este breve video simplemente no muestra señales para niveles de jerarquía subsidiaria. (Hay mucho relleno en una breve presentación de video).
Como se señaló anteriormente, su objetivo parece ser ver las señales internas como formas de onda.
Ahora, para las malas noticias: no hay estandarización para las características o interfaces del simulador, señales de programación para el volcado de forma de onda, etc. Estas son todas definiciones de implementación.
Está prácticamente garantizado que puede volcar señales en cualquier lugar de una jerarquía de diseño en un visor de forma de onda o en un archivo de volcado de forma de onda con cualquier implementación que simule, el método para hacerlo es la implementación definida.
La buena noticia es que tienden a copiar conceptos entre sí, como archivos do, que podría generar mediante programación para la portabilidad, utilizando una base de datos común que describe la verificación funcional en múltiples plataformas de implementación, superando las diferencias en sintaxis y semántica. Probablemente también haya diferencias en la sintaxis de la interfaz de línea de comandos para invocar las herramientas mediante programación.
La idea de portabilidad no abarca múltiples interfaces gráficas de usuario con gracia.
fuente
Herramientas como xilinx tiene la opción de ver señales internas.
El método simple independiente de la herramienta es declarar líneas de salida separadas y conectar las señales internas a estas líneas.
fuente
Si ha declarado las señales en el banco de pruebas pero no puede ver ningún resultado, es posible que tenga un problema en la instrucción de instanciación donde instancia la entidad que se probará. Compruebe si lo ha instanciado correctamente, utilizando una instrucción de instanciación de entidad o instanciación de componente. Asegúrese de que las señales en su banco de pruebas estén conectadas a la entidad bajo prueba. Si eso no resuelve el problema, publique el código testbench para que podamos ayudarlo.
fuente