검증

Calibre : 필요한 rule만 골라서 체크하는 DRC SELECT CHECK

쥴리정 2024. 6. 24. 22:48

 레이아웃 해야 하는 블럭의 크기가 작을 때는 Calibre 가 워낙 빠르기 때문에 DRC, LVS를 몇십번씩 돌리고 또 돌려도 시간 부담이 없겠지만 어느 정도 크기가 있는 IP 레벨만 되어도 DRC 한 번 돌리는데 한시간은 훌쩍 넘어간다.

그런데 참 이상하게도 "이제 다 된 것 같아, 마지막 검증만 확인해 보자!" 이런 상황으로부터 보통 한 번이 아닌 세 번은 돌려야 끝이 나는 경우가 많다. (나만 그런가??)

 

암튼, 이렇게 검증 막바지에 이르러서 몇 개 남지 않은 사소한 DRC를 확인하기 위해 Design rule 전체 set을 모두 돌리기에는 시간이 너무 아깝다.

그래서 이럴 때는 내가 확인해 보고 싶은 rule만 골라서 check 해 볼 수 있는 DRC SELECT CHECK 를 사용하면 검증 시간을 훨씬 줄일 수 있다.

 

글쓴이는 Calibre Interactive를 사용하지 않고 터미널에서 command 로 검증을 진행하기 때문에 혹시라도 Calibre Interactive를 사용하여 DRC SELECT CHECK를 수행하고 싶은 이들은 아래의 동영상을 보고 따라하면 될 것 같다.

 

https://www.youtube.com/watch?v=qJqWxx7KKq4

 

 

그럼, command 로 DRC SELECT CHECK 하는 방법을 알아보자.

 

아래에 보이는 것 처럼 DRC rule file에 

 

DRC SELECT CHECK ERR1 ERR2 ERR3 ERR4

 

처럼 구문을 추가 해 준 후 DRC를 실행하면 ERR1 ERR2 ERR3 ERR4 네 개의 에러에 대한 DRC 체크만 실행한다.

 

DRC SELECT CHECK 를 위한 rule file 예

 

 

DRC SELECT CHECK 구문을 여러 줄을 써도 된다.

 

CASE 1 )

DRC SELECT CHECK ERR1 ERR2 ERR3 ERR4

 

CASE 2)

DRC SELECT CHECK ERR1

DRC SELECT CHECK ERR2

DRC SELECT CHECK ERR3

DRC SELECT CHECK ERR4

 

CASE 3)

GROUP ERR_group1 ERR1 ERR2 ERR3 ERR4

DRC SELECT CHECK ERR_group1

 

위의 CASE 1, 2, 3 은 모두 ERR1, ERR2, ERR3, ERR4 네 개의 DRC error만 수행하라는 뜻으로 동일한 RULE 되겠다.

각자 편리한 방법으로 활용하면 되는데 CASE 3 과 같이 에러 종류별로 group을 만들어서 그 때 그 때 필요한 group만 체크하도록 하면 아주 편리하다.

 

CASE4)

GROUP   M1_all           M1.?

GROUP   M2_all           M2.?

GROUP   M3_all           M3.?

GROUP   antenna_all   ANT.?

GROUP   latchup_all    LAT.?

GROUP   esd_all          ESD.?

.

.

DRC SELECT CHECK M2_all

 

이렇게 각 레이어, 혹은 DRC 종류별로 GROUP을 만들어 놓고 필요한 GROUP만 선택해서 DRC를 돌릴 수 있다.

참고로 위의 구문에서 ? 가 뜻하는 것은 공백을 포함한 모든 문자를 뜻한다.

 

GROUP 구문 : GROUP [group이름]  [group에 속하는에러 list]

 

이렇게 체크하고자 하는 에러만 체크한 후에는 반드시 DRC SELECT CHECK 줄을 주석 처리하고 전체 DRC를 돌려서 최종 확인하는 것을 잊지 말자.