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

Power estimation seems too high #242

Open
Lukemagik opened this issue May 24, 2024 · 14 comments
Open

Power estimation seems too high #242

Lukemagik opened this issue May 24, 2024 · 14 comments

Comments

@Lukemagik
Copy link

Describe the bug
I ran the sky130_sram_1rw_tiny example and the power report shows hundreds of watts, which seems wrong. Could this be a bug? How can I solve it?
image

Version
1.2.48

To Reproduce
cd OpenRAM/macros
make sky130_sram_1rw_tiny

@mguthaus
Copy link
Collaborator

It is a known issue that the power numbers have not been calibrated. The cell powers in the tech file are not correct.

@Lukemagik
Copy link
Author

Hi, thank you for the response. Is it possible to obtain the power estimation in another way?

@mguthaus
Copy link
Collaborator

You can run a spice simulation.

These are the placeholder values for leakage:
https://github.com/VLSIDA/OpenRAM/blob/stable/technology%2Fsky130%2Ftech%2Ftech.py#L744

Similarly, there are estimates for capacitance used in dynamic power which might be set correctly.

@Lukemagik
Copy link
Author

Thank you very much. With this approach, is it possible to obtain the .lib file as well? I would like to use these memories as macros in another design on OpenLane and I would like to have a complete power estimation.

@mguthaus
Copy link
Collaborator

It is, but it will be slow.

It'd be nice if someone can contribute new estimates for the tech file so they are correct instead.

@Lukemagik
Copy link
Author

Lukemagik commented May 24, 2024

I didn't quite understand this last part.
In this case how was the power estimated on ? It seems to have more accurate values

@Lukemagik
Copy link
Author

Sorry @mguthaus , in this issue it seems to me that you have the same problem as mine. I have a design on OpenLane that uses OpenRAM macros and I need to estimate the entire system power. However, to do this, it seems from this issue that a gate-level netlist is needed rather than the .lib file. Were you able to solve this problem?

@mguthaus
Copy link
Collaborator

There are no gate-level netlists of SRAM macros. It must use a .lib file.

@Lukemagik
Copy link
Author

I understand, however, it seems that OpenLane is unable to read the .lib files of the macros to calculate power, and it only works when the gate-level netlist is present.

So my question is, based on this issue, how can we include the memory macro in power calculation when we only have the .lib file available?

@mguthaus
Copy link
Collaborator

This would be an openlane issue. Gate level doesn't exist for any memory macro even with other tools. It doesn't use the cells from the library.

Openlane should be using the .lib file for the memory macro to get the power.

@Lukemagik
Copy link
Author

Perfect, so you're confirming that it's impossible for OpenLane to estimate the power of these memories since only the .lib file is available?

@mguthaus
Copy link
Collaborator

I'm confirming that openlane should only need the lib file to estimate power.

@Lukemagik
Copy link
Author

So, did you manage to solve this issue?

@mguthaus
Copy link
Collaborator

The last comment in the thread says that I did not black box it for STA. I did need to convert the model parameters to constants to get it to work.

However, I don't recall if it estimated power correctly, but it did work with timing.

That issue is a year old, so I'm not sure what has changed in openlane regarding it. Again, this is an openlane issue.

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

No branches or pull requests

2 participants