fixmaster_tolegal.il #1

  • //
  • guest/
  • robert_yu/
  • perforce/
  • cdsp4/
  • release/
  • 2.2/
  • Skill/
  • Toolbox/
  • fixmaster_tolegal.il
  • View
  • Commits
  • Open Download .zip Download (2 KB)
procedure(fixm_tolegal(lib)				  ;_Sep  7 01 sikand 1146
  let((dbad xim libid x y yim legallibs ydbad copysrc status)

    libid=ddGetObj(lib)
    ;; get all the headers
    legallibs = list("locked" lib)


    foreach( libcell libid~>cells
       foreach(viewcell libcell~>views
	  x=dbOpenCellView(lib libcell~>name viewcell~>name nil "r" nil)
	  xim=x~>instHeaders
	  ddd = xim
	  dbad=setof(xx xim !member(xx~>libName legallibs))
	  when(dbad
	     printf("%s %s\n" libcell~>name viewcell~>name)
	     y=dbOpenCellView(lib libcell~>name viewcell~>name nil "a" nil)
	     yim=y~>instHeaders
	     ydbad=setof(yy yim !member(yy~>libName legallibs))
	     foreach( thing ydbad
		if( viewcell~>name == "schematic" then
		   foreach( inst thing~>instances
		      println
		   ;;schReplaceProperty( list(inst) "libName" to_lib )
		   )		   
		else
		foreach( inst thing~>instances
		   printf("Badness: (%s) %s %s\n" thing~>libName inst~>name thing~>cellName)
		   ;; look for existence in self
		   lookup = ddGetObj(lib thing~>cellName thing~>viewName "*")
		   if( lookup then
		      printf("Replacing with master from %s\n" lib)
		      leReplaceAnyInstMaster(inst lib thing~>cellName thing~>viewName)
		   else
		      printf("Copying in\n")
		      copysrc=dbOpenCellView( thing~>libName thing~>cellName thing~>viewName nil "r" nil )
		      if( copysrc then
			 status = dbCopyCellView(copysrc lib  thing~>cellName thing~>viewName "" nil nil)
			 unless( status
			    error("Copy failed")
			 )
			 leReplaceAnyInstMaster(inst lib thing~>cellName thing~>viewName)
		      else
			 error("Could not locate copy source object!")
		      ) ; ** if copysrc **
		   ) ; ** if lookup **
		   ;;leReplaceAnyInstMaster(inst to_lib thing~>cellName thing~>viewName)
	           )
		)
	     ) ; ** foreach thing **
	dbSave(y)
	dbClose(y)
	  ) ; ** when dbad **
       ) ; ** foreach viewcell **
    ) ; ** foreach libcell **
    
  ) ; ** let **
  t
) ; ** procedure fixm **
# Change User Description Committed
#1 4529 robert_yu p4 integrate from public/perforce/cdsp4/release/2.2/...
//guest/perforce_software/cdsp4/release/2.2/Skill/Toolbox/fixmaster_tolegal.il
#2 2880 Shiv Sikand remove fixm procedure name conflict
#1 1675 Shiv Sikand New 2.2 tree