Three reports localise most QoR failures. Area by cell type names the costly structure, fanout names the heavy net, and the worst path names the failing endpoints.
Report | Answers | First look |
|---|---|---|
Area by cell type | Which logic dominates the cost | One cell type far above its neighbours. |
Worst paths | Which endpoints miss, and by how much | The smallest slack and its start and end points. |
Fanout and load | Which net drives too much | A load far above the library guidance for its driver. |
The table below is an illustrative layout, with numbers invented for this lesson. Real report text varies between tools, so only the invented shape is shown.
Path | Startpoint | Endpoint | Slack (ns) | Levels | Note |
|---|---|---|---|---|---|
P1 | config register | control latch | 0.0 | 2 | Just meets at 0.0 over 2 levels; suspect a missing constraint only if its endpoints lack clock, IO, or exception coverage. |
P2 | request queue | grant output | -1.8 | 9 | Deep chain through priority logic. |
P3 | alu input A | result register | -0.9 | 5 | Repeated arithmetic without sharing. |
Read P2 first: the largest violation with the deepest chain. Its startpoint and endpoint bound where the fix must land.
Areas below are library units of the fictional teaching library course.lib, not a real process. The recount checks that one structure dominates before restructuring it.
course.lib EXAMPLE areas (library units): NAND2 = 2, INV = 1, DFF = 8
netlist count: 10 NAND2, 5 INV, 2 DFF
NAND2 part = 10 x 2 = 20
INV part = 5 x 1 = 5
DFF part = 2 x 8 = 16
total = 20 + 5 + 16 = 41 area units
NAND2 share = 20 / 41 = 48.78%, INV share = 5 / 41 = 12.20%, DFF share = 16 / 41 = 39.02%
48.78 + 12.20 + 39.02 = 100.00NAND2 logic plus flops carry nearly 88 percent here. A fix aimed elsewhere misses the bulk of the cost.
P2. It is the worst violation, so it sets the verdict; P3 waits until P2 is classified.
20 plus 5 plus 16, which is 41 area units in the teaching library.