2 ms·
This article takes me back to my college days ca. 2009, my senior design project was asynchronous cryptography circuits... I read this article and a few researc
by whoisthemachine 6y ago
This article takes me back to my college days ca. 2009, my senior design project was asynchronous cryptography circuits... I read this article and a few research papers more than a few times before I gained an entry level understanding of asynchronous circuits. Unfortunately the entire concept was very difficult for even senior computer engineering students to wrap their heads around when they had just been studying clocked circuits in-depth. Understanding the mueller-c element [0] in particular caused me significant difficulties.
Understanding the concept from a high-level isn't too bad however. As the article covers, if you visualize each piece of information moving along the pipeline as a hand-off, like a chain of people passing balls to each other, with the rule that they can't pass a new ball until they've passed the previous ball, you have a rough idea of how asynchronous processing circuits work. What's funny is that a natural "clock" begins to take shape at that point, although it's determined by the slowest component in your pipeline, rather than by an oscillator. The ball diagrams from the Rx libraries are actually also good visualizations for asynchronous circuits [1].
Those were some rough months attempting to achieve our advisor's goals, clearly the trauma still hasn't left me.
[0] https://en.wikipedia.org/wiki/C-element https://en.wikipedia.org/wiki/C-element
[1] Example Ball Diagram from the Rx libraries: http://reactivex.io/documentation/operators/map.html http://reactivex.io/documentation/operators/map.html