https://open-source-silicon.dev logo
Title
s

Stefan Schippers

10/24/2020, 1:53 AM
@User to my best knowledge (correct, @User?) the
_n
suffix in the stdcells indicate the driving capability (i.e. size of the transistors) of the cell. bigger numbers indicate bigger cells. Taking
einvn
as an example, it exists in
_0, _1, _2, _4, _8
variants:
sky130_fd_sc_hd__einvn_0.gds
sky130_fd_sc_hd__einvn_1.gds
sky130_fd_sc_hd__einvn_2.gds
sky130_fd_sc_hd__einvn_4.gds
sky130_fd_sc_hd__einvn_8.gds
since
_1
is one of the most commonly available sizes, standard cells have been imported into xschem using a script that parsed all the
_*__1.cdl
netlists (these contain all needed info and are easy to parse). Then some manual artwork has been done to draw the combinatorial shapes. Some other cells that did not have the
_1
size were then imported using the first available variant. After completing this task all other variants have been cloned automatically. I did not have the time to check the LP library, but you're right there are some _m and _lp variants. Good to know. xschem stdcells have a '`prefix`' attribute that can be used to easily switch from one library to the other, provided that the gate is available (some libs have fewer cells). Another reason for starting with the 'hd' (high density) lib is that it has one of the highest number of gates (437), so there is more chance that the set covers most of the other libs too.