Design cross-power/clock-domain signal interface
Company: NVIDIA
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Given two power domains A and B in a SoC:
1) Under normal operation, how would you design a one-bit control signal S1 that travels from A to B? Specify required cells (e.g., level shifter, isolation, always-on buffers), reset strategy, and where each cell is placed.
2) If A and B are in different clock domains and S1 is timing-aware (not purely asynchronous), what CDC scheme would you use (e.g., two-flop synchronizer, request/ack handshake, or async FIFO), and what STA/CDC constraints would you add (e.g., multicycle, false-path, max_delay, min_pulse_width)? What pitfalls should be avoided?
3) If A and B share the same clock domain, how does your design and constraint set change versus the different-clock-domain case?
4) If the path is A → B → A (S1 feeds through logic in B), how do you close timing/CDC across both crossings? If B can power off, how do you clamp/iso S1 (to 0, to 1, last value, or high‑Z) and why? Where do you place the isolation, what powers it, and how do you handle retention and wake-up sequencing?
Quick Answer: This question evaluates a candidate's understanding of SoC cross-power and clock-domain signal interfacing, including power-domain isolation, level shifting, reset and retention strategies, and clock-domain crossing and timing-constraint techniques.