VHDL: bucle infinito para la constante, pero no hay problema con el literal

5

Escribí un Testbench para una arquitectura simple. Cuando uso el literal "1 ms" en lugar de la constante ct: time: = 1 ms, todo funciona. Pero por lo demás, GHDL se atasca en un bucle infinito.

¿Puedes ver un error en el código o es un error de GHDL?

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity s is
port
(
    a: in std_logic;
    b: out std_logic
);
end s;

architecture v1 of s is
begin
b <= not a;
end v1;
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity testbench IS
END testbench;

architecture v1 of testbench is
component s
    port
    (
        a: in std_logic;
        b: out std_logic;
    );
end component;

signal a: std_logic := '0';
signal b: std_logic := '0';
constant ct: time := 1 ms;
begin

    a <= not a after ct; --constants not working?
    -- but no problem with a <= not a after 1 ms;

dut: s
    port map
    (
        a => a,
        b => b,
    );
end architecture;
    
pregunta Martin Strobel

1 respuesta

1

¿Qué versión de GHDL? Acabo de probar el ejemplo (corrigiendo dos errores tipográficos mencionados por "daño"), y ambas formas parecen hacer lo mismo.

Por cierto, +1 para un buen testcase simple.

Estoy usando lo siguiente:

uname -a
Linux Gannet 3.2.0-4-amd64 #1 SMP Debian 3.2.39-2 x86_64 GNU/Linux

 ghdl --version
GHDL 0.30dev (20100112) [Sokcho edition]
 Compiled with GNAT Version: 4.7.2

 gtkwave --version
GTKWave Analyzer v3.3.46 (w)1999-2012 BSI

y los comandos:

ghdl -a s.vhd
ghdl -a v1.vhd
ghdl -e testbench
./testbench --vcd=test --stop-time=50ms
gtkwave test

El resultado se ve así:

Ahora,estaversióndeGHDLactualmentesoloestádisponiblecomo paquete experimental para Debian (Ubuntu, etc.) , para otras distribuciones y sistemas operativos solo está disponible a partir de la fuente: consulte la sección "instrucciones" en el mensaje 4 en esta página de informe de errores de GHDL para obtener más información. Sin embargo, creo que GHDL 0.29 también debería funcionar en su caso; versiones anteriores pueden no.

ACTUALIZACIÓN: esta también ha sido la primera prueba de GHDL construida con gcc4.8 ... ¡se ve bien hasta ahora!

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas