efabless / sky130_sram_macros_old

Apache License 2.0
36 stars 18 forks source link

Very small max_transition #9

Open maliberty opened 2 years ago

maliberty commented 2 years ago

The RAMs have a very small max_transition of 0.04, e.g. https://github.com/efabless/sky130_sram_macros/blob/c2333394e0b0b9d9d71185678a8d8087715d5e3b/sky130_sram_1kbyte_1rw1r_32x256_8/sky130_sram_1kbyte_1rw1r_32x256_8_TT_1p8V_25C.lib#L188

Most of the stdcells have a value of 1.5 in hd and 1.0 in hs for comparison. Is this value correct?

maliberty commented 2 years ago

@mguthaus Please comment.

mguthaus commented 2 years ago

The tech file has a .04ns slew rate as seen here: https://github.com/VLSIDA/OpenRAM/blob/f66aac3264598eeae31225c62b6a4af52412d407/technology/sky130/tech/tech.py#L704 It seems that this was just an arbitrary value.

The default slew corners are .25, 1, and 8x this value and max slew is the last.

The values in the .lib files are from analytical characterization and are pretty arbitrary... They are not based on simulation.

On Thu, Dec 30, 2021, 20:32 Matt Liberty @.***> wrote:

@mguthaus https://github.com/mguthaus Please comment.

— Reply to this email directly, view it on GitHub https://github.com/efabless/sky130_sram_macros/issues/9#issuecomment-1003265547, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC67SL375X2VMEJMV67YTNDUTUW5NANCNFSM5LAYBD3Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

mguthaus commented 2 years ago

Correction: .005ns

On Thu, Dec 30, 2021, 20:47 Matt Guthaus @.***> wrote:

The tech file has a .04ns slew rate as seen here:

https://github.com/VLSIDA/OpenRAM/blob/f66aac3264598eeae31225c62b6a4af52412d407/technology/sky130/tech/tech.py#L704 It seems that this was just an arbitrary value.

The default slew corners are .25, 1, and 8x this value and max slew is the last.

The values in the .lib files are from analytical characterization and are pretty arbitrary... They are not based on simulation.

On Thu, Dec 30, 2021, 20:32 Matt Liberty @.***> wrote:

@mguthaus https://github.com/mguthaus Please comment.

— Reply to this email directly, view it on GitHub < https://github.com/efabless/sky130_sram_macros/issues/9#issuecomment-1003265547 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AC67SL375X2VMEJMV67YTNDUTUW5NANCNFSM5LAYBD3Q

. Triage notifications on the go with GitHub Mobile for iOS < https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android < https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

You are receiving this because you were mentioned.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/efabless/sky130_sram_macros/issues/9#issuecomment-1003267878, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC67SL6UIO47PTLQUUCSR63UTUYVTANCNFSM5LAYBD3Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

maliberty commented 2 years ago

@RTimothyEdwards @mkkassem what do you see as typical slew values for sky130? 5ps seems very small to me. It feels like we should pick better values and recharacterize.

mguthaus commented 2 years ago

I'd like to stress that these models are not characterized data. It is an Elmore delay model estimate which is independent of slew.

Matt

On Fri, Dec 31, 2021, 21:02 Matt Liberty @.***> wrote:

@RTimothyEdwards https://github.com/RTimothyEdwards @mkkassem https://github.com/mkkassem what do you see as typical slew values for sky130? 5ps seems very small to me. It feels like we should pick better values and recharacterize.

— Reply to this email directly, view it on GitHub https://github.com/efabless/sky130_sram_macros/issues/9#issuecomment-1003506086, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC67SL3STEPS2K74JQW5RDTUT2DGRANCNFSM5LAYBD3Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

jjcherry56 commented 2 years ago

I think the underlying issue is some confusion about the semantics of liberty max_transition. The ram libraries appear to be using it to prevent extrapolation in the table model. Note that the table model that has constant values. This means preventing extrapolation is pointless because extrapolation will return the same value as the constant in the table model. The "fakeram" generator used by openroad flow scripts suffered from the same problem. I changed the models to use scalar instead of a table because it more accurately reflects the non-slew dependency of the timing model. Using an artificially small technology independent max_transition directs physical optimization to try to reduce the slew to a value that is impossible to achieve in a slower technology.