/*
 Abstract Skill Generation
 Oklahoma State University
 VLSI Computer Architecture Reserch Group
 Apache 2.0 Licensing
*/
absSkillMode()
absSetOption("NewLibraryName" "library")
absSetLibrary("library")
absSetOption("ImportLefFiles" " ../techfiles/sky130_osu_sc_18T.tlef")
absImportLEF()
inp = infile("GDSlist")
absSetOption("ImportGDSIIFiles" gets(_ inp))
close(inp)
absSetOption("ImportGDSIILayerMapFile" "../techfiles/s8.layermap")
absImportGDS()
absSelectCellFrom("sky130_osu_sc_18T_ms__addf_1" "sky130_osu_sc_18T_ms__xor2_l")
absSetBinOption("Core" "PinsTextPinMap" "(li1 li1)(met1 met1)")
absSetBinOption("Core" "PinsPowerNames" "vdd")
absSetBinOption("Core" "PinsGroundNames" "gnd")
absSetBinOption("Core" "PinsClockNames" "clk")
absSetBinOption("Core" "PinsOutputNames" "Y Q QN S CO")
#absSetBinOption("Core" "AbstractAdjustBoundaryPinsSig" "true")
#absSetBinOption("Core" "AbstractAdjustBoundaryPinsPwr" "true")
#absSetBinOption("Core" "ExtractAntennaMetalArea" "true")
#absSetBinOption("Core" "ExtractAntennaMetalSideArea" "true")
#absSetBinOption( "Core" "ExtractLayersSigWeak" "poly (diff (diff andnot poly)) licon1 ")
absSetBinOption("Core" "ExtractPinLayersSig" "li1 met1 met2 met3 met4 met5 mcon via1 via2 via3 via4")
absSetBinOption("Core" "ExtractDiffAntennaLayers" "true")
absSetBinOption("Core" "ExtractAntennaLayers" "li1 met1 met2 met3 met4 met5 mcon via1 via2 via3 via4 poly licon1 (diff (diff andnot poly)) ")
absSetBinOption("Core" "ExtractAntennaHier" "true")
absSetBinOption("Core" "ExtractAntennaSizeInput" "true")
absSetBinOption("Core" "ExtractAntennaSizeOutput" "true")
absSetBinOption("Core" "ExtractAntennaSizeInout" "true")
absSetBinOption( "Core" "ExtractAntennaGate" "(poly (poly and diff)) ")
absSetBinOption( "Core" "ExtractAntennaDrain" "(diff (diff andnot poly)) ")
absSetBinOption("Core" "ExtractConnectivity" "(poly li1 licon1)(diff li1 licon1)(li1 met1 mcon)(met1 met2 via1)(met2 met3 via2)(met3 met4 via3)(met4 met5 via4)")
absSetBinOption("Core" "AbstractAdjustPowerRailOp" "gnd abutment 0.3 0 vdd abutment 0.3 -0.18")
absSetBinOption("Core" "AbstractBlockageCutAroundPin" "li1 met1 met2 met3 met4 met5 mcon via1 via2 via3 via4 ")
absSetBinOption("Core" "AbstractSiteNameDefine" "18T")
absSetOption("ExportLEFFile" "sky130_osu_sc_18T_ms.lef")
absPins()
absExtract()
absAbstract()
absExportLEF()
absExit()
