Hi all! I am testing magic with sky130 and it works fine until I try to do PEX. The dut is a buffer ...
s
Hi all! I am testing magic with sky130 and it works fine until I try to do PEX. The dut is a buffer made of two inverters and a long wire at the output (see below). I have tried different recipes, but until now only parasitic capacitors are extracted (extracted netlist attached). This is what I am currently doing: extract all ext2sim alias on ext2sim labels on ext2sim ext2spice lvs ext2spice extresist on ext2spice cthresh 0.01 ext2spice note that if try to set rthresh I got this: ext2spice rthresh 0.01 exttospice: integer value or "infinite" expected. I can not figure out what I am doing wrong. Can someone post an example/working recipe?
t
Common misconception. "rthresh" refers to a "lumped resistance" which is a single resistance value R attached to a net such that R*C = the propagation delay through the net. Obviously that's a broad oversimplication, and the format is understood by exactly zero tools. To extract resistance in a net, you will need to use the "extresist" command. The usage is sort of complicated because magic annotates its own extraction output in a separate file and then merges it all together in the final netlist. Worse, it relies on a completely different netlist (the .sim file) to help bootstrap the annotation process. The general usage is this:
Copy code
extract do local
extract all
ext2sim labels on
ext2sim
extresist tolerance 10
extresist
ext2spice lvs
ext2spice cthresh 0
ext2spice extresist on
ext2spice
Note that there enough questions surrounding magic's ability to correctly handle the annotation process through a hierarchy that I always recommend flattening a circuit before running full R-C extraction.
1
s
Many thanks Tim! I got it working (attached netlist). I flattened the design before running your code. For completeness in case someone else ask, this is the complete recipe:
Copy code
flatten buff_pex
load buff_pex
extract do local
extract all
ext2sim labels on
ext2sim
extresist tolerance 10
extresist
ext2spice lvs
ext2spice cthresh 0
ext2spice extresist on
ext2spice
🙌 1