Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Liberty view for IO cells update. #104

Merged
merged 9 commits into from
May 10, 2024
Merged

Conversation

KrzysztofHerman
Copy link
Contributor

The updated view contains definition of all IO cells provided in the library hence it is feasible to use it in ORFS to design a pad ring.

…n make it feasible to run ORFS flow

Signed-off-by: KrzysztofHerman <herman@ihp-microelectronics.com>
Copy link
Contributor

@dnltz dnltz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file has some indentation issues.

);
}
}
}pin (pad) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
}pin (pad) {
}
pin (pad) {

);
}
}
} }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
} }
}
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See all following cells have the same issue.

}
} }

cell (sg13g2_IOPadIOVss) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you move both IO cells at the beginning or move Vss/Vdd cells from the beginning here?

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
}pin (c2p) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be next line.

);
}
}
timing () {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any obvious issue here with these two timings. I wonder if timings are missing in the pin c2p and pin c2p_en definitions...

…EF. Dummy modules and cells added in Verilog and Liberty files

Signed-off-by: KrzysztofHerman <herman@ihp-microelectronics.com>
Signed-off-by: KrzysztofHerman <herman@ihp-microelectronics.com>
…ters added

Signed-off-by: KrzysztofHerman <herman@ihp-microelectronics.com>
Signed-off-by: KrzysztofHerman <herman@ihp-microelectronics.com>
@KrzysztofHerman
Copy link
Contributor Author

There were some updates, which limit the cells to the list defined in sg13g2_io.lef:

MACRO sg13g2_Corner
MACRO sg13g2_Filler200
MACRO sg13g2_Filler400
MACRO sg13g2_Filler1000
MACRO sg13g2_Filler2000
MACRO sg13g2_Filler4000
MACRO sg13g2_Filler10000
MACRO sg13g2_IOPadIn
MACRO sg13g2_IOPadOut4mA
MACRO sg13g2_IOPadOut16mA
MACRO sg13g2_IOPadOut30mA
MACRO sg13g2_IOPadTriOut4mA
MACRO sg13g2_IOPadTriOut16mA
MACRO sg13g2_IOPadTriOut30mA
MACRO sg13g2_IOPadInOut4mA
MACRO sg13g2_IOPadInOut16mA
MACRO sg13g2_IOPadInOut30mA
MACRO sg13g2_IOPadAnalog
MACRO sg13g2_IOPadIOVss
MACRO sg13g2_IOPadIOVdd
MACRO sg13g2_IOPadVss
MACRO sg13g2_IOPadVdd

Also some properties of the filler cell were added together with a fix on positive/negative unate.

I ran ORFS using these updated views and still got some issues that are listed below:


logs/ihp-sg13g2/mini/base/6_1_fill.log:5:[WARNING FIN-0010] Skipping layer OVERLAP.
logs/ihp-sg13g2/mini/base/6_1_fill.log:6:[WARNING FIN-0010] Skipping layer LOCKED.
logs/ihp-sg13g2/mini/base/6_1_fill.log:7:[WARNING FIN-0010] Skipping layer LOCKED1.
logs/ihp-sg13g2/mini/base/6_1_fill.log:8:[WARNING FIN-0010] Skipping layer LOCKED2.
logs/ihp-sg13g2/mini/base/6_1_fill.log:9:[WARNING FIN-0010] Skipping layer GatPoly.
logs/ihp-sg13g2/mini/base/6_1_fill.log:10:[WARNING FIN-0010] Skipping layer Cont.
logs/ihp-sg13g2/mini/base/6_1_fill.log:14:[WARNING FIN-0010] Skipping layer Via1.
logs/ihp-sg13g2/mini/base/6_1_fill.log:18:[WARNING FIN-0010] Skipping layer Via2.
logs/ihp-sg13g2/mini/base/6_1_fill.log:22:[WARNING FIN-0010] Skipping layer Via3.
logs/ihp-sg13g2/mini/base/6_1_fill.log:26:[WARNING FIN-0010] Skipping layer Via4.
logs/ihp-sg13g2/mini/base/6_1_fill.log:30:[WARNING FIN-0010] Skipping layer TopVia1.
logs/ihp-sg13g2/mini/base/6_1_fill.log:34:[WARNING FIN-0010] Skipping layer TopVia2.
logs/ihp-sg13g2/mini/base/5_3_route.log:8:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Cont
logs/ihp-sg13g2/mini/base/5_3_route.log:9:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Via1
logs/ihp-sg13g2/mini/base/5_3_route.log:10:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Via1
logs/ihp-sg13g2/mini/base/5_3_route.log:11:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Via2
logs/ihp-sg13g2/mini/base/5_3_route.log:12:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Via3
logs/ihp-sg13g2/mini/base/5_3_route.log:13:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer Via4
logs/ihp-sg13g2/mini/base/5_3_route.log:14:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer TopVia1
logs/ihp-sg13g2/mini/base/5_3_route.log:15:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer TopVia1
logs/ihp-sg13g2/mini/base/5_3_route.log:16:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer TopVia2
logs/ihp-sg13g2/mini/base/5_3_route.log:17:[WARNING DRT-0349] LEF58_ENCLOSURE with no CUTCLASS is not supported. Skipping for layer TopVia2
logs/ihp-sg13g2/mini/base/2_1_floorplan.log:27:[WARNING PAD-0033] Could not find a block terminal associated with net: "IO_CORNER_NORTH_WEST_INST.iovdd_RING", creating now.
logs/ihp-sg13g2/mini/base/2_1_floorplan.log:29:[WARNING PAD-0033] Could not find a block terminal associated with net: "IO_CORNER_NORTH_WEST_INST.iovss_RING", creating now.
logs/ihp-sg13g2/mini/base/2_1_floorplan.log:31:[WARNING PAD-0033] Could not find a block terminal associated with net: "IO_CORNER_NORTH_WEST_INST.vss_RING", creating now.
logs/ihp-sg13g2/mini/base/2_1_floorplan.log:33:[WARNING PAD-0033] Could not find a block terminal associated with net: "IO_CORNER_NORTH_WEST_INST.vdd_RING", creating now.

Maybe @stafverhaegen-chipflow could provide some solutions for DRT-0394 and PAD-0033 ? I guess the first can be solved downgrading the LEF view to 5.7.

@FatsieFS
Copy link
Contributor

FatsieFS commented May 7, 2024

I can change version to 5.7 if that is confirmed to solve the problem.
For the PAD-0033 it is not clear to me what is wrong with the LEF so will need some guidance. When I look to similarity between Filler cells and corner cells I can't see what is wrong.
See also snapshot of corner when imported in KLayout:
image

@dnltz
Copy link
Contributor

dnltz commented May 7, 2024

Could it be missing pin definitions for power/ground? All IOPad cells have following pg_pins but not Corner/Filler cells.

        pg_pin (vss) {
            pg_type : primary_ground;
            voltage_name : "vss";
        }
        pg_pin (vdd) {
            pg_type : primary_power;
            voltage_name : "vdd";
        }
        pg_pin (iovss) {
            pg_type : primary_ground;
            voltage_name : "iovss";
        }
        pg_pin (iovdd) {
            pg_type : primary_power;
            voltage_name : "iovdd";
        }

@KrzysztofHerman
Copy link
Contributor Author

@FatsieFS feel free to provide downgraded version of the LEF. As for PAD-0033 it is strange that it complains only on North_West corner.

@KrzysztofHerman KrzysztofHerman merged commit 479f543 into IHP-GmbH:dev May 10, 2024
12 checks passed
@FatsieFS
Copy link
Contributor

@KrzysztofHerman
I see it is now merged into dev. Does this mean the Corner problem has been solved ?
As said above I myself don't see what I should need to change on my side for that problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants