Forum Discussion

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

Self reset to FPGA

Hi,

I'm integrating an independent FPGA which doesn't have a master CPU associated with it.

I need to reset the FPGA right after it enters user mode. Will using Init_done signal Anded with Conf_done and looped back to a dedicated reset pin do the job?

Am I missing something here? Should delay be added?

Thanks,

Boris Bakshan.

15 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I'm using the method in a number of production designs where the hardware guys didn't provide a hardware reset signal.

    --- Quote End ---

    Sorry to hear you have some hardware guys around you who are really hard and unhelpful.

    I myself have used internal reset instead of external one and it worked most but not every time. We assumed if the design didn't start well then the customer will instinctively power up again or give it a shake.

    The power up reset was even regular reset whenever certain errors flagged that will force the counter back to zero. This also prevented compiler from optimising off the reset counter thinking that the programmer didn't really mean it.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    the counter can power up to 0 upon configuration. is there a reason that won't work?

    --- Quote End ---

    Hi,

    Can you please tell me how to initialize it to zero upon configuration?

    Thanks,

    Boris.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Hi,

    Can you please tell me how to initialize it to zero upon configuration?

    Thanks,

    Boris.

    --- Quote End ---

    signal count: integer range 0 to 31 := 0; -- or uncheck [don't care power up] in settings

    clocked process...

    ...

    if count < 31 then

    count <= count + 1;

    end if;

    ...

    reset <= '1' when count < 31 else '0';

    or something like that
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    signal count: integer range 0 to 31 := 0; -- or uncheck [don't care power up] in settings

    clocked process...

    ...

    if count < 31 then

    count <= count + 1;

    end if;

    ...

    reset <= '1' when count < 31 else '0';

    or something like that

    --- Quote End ---

    1. I thought that initiating a signal with a logical value upon declaration has no meaning... Am I correct?

    2. In settings, do you mean in Quartus?

    Thanks,

    Boris.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    1. I thought that initiating a signal with a logical value upon declaration has no meaning... Am I correct?

    2. In settings, do you mean in Quartus?

    Thanks,

    Boris.

    --- Quote End ---

    Modern synthesis tools are more polite and respect initial value for power up.

    Yes Quartus settings