3 ms·
As I understand it asynchronous logic stopped being a common thing decades ago, so those sorts of glitches aren't possible (or less possible?) now. The hard stu
by aappleby 5y ago
As I understand it asynchronous logic stopped being a common thing decades ago, so those sorts of glitches aren't possible (or less possible?) now. The hard stuff in simulation now is probably handling multiple clock domains.
- deelowe 5y agoI’ve only ever seen behavioral solutions for newer systems. At a certain point, logic level designs become unreasonable.
- photojosh 5y agoStill out there, but only used in special situations. The ARM microcontroller I'm working with has an asynchronous prescaler on the real-time clock crystal input before it gets fed into a second synchronous prescaler which you can then read the output of directly. This is all about reducing power consumption down in the nA range when the CPU is turned off but the RTC keeps ticking over. Multiple clock domains definitely tricky though!
- jasonjayr 5y agoAs a software-only guy .... multiple clock domains sounds like the same class of problem as multi threaded + parallel programming, right?
- aappleby 5y agoSort 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.
- sizeofchar 5y agoSeems 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.
- naikrovek 5y agoit'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.
- photojosh 5y agoYep! The microcontroller reference manual is full of warnings to ensure clock rates are compatible by being within a certain range of each other.
- deelowe 5y agoSort 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.
- Teknoman117 5y agoThis is my absolute favorite paper on the topic: http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf http://www.sunburst-design.com/papers/CummingsSNUG2008Boston...