Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No metastability nightmare.

One way to do this is to have each component have an output clock, which raises when it's output is known stable. If an adder has no carries, that takes 1ns. If it has each possible carry, it takes 2ns. You have a second clock propagating backwards to know when the next stage is ready for it's next input.

You still have timing. It's just set to when a component is ready with output, or ready to receive input.

Everything goes faster and uses less power.



And there are no unnecessary state changes, like you get with a clocked circuit that changes state with the rhythm of the clock, whether or not it is useful. At high frequencies that equates to a lot of power lost.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: