Fix related power pins in HVL lib
In the lib file sky130_fd_sc_hvl__tt_025C_3v30_lv1v80.lib
on line 1190, the lib to db conversion tool complains about related_power_pin : "VPWR"
. It thinks that the SLEEP_B
pin on this cell seems to be associated with the wrong power domain. Similar issue on line 1490.
Note from Tim Edwards on a possible fix:
I looked at the layout for these level shifter cells with the "SLEEP_B" inputs. The two cells that get flagged by your tool have the unique property that the primary signal input "A" is in the low voltage (1.8V, LVPWR) domain, while the secondary input "SLEEP_B" is in the high voltage (3.3V, VPWR) domain (this is very clear from the layout, as SLEEP_B drives a 3.3V inverter to generate the inverted value in the same voltage domain).
So 'related_power_pin: "VPWR"' is actually correct for the SLEEP_B pin and should not be changed to "LVPWR". Likewise, the line
input_voltage_range(1.2800000000, 1.9500000000);
is correct for the input signal "A" (just not for "SLEEP_B").
I can think of several possible ways that this should/could be corrected, but since I don't have a tool that throws an error on this input, I will have to rely on you to try the change(s) and let me know which one(s) make the tool happy.
First solution: I note that pin "A" of these cells have a line
input_signal_level : "LVPWR";
and that this line is missing from pin "SLEEP_B". So the first possible solution is simply to add the missing statement
input_signal_level : "VPWR";
for the "SLEEP_B" pin.
My question about that solution is that it still potentially conflicts with the input_voltage_range() statement. If the first solution works and the tool no longer complains, then I can do a simple fix and be done with it. If not, it might need two input_voltage_range() statements, or perhaps an input_voltage_range() statement with two two-valued lists to include both voltage ranges. I don't have any examples to know what the correct syntax would be. So I hope that adding an "input_signal_level" statement to the "SLEEP_B" pin will be sufficient, as that would make everything a lot easier.
If you have a chance to check this on your .lib -> .db conversion tool, please let me know the result.