• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Help on Tap using Rod object commands.

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 149
  • Views 13163
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Help on Tap using Rod object commands.

Sarvani
Sarvani over 13 years ago

Hi friends,

                I have written below code to fill a bBox with taps(substrate taps) in layout.  To fill taps in bBox(bBox points are specified through enterbBox command) I have used rod creat rectangle. It works good when I draw the bBox. But When I Stretch it then fails. I wrote metal, od, contacts as sub rectangles of Implant layer. When I stretch this rod object then it stretches the pp and contacts only. Is there any methode for doing this. 

 

 procedure(TapBbox1()
enterBox(
?prompts list("Enter the first corner of your box."
"Enter the last corner of your box.")
 ?points         nil
 ?doneProc "TapBbox"
 ?alwaysMap t
))
procedure(TapBbox(w done points)
v=points

;below code may confuse you. So please leave this portion.
y1=car(reverse(car(reverse(v))))+0.06 ; or yCoord(upperRight( bBox ))
y2=car(reverse(car(v)))-0.055 ; or yCoord(lowerLeft( bBox ))
x1=caar(reverse(v))+0.06 ; or xCoord(upperRight( bBox ))
x2=caar(v)-0.055 ; or xCoord(lowerLeft( bBox ))
v=list(list(x2 y2) list(x1 y1))
y1=car(reverse(car(reverse(v))))-0.065 ; or yCoord(upperRight( bBox ))
y2=car(reverse(car(v)))+0.065 ; or yCoord(lowerLeft( bBox ))
x1=caar(reverse(v))-0.065 ; or xCoord(upperRight( bBox ))
x2=caar(v)+0.065 ; or xCoord(lowerLeft( bBox ))
widthOd=(x1-x2)
lengthOd=(y1-y2)
if(widthOd<0
widthOd=-1*widthOd
)

;Rod objects starts from here:

rodCreateRect(
;[?name S_name]
?layer list("PP" "drawing")
?bBox v
?cvId geGetEditCellView()

?subRectArray
;l_subrectArgs Subrectangle Arguments
list(
list(
?layer list("CO" "drawing")
?width 0.04
?length 0.04
;?gap S_gap]
?lowerLeftOffsetX 0.07
?lowerLeftOffsetY 0.07
?upperRightOffsetX -0.07
?upperRightOffsetY -0.07
?spaceX 0.07
?spaceY 0.07
;[?prop l_prop]

) ;End of first subrectangle list

list(
?layer list("OD" "drawing")
?width widthOd
?length lengthOd
;?gap S_gap]
?lowerLeftOffsetX 0.065
?lowerLeftOffsetY 0.065
?upperRightOffsetX -0.065
?upperRightOffsetY -0.065
;?spaceX 0
;?spaceY 0
;[?prop l_prop]
;Repeat ROD Connectivity Arguments here
) ;End of first subrectangle list

list(
?layer list("M1" "drawing")
?width widthOd+0.015
?length lengthOd+0.015
;?gap S_gap]
?lowerLeftOffsetX 0.05
?lowerLeftOffsetY 0.05
?upperRightOffsetX -0.05
?upperRightOffsetY -0.05
;?spaceX 0
;?spaceY 0
;[?prop l_prop]
;Repeat ROD Connectivity Arguments here
) ;End of first subrectangle list


;...
) ;End of all subrectangle lists
;End of l_subrectArgs
) ; end of rodCreateRect
);procedure of tapbox
hiSetBindKey("Layout" "<Key>t"      "TapBbox1()")

 Thank you,

sarvani

  • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information