T
Thomas Stanka
Guest
Hello,
do you know any tool, that would help detecting race conditions due to
asynchronous inputs?
I had a design with asynchronous inputs. I inspected the rtl code to
ensure, the asynch inputs would only be used if they are stable with
respect to the specification. Unfortunately I missed a line, where an
asynchronous input release an synchron reset. The synthesis generated
a race condition which lead to disfunction of the design. After
founding the problem it was very easy to see the failure in the
netlist. But it seem to me very hard to detect the problem without
knowing that it would happen, because whether timing analysis (maybe
not propper done) nor equivalence checking nor gate level simulation
failed.
Are there tools, that would help in such cases? I don't like the idea
to spend hours and days inspecting netlists for asynchronous inputs I
use to ensure, that this failure won't happen a second time.
I know, that it would be best to avoid asych. inputs by inserting
registers, but I have some designs with hard area constraints and
other designs with timing constraints that didn't permit the use of
registers for all inputs.
bye Thomas
do you know any tool, that would help detecting race conditions due to
asynchronous inputs?
I had a design with asynchronous inputs. I inspected the rtl code to
ensure, the asynch inputs would only be used if they are stable with
respect to the specification. Unfortunately I missed a line, where an
asynchronous input release an synchron reset. The synthesis generated
a race condition which lead to disfunction of the design. After
founding the problem it was very easy to see the failure in the
netlist. But it seem to me very hard to detect the problem without
knowing that it would happen, because whether timing analysis (maybe
not propper done) nor equivalence checking nor gate level simulation
failed.
Are there tools, that would help in such cases? I don't like the idea
to spend hours and days inspecting netlists for asynchronous inputs I
use to ensure, that this failure won't happen a second time.
I know, that it would be best to avoid asych. inputs by inserting
registers, but I have some designs with hard area constraints and
other designs with timing constraints that didn't permit the use of
registers for all inputs.
bye Thomas