Area mapping minimises the sum of cell areas. Delay mapping minimises arrival times against the required times, path by path.
Mode | Cost | Decision |
|---|---|---|
Area | Sum of cell areas | Cheapest cover that implements the function. |
Delay | Worst arrival against required time | Fastest cover on each failing path, cheapest elsewhere. |
The two modes disagree when the cheapest cover is too slow for the required time. The next section works one such case.
Take f = NOT ((a AND b) OR c) again, with EXAMPLE delays in delay units. Cover C is cheapest; cover A answers whether it is fastest.
Cover | Cells | Area | Delay | Slack at required 5 |
|---|---|---|---|---|
C | AOI21 | 3 | 6 | -1, fails |
A | AND2 + NOR2 | 5 | 5 | 0, meets |
B | NAND2 + INV + NAND2 + INV | 6 | 5 | 0, meets |
f = NOT ((a AND b) OR c); EXAMPLE delays in delay units: INV 1, NAND2 2, NOR2 2, AND2 3, AOI21 6
cover C: area = 3; arrival = 6; slack = 5 - 6 = -1 (fails)
cover A: area = 3 + 2 = 5; arrival = 3 + 2 = 5; slack = 5 - 5 = 0 (meets)
cover B: area = 2 + 1 + 2 + 1 = 6; arrival = 2 + 2 + 1 = 5; slack = 5 - 5 = 0 (meets)
area choice = cover C; delay choice at required 5 = cover ASlack is required time minus arrival time. Area mode picks C; delay mode at required 5 pays two extra area units for A and meets timing.
All three meet: C with slack 0, A and B with slack 1. Area mode picks C at area 3.
It may swap in a higher-drive variant of the same function where the library provides one. The swap costs extra area for the same logic.