Hacker News new | past | comments | ask | show | jobs | submit login

As a software-only guy .... multiple clock domains sounds like the same class of problem as multi threaded + parallel programming, right?



Sort of? It's almost more equivalent to networking or distributed processing - circuits in different clock domains can't just send a wire to another domain, they have to go through a synchronizer and do some handshaking and other stuff that's vaguely similar to RPCs. I'm stretching here, it's slightly beyond what I've worked with so far.


Seems like the same as in multithreaded programming, in which you can’t let threads share memory without synchronizing else you get data races and corruption.


it's more like two simple computers talking over serial, and the serial connection bitrate can't be faster than the clock of the slowest of the two computers.


Yep! The microcontroller reference manual is full of warnings to ensure clock rates are compatible by being within a certain range of each other.


Sort of. You have to be careful when signals cross clock domains because they can become asynchronous. So anytime you go from one domain to another, you have to be sure to synchronize the data. This is often accomplished via flip flop.


This is my absolute favorite paper on the topic:

http://www.sunburst-design.com/papers/CummingsSNUG2008Boston...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: