Forum Discussion
Altera_Forum
Honored Contributor
14 years agoStill dangerous unless you really know what you're doing. As an example, there may be a large block that is purely datapath, but inside is a 1:2 demux and 2:1 mux that is used to send data in/out of a section that is double-clocked. The select for these two are run by a toggle flip-flop. Seems innocent enough, but if the two registers come out of reset at different times, the design won't work. 99% of the time that isn't a problem(and if the reset is on a global, it won't occur 99.99% of the time). This is the type of thing that gets missed because the user doesn't think of it as "control logic".
If the reset is on a global, I don't see any reason not to reset everything. I think you're recommendation works when truly needed, but most large designs still don't have any recovery problems and resetting everything doesn't hurt them. That being said, there are potentially cases where not resetting the datapath could help, but you need to know what you're doing since there is no analysis tool that will tell you what is and is not safe to take off the reset.