Hello everyone.
I tried openlane flow with my original RTL.
Openlane worked well, but final sta report has max slew/max fanout/max cap/hold violation.
Could you give me how to fix them with openlane function?
(If this contents doesn't fit openroad, I will go to openlane channel.)
〇Concept
- 1 sky130_sram_1kbyte_1rw1r_32x256_8 + memory controler
- user_project_wrapper includes user_proj_example RTL + memory.
(GDS is only memory)
- violation are in table.png.
For countermeasure, I tried 3 steps as table.png, but violations are not improved.
I made connection list to check final (case 3) result.
The list says as below.
〇Max slew
- Many pins with max slew violation connects ANTENNA instances.
example
ANTENNA_963/DIODE has 23 connections via 0309 (ANTENNA : 21, NOT ANTENNA : 2).
ANTENNA_961/DIODE has 23 connections via 0309 (ANTENNA : 21, NOT ANTENNA : 2).
ANTENNA_959/DIODE has 23 connections via 0309 (ANTENNA : 21, NOT ANTENNA : 2).
ANTENNA_958/DIODE has 23 connections via 0309 (ANTENNA : 21, NOT ANTENNA : 2).
ANTENNA_956/DIODE has 23 connections via 0309 (ANTENNA : 21, NOT ANTENNA : 2).
(From violation_summary.txt)
- Some of them are connected to only NOT ANTENNA instance
example
_0849_/A0 has 2 connections via net55 (ANTENNA : 0, NOT ANTENNA : 2).
_0849_/A0 has 2 connections via net55 (ANTENNA : 0, NOT ANTENNA : 2).
001 : sky130_fd_sc_hd__buf_8 hold76 (.A(net55), .VGND(vssd1), .VNB(vssd1), .VPB(vccd1), .VPWR(vccd1), .X(net1675));
002 : sky130_fd_sc_hd__buf_12 input55 (.A(net1674), .VGND(vssd1), .VNB(vssd1), .VPB(vccd1), .VPWR(vccd1), .X(net55));
(From violation_full.txt)
Does this result have any relation to max_cap/max_slew/hold violation?