Asynchronous resets are bad design practice. Reset your flops synchronously or not at all.https://twitter.com/iowahawkblog/status/932309842123022336 …
-
Show this thread
-
Replying to @oe1cxw
In most standard cell libraries that I used DFF with async reset smaller then DFF with sync reset. 90% of projects I worked over last 20 years, async reset was BKM
1 reply 0 retweets 0 likes -
Replying to @wavedrom
Yes, it is incredibly wide spread and most people who use it are completely unaware of all the things that could go wrong with it. That's why it's my "most trivial hill on which I am willing to die". :)
1 reply 1 retweet 1 like -
Re size: That's why I added the "or not at all" part. Most flops in a design actually don't need resetting. If area is a concern: Only reset the flops that actually need resetting. No reset needs even less area than async reset.
1 reply 1 retweet 1 like -
At least thinking about size of sync vs async rest _is_ thinking about it. AFAICT, many designers either don't consider sync vs async reset at all, or have a _very_ mistaken idea that async reset is somehow better.
1 reply 0 retweets 1 like -
Well, needing less area is a way it's better, isn't it? I assume that what can go wrong is that that asynchronous reset signal is basically another clock domain with all the worries about metastability that go along with that?
3 replies 0 retweets 0 likes -
Replying to @bahstgwamt @kragen and
Also: sync reset tree (being part of the same clock domain) becomes a part of critical path during the timing closure of high speed designs. Ability to exclude async reset tree from timing closure is big plus. IMHO
2 replies 0 retweets 1 like -
OH NO! You *have* to release an async reset synchronously! Otherwise you release reset in different cycles for different FFs and/or get metastability issues! Excluding async reset from timing closure is exactly as safe as excluding sync reset from timing closure: It isn't!
1 reply 0 retweets 5 likes -
Noop. Timing closure of async reset tree is done for different (very slow) clock. You do reset only when you switch-on power/voltage domain. So you can gate main domain clock or switch on slow clock, do reset, then ungate / switch to the faster clock.
1 reply 0 retweets 1 like
Fair enough. I haven't said that it is impossible to make correct designs with async resets, just that it's harder than most people think. Having a complex reset sequence as you described is one way. But most designs using async resets don't do any of that.
-
-
Yep, Blood, sweat and tears
0 replies 1 retweet 2 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.