Programming 언어/Skill

[SKILL] rodCreateRect 함수

호드맨 2017. 2. 12. 22:42

Relative Object Design (ROD)에 관한 함수를 소개했던 글입니다. rodCreateRect() 함수인데, 간단한 것을 제작할 때는 일반적으로 사용하는 dbCreateRect() 함수와 별반 차이가 없어 보이지만, 나중에는 Guard-Ring 등을 제작할 때 유용하게 쓰입니다. 물론 공정에서 제공하는 경우가 많지만, 특별히 제작해야 될 경우 알아두면 도움이 됩니다.

 

1. Creating a Single Rectangle

튜토리얼에서도 간단한 Rectangle을 그릴 때는 rodCreateRect() 보다는 dbCreateRect를 쓰라고 되어있습니다. 기본적으로 cellView부터 값을 찾아옵니다. 혹시나 모르는 함수였다면 자주 쓰이는 것이니 기억해 두도록 합시다.

cvId = deGetCellView()
db:0x1dd5c81a

그다음에는 rodCreateRect() 함수를 이용해서 M1 Layer로 rectangle을 하나 그려봅시다. 함수에서?로 변수를 입력하는 방식은 예전 포스팅했던 글을 참고해주시기 바랍니다.

hodman.tistory.com/159

 

[SKILL 강좌] procedure (@rest @optional @key)

호드맨의 Engineering - 입문하기 : procedure (@rest @optional @key) - skill language는 cadence 회사의 virtuoso tool에서 사용되는 programming language 입니다. 2014년도에 네이버 블로그에서 작성했던 글..

hodman.tistory.com

rodCreateRect(
    ?layer        "M1"
    ?width        4
    ?length       2
    ?cvId       cvId
)
rodObj:0x466a4e60

rodCreateRect로 만든 결과

rodObject가 생성되었습니다. 언급한 것처럼 dbCreateRect()로 만든 것과 차이가 없습니다. Relative 되어있는 Layer가 없기 때문이죠. 다른 방식으로 space값을 가진 여러 Rectangles를 생성하는 방식을 해보겠습니다.

 

2. Creating Rows and Columns of Named Rectangles

입력하는 변숫값이 좀 많아졌을 뿐 사용법은 비슷합니다.

rodCreateRect(
    ?layer        "M1"
    ?width         1
    ?length        1
    ?origin        list( 0 0 )
    ?elementsX     4
    ?elementsY     2
    ?spaceX        1
    ?spaceY        2
    ?cvId          cvId
)
(rodObj:0x466a4f20 rodObj:0x466a4f08 rodObj:0x466a4ef0 rodObj:0x466a4ed8 rodObj:0x466a4ec0
    rodObj:0x466a4ea8 rodObj:0x466a4e90 rodObj:0x466a4e78)

rodCreateRect로 만든 결과

좌표가 많아졌을 뿐 dbCreateRect() 함수 여러 번 쓴 것과 별반 차이는 없어 보입니다. 나중에 stretch가 가능하도록 설정하였을 때는 전체 사이즈를 변경할 때 개수가 자동으로 바뀌게끔 할 수도 있습니다. Design Rule이 더 복잡해지면 하나하나 작업하는 것보다 Rod 함수를 이용하는 게 편해질 수도 있습니다.