[ 3-1 ] 작업 ; 가장 먼저 Power( VDD)/Ground( VSS) Poll과 연결을 위해 Cell & Pad를 포함 모든 Object에 VDD/VSS Connect를 실행해야 한다.
"PreRoute" 메뉴의 "Connect Ports to P/G" 클릭하고 아래 그림처럼 VDD/VSS를 각기 선언해준다.
위처럼 VDD/VSS를 각각 연결하면 아래 그림의 붉은 점선 내 "Connected 1567 ports to net (VSS) ~~~"와 같은 Log가 뜬다. 이 Log가 뜨지 않으면 제대로 연결되지 않은 것이다.( 단, 한 번 연결해놓으면 다음에 다시 연결해봤자 Connect 0 ports~~라는 식으로 메시지가 뜬다. 즉 중복되어 연결되지는 않는다. 한 번 해놓으면 끝!)
[ 3-2 ] 작업 ; Place를 하기 전에 큼직한 몇 가지 Constraint만 적용시키는 단계( 정확히 모름 T.T)
"PrePlace" 메뉴의 "Pre-Placement Optimization"을 클릭하고 아래 그림처럼 설정한 후 실행.
( 여기서 High-Fanout Synthesis만 Enable한 이유는 Reset같은 Non-Clock 신호면서도 Faout이 수없이 많은 신호들이 존재하기 때문에 이를 인식하라는 차원에서다.) Cell View Window를 보면 오른쪽에 정렬되어 있던 Cell들이 Boundary 안으로 들어오면서 배치되려는 모습이 보일 것이다.
[ 3-3 ] 작업 ; Pre-Placed Cell들에게 좀 더 tight한 Optimiation Point( Timing, Metal 개수, Region Regidity 등)을 적용한다.
"InPlace" 메뉴의 "Placement Common Options"를 클릭한 후 아래 그림처럼 설정하고 실행! 참고로, Region Regidity는 앞선 Prototype 만들 때 Sub-Module별 Place를 위해 Region 영역
설정했는데 이 Region 안에 위치하도록 강제하는 엄격도(?) 정도로 볼 수 있다. 높을수록 Region 내에 위치하려고
Optimize함.
위처럼 Optim. 포인트를 설정하고 실제 In-Place를 행하면 된다.
"InPlace" 메뉴의 "Design Placement"를 선택하고 실행!( Auto Place를 해도 되는 듯 하나 정확한 차이는 모름. Auto Place를 하는 경우 어떤 Option이 Default가 되는지 그런 차이가 아닐까...) 아무튼 Cell View Window의 푸른 점선을 보면 거의 Hard( Place) Blockage 영역을 제외하곤 Cell이 고르게 배치되는 걸 볼 수 있다.
이건 Flow의 핵심 사항은 아닌데 얼마나 Place에 있어 복잡도를 가지고 있는지 확인할 수 있는 Skill이다.
"InPlace" 메뉴의 "Display Congestion Map"을 클릭하면 Ver./Hor. 측면으로 복잡도를 보여준다. 앞으로의 Place 단계를 처리하고 나서 "Update Congestion Map"을 클릭하면 업데이트된 복잡도를 볼 수 있다. Cell View Window의 파란 점선을 보면 붉은 색으로 튀어나온 것들을 볼 수 있는데 이 부분이 복잡도가 크다는 걸 의미한다. Gate 수가 큰 Design의 경우 요긴하게 사용할 수 있겠다.( Place 단계에서.)
[ 3-4 ] 작업 ; Setup / Hold Violation까지 감안한 최종 단계의 Placement다.
"PostPlace" 메뉴의 "Post-Place Optimization Phase 1"을 선택하고 아래 그림처럼 설정하고 실행하여 Optimize할 항목을 선택해준다.
"PostPlace" 메뉴의 "Post-Place Optimization"을 선택하고 아래 그림처럼 설정한 후, 실행한다. Cell View Window의 결과물을 보면 파란 점선처럼 복잡도가 커진 것을 알 수 있다.( Clock이 대충 선언된 SDC 파일을 참조해서 Setup/Hold를 맞춰봤을 테니까...)
어쨌든 위의 Flow로 Placement를 마쳤다.
앞으로 남은 것은, CTS( Clock Tree Synthesis)와 Route( RC Extraction) 정도이다.
필자의 프로젝트 경우, Target Design의 Gate수가 작으니 Iteration에 크게 구애받지 않지만 보통 몇 백만 Gate의 IC라면 Flow가 꼬일 때마다 Iteration이 발생하므로 Flow에 대한 이해를 확실히 가져야 한다.