synchronous and asynchronous
Both works on their appropriate places but asynchronous design is very complex and filled with dangers for new and for experienced designers as well. Synchronous design is preferred over asynchronous.
Last updated: March 19, 2014
Asynchronous design often involve multiple level combination circuits, flip-flops and macro functions such as counters and shift registers. These structures don’t help in analysis and design techniques that allow identification and elimination of problems such as critical races and hazards. Such terms as critical races and hazards refer us towards perception of danger.
In other words, unexpected/spontaneous occurrence and the complexity of states decrease its preference over synchronous design.