FPGA Groups

FPGA Groups (http://www.fpgacentral.com/group/index.php)
-   FPGA (http://www.fpgacentral.com/group/forumdisplay.php?f=14)
-   -   System Reset / GSR with Virtex 2 & Virtex 4 (http://www.fpgacentral.com/group/showthread.php?t=55330)

Rudolf Usselmann 05-23-2005 09:48 PM

System Reset / GSR with Virtex 2 & Virtex 4
 

Howdy Gang !

It seems we have some sort of a problem with system reset in
one of our SoC.

It appears that after the board power up we have to press the
external rest button to get the system 100% operational. Before
hitting the rest button, it seems as most of the system is
working but some parts are working "strangely".

I have not traced the problem yet, as it is rather a complex
SoC ...

So I have a generic question to the group:

My understanding was that all flops will be cleared automatically
after the FPGA has been configured. How does the FPGA know
which FLOPS have to be initialized to a '1' vs. a '0' ?

How should I implement the rest such that it would specifically
be asserted after FPGA configuration is done. Do I have to
connect the GSR signal to my reset signal ? There seems to be
very little inconclusive guidelines for this problem.

Any pointers/information highly appreciated !

Best Regards,
rudi
================================================== ===========
Rudolf Usselmann, ASICS World Services, http://www.asics.ws
Your Partner for IP Cores, Design, Verification and Synthesis


John_H 05-23-2005 10:22 PM

Re: System Reset / GSR with Virtex 2 & Virtex 4
 
First, the registers are not always cleared on power up. When asynchronous
set/reset logic isn't used, synthesizers often bundle other logic into the
synchronous set/reset pins of the flops beyond system set/reset. The FDS
and FDSE primitives (anything with a set but not reset) power up to logic 1
unless the user overrides the value with an INIT=R attribute. The FD, FDR,
FDRE, FDRS, FDRSE primitives (anything with a reset) power up to logic 0
unless the user overrides the value with an INIT=S attribute. I haven't
included the register primitives with async set/reset in the lists but the
idea carries through. Some synthesizers also support register
initialization in the code, producing the INIT=S and INIT=R attributes from
the initializations.

To get a synchronous reset into the design without pressing a reset *I*
would just use a countdown that starts at power up and keeps the system in
reset (except for the counter) until the count expires. I don't want to get
in the business of async resets without additional controls to guarantee the
deassertion of reset is synchronous where needed.


"Rudolf Usselmann" <[email protected]> wrote in message
news:[email protected]
>
> Howdy Gang !
>
> It seems we have some sort of a problem with system reset in
> one of our SoC.
>
> It appears that after the board power up we have to press the
> external rest button to get the system 100% operational. Before
> hitting the rest button, it seems as most of the system is
> working but some parts are working "strangely".
>
> I have not traced the problem yet, as it is rather a complex
> SoC ...
>
> So I have a generic question to the group:
>
> My understanding was that all flops will be cleared automatically
> after the FPGA has been configured. How does the FPGA know
> which FLOPS have to be initialized to a '1' vs. a '0' ?
>
> How should I implement the rest such that it would specifically
> be asserted after FPGA configuration is done. Do I have to
> connect the GSR signal to my reset signal ? There seems to be
> very little inconclusive guidelines for this problem.
>
> Any pointers/information highly appreciated !
>
> Best Regards,
> rudi
> ================================================== ===========
> Rudolf Usselmann, ASICS World Services, http://www.asics.ws
> Your Partner for IP Cores, Design, Verification and Synthesis
>




Peter Alfke 05-23-2005 10:57 PM

Re: System Reset / GSR with Virtex 2 & Virtex 4
 
Just to confirm and expand on John_H's posting:
At the end of configuration, Xilinx applies an asynchronous (p)reset to
all flip-flops. That's the good news.
The bad news is that the trailing edge of this initialization signal,
even when it has been synchronized to the clock, has such a long
propagation delay, that it often straddles several incoming clock
periods. As a result, state machines can get half initiated and half
running.
The user is advised to augment the "free" initialization with
deliberate synchronous initialization of critical flip-flops.
Peter Alfke, Xilinx Applications.


Rudolf Usselmann 05-24-2005 03:06 PM

Re: System Reset / GSR with Virtex 2 & Virtex 4
 
Peter Alfke wrote:

> Just to confirm and expand on John_H's posting:
> At the end of configuration, Xilinx applies an asynchronous (p)reset to
> all flip-flops. That's the good news.
> The bad news is that the trailing edge of this initialization signal,
> even when it has been synchronized to the clock, has such a long
> propagation delay, that it often straddles several incoming clock
> periods. As a result, state machines can get half initiated and half
> running.
> The user is advised to augment the "free" initialization with
> deliberate synchronous initialization of critical flip-flops.
> Peter Alfke, Xilinx Applications.



Thanks for the feed back John and Peter.

Quick follow up question:

I have a reset block which prolongs the reset and does a few
other things. In addition to the Reset Button, I also take
the lock output from the DPLL that generates the clock to the
SoC. As long as there is no lock, I hold the system in reset,
and even after a lock for some more cycles. So perhaps my reset
should not be a problem after all ? If I assume that the lock
signal of a DPLL would be asserted some time AFTER configuration ?!

Best Regards,
rudi
================================================== ===========
Rudolf Usselmann, ASICS World Services, http://www.asics.ws
Your Partner for IP Cores, Design, Verification and Synthesis

John_H 05-24-2005 05:31 PM

Re: System Reset / GSR with Virtex 2 & Virtex 4
 
As long as your reset is synchronous, you have a solid solution.

Keep in mind there's a programming option to hold of operation of the FPGA
until the DLLs are stable. If you *don't* engage this option, your reset
ciruit should take care of everything for you.


"Rudolf Usselmann" <[email protected]> wrote in message
news:[email protected]
<snip earlier quote>
> Thanks for the feed back John and Peter.
>
> Quick follow up question:
>
> I have a reset block which prolongs the reset and does a few
> other things. In addition to the Reset Button, I also take
> the lock output from the DPLL that generates the clock to the
> SoC. As long as there is no lock, I hold the system in reset,
> and even after a lock for some more cycles. So perhaps my reset
> should not be a problem after all ? If I assume that the lock
> signal of a DPLL would be asserted some time AFTER configuration ?!
>
> Best Regards,
> rudi
> ================================================== ===========
> Rudolf Usselmann, ASICS World Services, http://www.asics.ws
> Your Partner for IP Cores, Design, Verification and Synthesis





All times are GMT +1. The time now is 05:01 AM.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved