Every clock-domain crossing in a design is a small verification project: a synchroniser to choose, latency to budget, constraints to write, and a waiver or clean check to own. The number of those projects, and how hard each one is, is decided when the design is partitioned, long before any synchroniser is drawn.
Lesson | After it you can... |
|---|---|
Place a domain cut where it costs least and price what each cut costs. | |
Launch every crossing from a flop and explain why a combinational crossing is a violation. | |
Replace scattered signals with fewer, wider, well-defined crossings. | |
Keep the crossing table that signoff is built on. |
Because the partition decides how many crossings exist and what kind they are. A good partition means a handful of clean crossings; a bad one means dozens of awkward ones no synchroniser choice can fix.