Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

NO clock event, but signal changes anyway!

In a nutshell, something weird is going on in my simulation...

Clearly my code states that upon a rising_edge of nDB_BUF_EN then various outputs are latched. However I have seen the clocking signal nDB_BUF_EN to be stable (at logic 1) BUT the latched outputs change!

How could this be?


  proc_IOControlDBBusLatch : PROCESS (nRST, nDB_BUF_EN)
  BEGIN
    IF nRST='0' THEN
      zb2D7_FrameBlank   <= '0';
      zb2D6_LineBlank    <= '0';
      zb2D5_CPU_Access   <= '0';
      zb2D4_AltGREENsel  <= '0';
      zb2D3_BANK3_CASsel <= '0';
      zb2D2_BANK2_CASsel <= '0';
      zb2D1_CassMotorEn  <= '0';
     zb2D0_SpeakerEn    <= '0';
    ELSIF RISING_EDGE(nDB_BUF_EN) THEN
      --Latch data from the common databus
      zb2D7_FrameBlank   <= D_7_0(7);
      zb2D6_LineBlank    <= D_7_0(6);
      zb2D5_CPU_Access   <= D_7_0(5);
      zb2D4_AltGREENsel  <= D_7_0(4);
      zb2D3_BANK3_CASsel <= D_7_0(3);
      zb2D2_BANK2_CASsel <= D_7_0(2);
      zb2D1_CassMotorEn  <= D_7_0(1);
      zb2D0_SpeakerEn    <= D_7_0(0);
    END IF;
  END PROCESS proc_IOControlDBBusLatch;

So my question is, under what possible circumstances can the outputs change (latch) if nDB_BUF_EN is NOT changing??? I see no 'glitch' on nDB_BUF_EN either - there is NO rising_edge event!

Thanks in advance for any insights,

Andy

14 Replies