I never understood why we pour clock signal when that signal should be budgeted. Like, I know some computation needs x clock cycles to be done. Why not provide only ~x clock cycles to the component?
A lot of (low level) code is written with the assumption that the clock rate is fixed. Sometimes bus protocols like i2c are implemented with "bitbanging" where the code "waits" for the right amount of time by doing a bunch of nops in order, assuming that each nop takes the same amount of time.
blackle|2 years ago