Stefan Schippers
10/24/2020, 1:53 AM_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.