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.

SYnchronus or Asynchronus reset design in FPGA device ?

Status
Not open for further replies.

tnguyens

Newbie level 2
Joined
Sep 10, 2006
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,307
no resets in fpga

In FPGA design, there is no DFT/Scan insertion so I am thinking to use the synchronous reset for all FF's. Have anyone seen any problems on this synchronus reset design in the FPGA devices ?

Thanks
 

fpga unexpected reset

in synchronous reset valid clock has to applied before u apply reset.
 

fpga reset async sync

I think you should use sync. reset. Because your fpga design is working on say x mhz, n async. reset can come at any time, n violates the timing.

Due to sync. reset there wont be any timing violation...
 

fpga async or sync reset

using synchronous in FPGA is a good method,

we always do it in our project.

best regards





tnguyens said:
In FPGA design, there is no DFT/Scan insertion so I am thinking to use the synchronous reset for all FF's. Have anyone seen any problems on this synchronus reset design in the FPGA devices ?

Thanks
 

Async reset is tricky to implement reliably, and sync reset consumes resources, so I almost never use external reset in my projects. The FPGA automatically initializes all flops during configuration. I design my logic modules so in case of some unexpected run-time upset, the logic naturally falls back into normal operation (instead of getting stuck in an invalid state).
 

echo47 said:
Async reset is tricky to implement reliably, and sync reset consumes resources, so I almost never use external reset in my projects. The FPGA automatically initializes all flops during configuration. I design my logic modules so in case of some unexpected run-time upset, the logic naturally falls back into normal operation (instead of getting stuck in an invalid state).

Hi,
can u elaborate this with an example plz.


thanks
sawaak
 

i always use asyn reset in my project!!
 

The best thing is to use reset with async asertion and sync removal.
 

Yes i agree that in FPGA there is no need of reset. since all the logic cells will be initilized with defined state.

Sync and async have it's own merits and demerits.

but async resets have assertion async and deassertion sync as mentioned in previous post
 

I always use Async. reset in FPGA.
 

Use Async reset, but the reset signal to be synchronously generated.


This is quite different from a syncrhonous reset
 

hello bansalr,
can u through some light on "Asynch reset assertion asynch but deassertion sync?????
 

Thinkie said:
Use Async reset, but the reset signal to be synchronously generated.


This is quite different from a syncrhonous reset
I think what u mean is Async reset in each module, but these async reset signal is generated by a main clock manager which practices syncronous reset.

What is the pro and cons of this kind of implementation in ASIC point of view ?
 

actually the deassertion of async reset should be synchronized w.r.t to clk and used to avoid violation of reset removal time.
 

example code:

always @(posedge Clk or negedge Resetn)
begin
if(!Resetn)
begin
rstn <= 1'b0;
async_rstn <= 1'b0;
end
else
begin
rstn <= 1'b1;
async_rstn <= rstn;
end
end

Use this aync_rstn to reset the flops. For example:

always @(posedge Clk or negedge async_rstn)
begin
if(!async_rstn)
q <= 1'b0;
else
q <= d;
end
 

s0shinde said:
example code:

always @(posedge Clk or negedge Resetn)
begin
if(!Resetn)
begin
rstn <= 1'b0;
async_rstn <= 1'b0;
end
else
begin
rstn <= 1'b1;
async_rstn <= rstn;
end
end

Use this aync_rstn to reset the flops. For example:

always @(posedge Clk or negedge async_rstn)
begin
if(!async_rstn)
q <= 1'b0;
else
q <= d;
end

it is similar to gate_clocking if you want to use synschronous reset.
 

my method of asserting reset Asynchronously and deasserting reset synchronously is this

register that reset signal which comes from outside....now u OR that registered signal with input rest....correct me if im wrong..
 

Hello vccvnc,
The functionality you suggested is the same as mine.

Added after 8 minutes:

Hello vccvcn,
The only problem with your circuit is that, if the delays to the 2 inputs of the OR gate are different, there will be some glitches produced, as against the circuit in which I had mentioned. If there are glitches in the aynchronous input itself, they will be present at the output of both our circuits. Nothing against your circuit, just wanted to point it out to you.

Thanks
s0shinde
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top