??? 02/17/11 17:43 Read: times |
#181155 - actual answer Responding to: ???'s previous message |
Arif Deshmukh said:
One student of 8051 microcontroller ask me that why clock is required to function/work the microcontroller. So how to explain this to him in technical term. Any suggestion. Because the 8051 microcontroller, like the overwhelming vast majority of digital designs, uses what's called synchronous logic. On every tick of the clock, each flip-flop in the design looks at its input and drives same to its output. Simultaneously, all of the flip-flop outputs go through some combinatorial logic (AND, OR, NOT, etc gates) to another flip-flip input. The idea is that the outputs of all of the flip-flops have to propagate through all of the combinatorial logic and the results of that logic must be settled at the input of the receiver flop before the next tick of the clock. You do what's called Static Timing Analysis on the design to determine if all of the logic paths in the design meet the specified clock frequency. STA is a bounded problem since the number of paths in a design is finite. It's easy for a computer to calculate all of the worst-case path delays and report them to you. Others in this thread have mentioned asynchronous (clockless) logic, which has been a topic for academic research for decades but for various Real Good Reasons, the number of successful commercial devices built with async logic remains insignificant compared to those built with synchronous logic design. -a |
Topic | Author | Date |
Why CLOCK Required? | 01/01/70 00:00 | |
a nontechnical explanation | 01/01/70 00:00 | |
Student? | 01/01/70 00:00 | |
No need for a clock... | 01/01/70 00:00 | |
Why not have a clock? | 01/01/70 00:00 | |
The Clockless Controller | 01/01/70 00:00 | |
Handshake Solutions | 01/01/70 00:00 | |
Handshake works quite well | 01/01/70 00:00 | |
Asynchronous logic | 01/01/70 00:00 | |
actual answer | 01/01/70 00:00 | |
Absolutely Right....Andy Peters | 01/01/70 00:00 | |
the triggers need clock to work | 01/01/70 00:00 | |
Note that edges only needed if you have changing input data | 01/01/70 00:00 |