latch based design
**Latch-Based Design and Time Borrowing** is the **circuit design technique that uses transparent latches instead of edge-triggered flip-flops as sequential elements** — enabling automatic time borrowing where a late signal in one pipeline stage can borrow time from the next stage's slack, potentially achieving higher performance or lower area than flip-flop-based designs at the cost of increased design complexity and analysis difficulty.
**Latch vs. Flip-Flop**
| Property | Flip-Flop | Latch |
|----------|----------|-------|
| Transparency | Edge-triggered (samples on clk edge) | Level-sensitive (transparent when clk high) |
| Time Borrowing | No — data must arrive before clock edge | Yes — data can arrive during transparent phase |
| Timing analysis | Simple (setup/hold at edge) | Complex (time borrowing analysis) |
| Area | Larger (~1.5x latch) | Smaller |
| Setup time | ~50-100 ps | Effectively 0 (during transparent period) |
**Time Borrowing Concept**
- **Flip-flop pipeline**: Stage 1 must complete in 1 clock period. Stage 2 must complete in 1 clock period. No sharing.
- **Latch pipeline**: If Stage 1 takes 1.2 periods and Stage 2 takes 0.8 periods → latch transparently passes data → still works!
- Stage 1 "borrows" 0.2 periods from Stage 2.
- **Constraint**: Total delay across borrowing stages ≤ sum of their clock periods.
**Timing Analysis Complexity**
- Flip-flop STA: Each stage analyzed independently — launch FF → capture FF.
- Latch STA: Time borrowing creates dependencies across stages.
- Must analyze **multi-cycle paths** through transparent latches.
- Tools: PrimeTime supports latch-based timing — models borrowing automatically.
- But: Latch timing is harder to debug and harder to close.
**Pulse Latch (Pulsed Latch)**
- Hybrid: Latch driven by narrow clock pulse (generated from clock edge).
- Transparent for only ~50-100 ps → almost like a flip-flop but with lower area and power.
- Used in: ARM processors, mobile SoCs where area and power are premium.
- Advantage: ~30% smaller, ~20% lower clock power than master-slave flip-flop.
**Where Latch Design Is Used**
| Application | Why Latches |
|------------|------------|
| High-performance CPU | Time borrowing maximizes frequency |
| Mobile SoC | Pulse latches for area/power savings |
| GPU pipelines | Many uniform stages — borrowing helps balance |
| High-frequency circuits | Latch transparency compensates for setup time |
**Design Challenges**
- **Hold time**: Latch transparency means data can race through multiple stages in one cycle → hold violations.
- Minimum delay constraints on every path through latches.
- **Test (scan)**: Latches are harder to scan-test — need edge-triggered mode or special scan latches.
- **ECO difficulty**: Changing one latch stage timing affects adjacent stages (borrowing chain).
Latch-based design is **a powerful technique in the high-performance designer's toolkit** — by enabling automatic time borrowing between pipeline stages, it extracts maximum frequency from the circuit at reduced area cost, though the increased analysis complexity limits its adoption to teams with sophisticated timing methodology and tool support.