Is there a way to specify a digital module's outpu...
# openlane-2
y
Is there a way to specify a digital module's output strength? And, is it possible to specify, at module's output, 1.8V to 3.3V level shifter from the sky130_fd_sc_hvl library?
d
You’d have to create a hand-crafted netlist that instantiates your design as a macro as well as the requisite level shifters.
y
So, instantiate the level shifter cells explicitly? I can do that. But how to connect the power? Now there are two voltages, 1.8 and 3.3. How does openlane handle this?
d
First of all, harden the digital block on its own as a 1.8V block. Then you’ll need to create a top-level netlist which instantiates your digital block as a pre-hardened macro and the level shifters, both explicitly. You’ll have two power pins and two ground pins. The trick here is you’ll need to write custom PDN script so you can have multiple voltage domains. I don’t have an example on hand I’m afraid… I’ll ask our PnR engineers if we have any from our previous work.
y
Thanks. Then probably a workaround for my specific simple case: is it possible to use all 3.3V cells to make the logic? Then no level shifter is needed
d
You can try hardening the whole design as hvl but that’s… unproven
i.e. we’ve never done that
y
Ok, then coming back to 1.8V only, to specify output drive strength, do I need to instantiate explicit buffer cells , or is there a better, more automatic way?
d
don’t think so, you’ll need to instantiate buffer cells
y
I see that yosys by default uses sky130_fd_sc_hd__buf_2. Is it possible to make it use bigger buf without explicitly specify cell?