Tengo un problema estúpido y no entiendo cómo puedo resolverlo. En mi diseño estoy usando un detector de borde ascendente. El problema es que ActiveHDL no lo simula de la manera que espero. El código VHDL es:
process (clk_i, rst_i)
begin
if ( rst_i = '1' ) then
wb_IO_cyc_i_d <= '0';
wb_IO_cyc_i_edged <= '0';
elsif (rising_edge(clk_i) ) then
wb_IO_cyc_i_d <= wb_IO_cyc_i;
wb_IO_cyc_i_edged <= ( not wb_IO_cyc_i_d ) and wb_IO_cyc_i;
end if;
end process;
El problema es que la simulación es la siguiente
La señal wb_IO_cyc_i_d debe retrasarse 1 ciclo de reloj, pero no lo hace. Alguien me puede decir por qué?