This is a solution from sourcelink, has anyone gotten it to work? Im trying to run blackBox RCX . There are cell dependencies so an extract BB will fail LVS. Thanks Rick [URL]http://sourcelink.cadence.com/en/search/DisplayHtmlDoc.jhtml;jsessionidsl=2AEWE3VGNHPOLLA0BEBCFEQ?param1=http://sourcelink.cadence.com/docs/db/kdb/2006/May/11245184.html?param2=null?param3=Solutions?param4=11245184?param5=/software/cadence/sldocs/db/kdb/2006/May/11245184.html@en_col?param7=Using%20Black%20box%20for%20%3Cb%3ERCX%3C/b%3E%20extracted%20views[/URL]. Using Black box for RCX extracted views. Error Message: None Problem statement: I create a black box extracted view and the black box cell became a layout view which does not work in the hierarchy editor. How do I use Black box and create an extracted view which will allow me to switch in the schematic for the black boxed item? How do I switch in a schematic view inside an extracted view using RCX? Solution: There are 3 modes you can use for RCX extraction: a) flat b) hrcx c) blackbox However, if you want to be able to use the hierarchy editor for switching in a level of the circuit below the topcell, neither flat or HRCX will work. Flat of course will have transistor representations for the particular block and HRCX, while hierarchical is the hierarchy defined by choice of the RCX tool and not necessarily matching the symbol you want to switch in. The following skill code has been used to allow you to use LVS/RCX blackboxing for the lower level cell. The default returned instance for that cell in RCX is a layout view. This is because RCX does not have reference to the symbol and its busses nor does it have visibility into the netSets (or inheritance) that is used. This skill routine tries to figure out what symbols busses and netSets are available and attempts to match those with the instance reference created by the RCX extraction. To use this procedure read about the ?callProc command of the rcxParameters section. Call this procedure using that method. The procedure will report netSets and bus connections as part of its output. Review that and review the extracted view for valid connectivity to the symbols. Make sure the cds.lib file has visibility into your topcell schematic and the symbol to be inducted to the extracted view. procedure( avExtractedCellViewCallProc( cvID ) ;provided without warranty, you must validate its use yourself schID = dbOpenCellViewByType(cvID~>libName cvID~>cellName "schematic") foreach( inst cvID~>instances if(inst~>viewName == "layout" then printf("Beginning Cell Replacement for %s " inst~>name) conn_list = nil xy=inst~>xy ll = car(inst~>bBox) ur = cadr(inst~>bBox) xy=list( xCoord(ll) + (xCoord(ur) - xCoord(ll)) / 2.0 yCoord(ll) + (yCoord(ur) - yCoord(ll)) / 2.0 ) instName = inst~>name cellName = inst~>cellName libName = inst~>master~>libName foreach(conn inst~>instTerms conn_list=append1(conn_list list(conn~>name conn~>net~>name)) ) dbDeleteObject(inst) newInst = dbCreateInstByMasterName(cvID libName cellName "symbol" instName xy "R0") dbSymbol = dbOpenCellViewByType(libName cellName "symbol") dupstop = nil foreach(instRef dbSymbol~>instRefs foreach(prop instRef~>prop if(prop~>valueType == "netSet" && setof(item dupstop item==prop~>name) == nil then dupstop = append1(dupstop prop~>name) dbCreateProp(newInst prop~>name prop~>valueType prop~>value) printf("copy prop from %s named %s with value %s " instRef~>name prop~>name prop~>value) ) ) ) foreach(term dbSymbol~>terminals splitBus = parseString(term~>name "<:>") if(length(splitBus) == 1 then conn_pair = setof(item conn_list car(item)==term~>name) netName = cadar(conn_pair) printf(" Connect a scalar net %s to " term~>name) print( netName) printf(" ") net = dbMakeNet(cvID netName) xx=dbCreateConnByName(net newInst term~>name) else printf(" Gather and connect a bus %s " term~>name) primeNet = car(splitBus) left = evalstring(cadr(splitBus)) right = evalstring(caddr(splitBus)) if(left > right then inc=-1 else inc=1) inx=left-inc conn_string="" while(inc == 1 && inx < right || inc!=1 && inx > right inx=inx+inc subNet=sprintf(x "%s<%d>" primeNet inx) conn_pair = setof(item conn_list car(item)==subNet) if(conn_pair == nil then netname = "nil" else netName = cadar(conn_pair) ) conn_string=sprintf(x "%s,%s" conn_string netName ) ) conn_string = substring(conn_string 2) printf(" connect in order of %s " conn_string) netList = dbMakeNet(cvID, conn_string) ConnByName = dbCreateConnByName(netList newInst term~>name) ) ) dbClose(dbSymbol) printf(" ") ) ) dbClose(schID) )