Guest
in a standard techfile provided by Cadence, there only has a implant layer. But for some reasons, i need another implant layer, my question is how to modify this techfile (see below) to produce a new Pcells of transistors?
if(techParam("nimplant") then
tcDeclareDevice( "layout" "spcmos" "spcnmos" (
( xtrType "ndiff")
( gateLayer techParam("poly") )
( sdLayer techParam("ndiff") )
( sdImpLayer techParam("nimplant") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("ndiff") techParam("poly")) )
( sdImpEnc techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("nimplant") techParam("ndiff")) )
) )
else
tcDeclareDevice( "layout" "spcmos" "spcnmos" (
( xtrType "ndiff")
( gateLayer techParam("poly") )
( sdLayer techParam("ndiff") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("ndiff") techParam("poly")) )
) )
)
if(techParam("pimplant") then
tcDeclareDevice( "layout" "spcmos" "spcpmos" (
( xtrType "pdiff")
( gateLayer techParam("poly") )
( sdLayer techParam("pdiff") )
( sdImpLayer techParam("pimplant") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pdiff") techParam("poly")) )
( sdImpEnc techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pimplant") techParam("pdiff")) )
) )
else
tcDeclareDevice( "layout" "spcmos" "spcpmos" (
( xtrType "pdiff")
( gateLayer techParam("poly") )
( sdLayer techParam("pdiff") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pdiff") techParam("poly")) )
) )
)
if(techParam("nimplant") then
tcDeclareDevice( "layout" "spcmos" "spcnmos" (
( xtrType "ndiff")
( gateLayer techParam("poly") )
( sdLayer techParam("ndiff") )
( sdImpLayer techParam("nimplant") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("ndiff") techParam("poly")) )
( sdImpEnc techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("nimplant") techParam("ndiff")) )
) )
else
tcDeclareDevice( "layout" "spcmos" "spcnmos" (
( xtrType "ndiff")
( gateLayer techParam("poly") )
( sdLayer techParam("ndiff") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("ndiff") techParam("poly")) )
) )
)
if(techParam("pimplant") then
tcDeclareDevice( "layout" "spcmos" "spcpmos" (
( xtrType "pdiff")
( gateLayer techParam("poly") )
( sdLayer techParam("pdiff") )
( sdImpLayer techParam("pimplant") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pdiff") techParam("poly")) )
( sdImpEnc techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pimplant") techParam("pdiff")) )
) )
else
tcDeclareDevice( "layout" "spcmos" "spcpmos" (
( xtrType "pdiff")
( gateLayer techParam("poly") )
( sdLayer techParam("pdiff") )
( sdExt techGetOrderedSpacingRule(techGetCurrentTechFile() "minEnclosure"
techParam("pdiff") techParam("poly")) )
) )
)