大多数的设计都不可避免地必须使用不止一个时钟频率。这是因为:
- 一些操作,如CPU处理、GPU、DSP等,需要尽可能高的时钟。
- 其他既定的功能,如USB、HDMI、以太网、DDR等,有适当定义的频率,如果你想使用这些功能,则需要遵守这些频率。
- 然后是其他东西,如缓慢的SPI、不能超过几兆赫的I2C接口、键盘、鼠标等需要更少频率接口。
由于你的芯片具有多样性,不可能在设计中以最高时钟运行所有内容。如果你这样做了,你将浪费太多的电力,你的竞争对手很快就会让你倒闭。
现在,一旦你在不同的时钟域上工作了不同的逻辑,你需要确保这些时钟域之间可靠的信息传输,更不用说来自外部的完全异步信号了,如复位、按钮信号等。
跨时钟域的主题是处理可靠地进行这种传输的信号,同时牢记其他指标,如延迟、功耗、面积等。