multiple asychronous resets

R

Ruth

Hi,

Are there any problems with having more than one asynchronous reset? I
assumed that the synthesis tool just added an 'or' gate in front of the
reset on the FF, but I've ben told recently that this is not necessarily the
case and that it can cause problems. Can anyone shed any light on what
these might be please?

process (reset, clk, o_mreset)
begin
if (reset = '1') or (o_mreset = '1') then
dummy <= '0';
elsif rising_edge(slow_clk) then
if control = '1' then
dummy <= i_dummy;
end if;
end if;
end process;

Thanks

Ruth
 
T

Tim Hubberstey

Ruth said:
Hi,

Are there any problems with having more than one asynchronous reset? I
assumed that the synthesis tool just added an 'or' gate in front of the
reset on the FF, but I've ben told recently that this is not necessarily the
case and that it can cause problems. Can anyone shed any light on what
these might be please?

process (reset, clk, o_mreset)
begin
if (reset = '1') or (o_mreset = '1') then
dummy <= '0';
elsif rising_edge(slow_clk) then
if control = '1' then
dummy <= i_dummy;
end if;
end if;
end process;

The result of this depends on your target architecture.

If you're targeting an ASIC, you'll probably get exactly what you
expect.

However, FPGAs can be quite different. Xilinx (and other) FPGAs have a
global reset net that is routed directly to all FFs. However, if you use
*any* logic on the reset line, other than inversions, the synthesis
tools will kick all resets off the global net and onto regular routing
resources. There are Xilinx app notes and/or answer records that discuss
this. Xilinx recommends against using the dedicated reset net in bigger
parts due to timing issues but in many designs this is not an issue and
it does save routing resources.

This is really an implementation issue not a VHDL issue and you should
ask in comp.arch.fpga instead.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top