Re: Confusion about ticks and tocks
Posted by WBahn on Feb 06, 2019; 8:02am
URL: http://nand2tetris-questions-and-answers-forum.52.s1.nabble.com/Confusion-about-ticks-and-tocks-tp4032821p4032845.html
Basically.
Most hardware engineers tend to naturally think in terms of extreme values so that we can guarantee performance.
So we often don't even look at the typical propagation delay or talk in terms of the actual propagation delay; instead we look at the maximum propagation delay and then talk in terms such as, "such and such will happen no later than the maximum propagation delay after the rising clock edge." In actuality, we are pretty much guaranteed that it will change sooner than that, but we know that, by that limiting time, it will have changed to its new state. So we design our systems that only rely on it being changed no later than that and that, if it changes sooner, nothing bad will happen. In other words, we are careful to NOT design a system that relies on the output not changing before the propagation delay expires, because we can't count on it waiting for any minimum amount of time (unless the manufacturer actually spec'ed a minimum propagation delay for the part, which sometimes they do).
If that sounds pretty lawyeristic, it is -- and for largely the same reason. Lawyers have to speak (or, more to the point, write) in terms that ideally can only be interpreted exactly one way. If two parties to a contract make different interpretations, then bad things happen. Engineers are in the same boat; we need to speak in terms that, ideally, can only be interpreted one way because the devil is in the subtle details and if the engineer and their customer interpret the same sentence differently, bad things happen.
So it can be hard for us to talk in soft generalities without putting in a bunch of caveats.
So, for now at least, let's agree that the term "propagation delay" means the actual amount of time it takes for the output to change after the rising clock edge. Then pretty much by definition the output changes at the end of the propagation delay because that's what this agreed-to use of that term means.
Hope that helps.