Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[moved] How do I reset my FPGA by using xilinx pll?

Status
Not open for further replies.

coshy

Member level 4
Joined
Mar 28, 2016
Messages
71
Helped
0
Reputation
0
Reaction score
1
Trophy points
1,288
Activity points
1,784
Hi.

I'd like to reset my fpga by using pll lock signal.
But I didn't get catch any idea.
So can you let me know how do I reset my FPGA by using pll's lock signal
 

Re: How do I reset my FPGA by using xilinx pll?

wrong section. and even when this is moved to FPGA section, why would you use the lock for that? just and the lock with the clock, that behaves safely.
 

Re: How do I reset my FPGA by using xilinx pll?

Hi,

What do you mean with RESET?

* globally clear/set all used flip flops?
* just add a RESET function to the programmed logic (or a part of it)?
* delete all the programmed functions and program the FPGA anew?

Klaus
 

I'd like to reset my fpga by using pll lock signal.
From where and why did you get this idea?

The lock signal which is o/p from the PLL module has some other purpose (read the PLL docu for more info on the lock signal). It should not be used to reset the FPGA. Use the FPGA global async reset signal for reset.
 

From where and why did you get this idea?

The lock signal which is o/p from the PLL module has some other purpose (read the PLL docu for more info on the lock signal). It should not be used to reset the FPGA. Use the FPGA global async reset signal for reset.

Uh, those "global async reset" signals if they even exist in the currently available FPGAs isn't supposed to be uses to reset any user logic in the FPGA, they are expressly there for post configuration reset to ensure the FPGA comes out of configuration with all the FFs in known states. They are 1. extremely slow and do not meet timing of your clock, 2 are typically accessed in ugly ways like Xilinx's STARTUP block or an external pin on Altera parts (though that might be different now on newer parts).

You also don't want to use a purely asynchronous reset...an asynchronously asserted and synchronously de-asserted reset is normally used.

But the OP may have meant that they want to reprogram the FPGA if the PLL goes out of lock. Based on previous questions posed by the OP, I'm not sure they have done any due diligence by reading the documentation provided by their FPGA vendor of choice.
 

Benefit of doubt goes to sync & async resets! It is up to the OP to choose. ;-)

I didn't mention about sync resets the Q wasn't clear.
A good designer ways uses sync resets, no doubt about it.
 

@op,

There are a few tools. The first is the bitgen options. There is an option to hold the global set/reset (GSR) until all used PLL/MMCM/DCM are locked.

Another option is to have a non-pll/mmcm/dcm clock that runs a state machine to ensure all clocks come up.

In that case, you would have a counter to:
1.) hold PLL resets at true for the required time (see datasheet, possibly tens of milliseconds)
2.) hold PLL resets at false for the required pull-in+lock-in times (see datasheet).
3.) repeat if not locked.
4.) otherwise, hold the user-logic reset for a few milliseconds.
5.) allow a controlled de-assertion, with last stage logic deasserting first.
 
  • Like
Reactions: coshy

    coshy

    Points: 2
    Helpful Answer Positive Rating
@op,

There are a few tools. The first is the bitgen options. There is an option to hold the global set/reset (GSR) until all used PLL/MMCM/DCM are locked.

Another option is to have a non-pll/mmcm/dcm clock that runs a state machine to ensure all clocks come up.

In that case, you would have a counter to:
1.) hold PLL resets at true for the required time (see datasheet, possibly tens of milliseconds)
2.) hold PLL resets at false for the required pull-in+lock-in times (see datasheet).
3.) repeat if not locked.
4.) otherwise, hold the user-logic reset for a few milliseconds.
5.) allow a controlled de-assertion, with last stage logic deasserting first.

Might be the first one will be helpful to me.

Would you let me know furthermore how do I can use bitgen to global reset ?
 
Last edited:

Hi,

Several users asked for explanations.
You didn't answer a single one.

It is difficult to help if we don't know which direction to go.
In any case it's no good habit.

Klaus
 

  • Like
Reactions: coshy

    coshy

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top