Add Q/V method prodecure option for input pin capacitance#108
Conversation
infinitymdm
left a comment
There was a problem hiding this comment.
Overall looks great. Just a few small issues.
- Rename the procedure to something more descriptive. Open to suggestions; see comment on the generator name.
- Analyze whether parameters (
t_slewandt_waitin particular) are independent of capacitance results. If independent, no change needed. Otherwise, add configuration keys for setting these values from YAML. - Add
rise_capacitanceandfall_capacitanceto liberty output. - Justify the decision to average
q_riseandq_fallor allow users to specify criterion.
More detail in the review comments.
| return result | ||
|
|
||
| # C = |Q| / VDD, averaged over both edges | ||
| capacitance_F = (abs(q_rise) + abs(q_fall)) / 2 / settings.primary_power.voltage |
There was a problem hiding this comment.
Is an average actually the best thing to do here? Would it be preferable to return the larger (i.e. more pessimistic) capacitance value?
This might be a place where a criterion argument (similar to procedures.combinational.delay) is appropriate. That way you can leave the choice up to users.
|
Changes based on the review comments:
Let me know if there is anything else that requires urgent attention |
|
Looks good to me. Thanks for contributing this! |
Just popping in to note that for simulators, the only time that |
New Q/V method procedure for pin capacitance. The default is to use the ac-sweep but can be toggled in the YAML with the new key under
Simulation: input_capacitance_procedure:(ac_sweeporqv_method).The procedure uses estimates for simulation time that may not work for all cells. In the future these parameters should be made more configurable and be more intelligently determined.