Boris Murmann
01/15/2024, 1:39 AMMitch Bailey
01/15/2024, 5:16 AMBoris Murmann
01/15/2024, 5:27 AMMitch Bailey
01/15/2024, 5:39 AMBoris Murmann
01/15/2024, 5:40 AMBoris Murmann
01/15/2024, 5:40 AMMitch Bailey
01/15/2024, 5:45 AMformat="@name @@A1 @@A2 @@B1 @VGND @VNB @VPB @VPWR @@X @prefix\\\\a21o_2"
versus
.subckt sg13g2_a21o_1 A1 A2 B1 VDD VSS X
Stefan Schippers
01/15/2024, 11:37 PMVNB
and VPB
ports are not drawn as symbol pins but passed as attributes (same as VPWR and VGND power rails) you can remove all references to VNB
and VPB
in format
, extra
and template
attributes. Also reverse the order of @VPWR
and @VGND
in format
attribute.Mitch Bailey
01/16/2024, 10:59 AMlibs.tech/xschem/sg13g2_stdcells
directory, does it resolve the problem?
sed -i -e 's/.VGND .VNB .VPB .VPWR/@VDD @VSS/' -e 's/VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR/VDD=VDD VSS=VSS/' -e 's/VGND VNB VPB VPWR/VDD VSS/' *
Boris Murmann
01/16/2024, 5:09 PM.subckt sg13g2_dfrbp_1 CLK D Q Q_N RESET_B VDD VSS
Boris Murmann
01/16/2024, 5:10 PMMitch Bailey
01/17/2024, 12:48 AMinput power output
order. However, for the standard cells in xschem, the pin order is explicitly defined in the symbol format statement.
format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dfrbp_1"
Rearranging these should probably give you what you want.
This slightly modified command might work.
sed -i \
-e 's/@VGND @VNB @VPB @VPWR/@VDD @VSS/' \
-e 's/VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR/VDD=VDD VSS=VSS/' \
-e 's/VGND VNB VPB VPWR/VDD VSS/' \
-e 's/@VDD @VSS @@Q @@Q_N/@@Q @@Q_N @VDD @VSS/' *
Boris Murmann
01/21/2024, 6:12 PM.subckt sg13g2_dfrbp_1 CLK D Q Q_N RESET_B VDD VSS
After running your sed (which fixes most other cells, the flipflop netlists like this:
CLK D RESET_B Q Q_N VDD VSS
Mitch Bailey
01/22/2024, 2:50 AMsg13g2_dfrbp_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dfrbp_1"
sg13g2_dfrbp_2.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dfrbp_2"
sg13g2_dlhq_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dlhq_1"
sg13g2_dlhr_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dlhr_1"
sg13g2_dlhrq_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dlhrq_1"
sg13g2_dllr_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dllr_1"
sg13g2_dllrq_1.sym: format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dllrq_1"
sg13g2_sdfbbp_1.sym: format="@name @@CLK @@D @@RESET_B @@SCD @@SCE @@SET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\sdfbbp_1"
Maybe this will work
sed -i .bak \
-e 's/@VGND @VNB @VPB @VPWR/@VDD @VSS/' \
-e 's/VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR/VDD=VDD VSS=VSS/' \
-e 's/VGND VNB VPB VPWR/VDD VSS/' \
-e 's/@VDD @VSS @@Q @@Q_N/@@Q @@Q_N @VDD @VSS/' \
-e 's/\(@@RESET.*\)@@Q @@Q_N /@@Q @@Q_N \1/' *.sym
Boris Murmann
01/24/2024, 1:33 AM