참고로, Command Window에 명령을 주거나 메뉴를 직접 선택 후 어떤 작업을 하면 Astro.cmd.~~~ 라는 파일에 다 기술된다. 그러니까 처음에 Boundary를 메뉴 선택 후 그려서 만들었더라도 Astro.cmd.~~~라는 파일에 그 command가 기술되어 있을 것이고 다음 작업부터는 위처럼 *.cmd 파일로 만들고 이를 불러오기만 하면 되는 것이다.
[ 2-2 ] 작업 ; Sub-Module 단위로 Group 만들기.
필자의 경우 Sub-Module의 Hierarchy를 살려두고 싶어 이처럼 의도했다. Eng'r의 선택에 맞게 이 작업의 적용 유무를 결정하면 될 것이다. 마찬가지로 *.cmd를 Load해서 처리할 것이다.
"Design Setup" 메뉴의 "Add to Group by Names"로 처리해도 된다.
필자의 Sub-Module 중의 하나가 pwr_con인데 아래 붉은 점선처럼 각 Sub-Module을 처리하고 Command Window에서의 Log로 확인하면 된다.
[ 2-3 ] 작업 ; Layout Area에서 Power/Ground Routing을 위한 Poll을 세워야 한다.
마찬가지로 기존에 dump해놓은 file을 load하는 방식( 예하, 모두 동일)으로 Power/Ground Poll을 세울 것이다.
[ 2-4] 작업 ; Sub-Module별 원하는 위치에 Place하고 싶을 때 사용.
역시나 각 Sub-Module별로 사이즈 미리 조정한 dump file Load.
"Design Setup" 메뉴의 "Create Region"을 클릭 후, Group Name 적고 그림.
노란 점선처럼 각 영역이 할당됨을 알 수 있다.
[ 2-5 ] 작업 ; 지금껏 만든 Prototype을 Layout Goal에 맞도록 설정해주는 과정.
"Design Setup" 메뉴의 "Set Up Floorplan"을 클릭한 후 아래 그림처럼 설정.
Eng'r가 본인의 Target Design에 맞도록 설정하면 됨. 필자의 경우 Boundary 내부를 전부 Layout 영역으로 사용할 것이기 때문에 아래처럼 Setting한 것임.( 사용할 Metal Layer는 3임.) 설정 후, Click하면 Cell Window에서 보여지는 것처럼 기존의 Cell들이 Boundary 오른편으로 일괄 arrange된다.
이 과정에서 Top Module의 I/O를 참조하여 Pin들이 일괄 정렬되는데 실제 Eng'r는 Pin Allocation을 Manual하게 수정해야 한다.
"Select" 메뉴에서 "(De)select by Name"을 클릭하고 아래 그림처럼 설정한 후, Set Up Floorplan하면서 자동 배열된 Pin을 선택한다. 그러면 Cell View Window에서 선택된 Pin들이 Highlighted된다.
"d"를 누르면 선택된 Pin들이 Delete된다. 그리고 나서 Pin들을 불러온다. 보통 Boundary에만 Pin들이 놓여지면 *.tdf 형식을 따르면 되는데 필자의 경우엔 Core 안에도 Pin이 배치되어야 한다. 하여 io.dump라는 파일( 이것도 매뉴얼하게 필자가 만듬. 아니면 자동 배치된 Pin들을 GUI상에서 매뉴얼하게 수정한 후 이를 Dump받고 계속된 작업에서 불러오는 방식으로 가져오면 됨.)을 Load했다. "Set Up Floorplan" 과정에서는 M2/M3를 이용하여 Pin을 만드는데 이 부분도 추후 수정할 수 있다.( Select -> Modify 이용. 이 Post의 마지막 부분에 기술되어 있다.)
< 참고 >
필자가 진행중인 프로젝트의 Pin을 불러오고 이를 select한 결과가 다음 그림과 같다.
[ 2-6 ] 작업 ; Place와 Route에 Contraints를 설정하는 방법.
필자의 경우 Metal은 3개만 사용하고 위의 그림처럼 직사각형의 Area를 확보한 상황이다. 하지만 프로젝트 특성상 저런 식으로 P&R을 할 수 없다. 특정 부분은 Phantom으로 남겨둬야 하거나 어떤 영역은 Metal을 2개만 사용하도록 해야 할 때도 있다. 이런 Contraints를 적용하기 위해 Blockage라는 특성을 사용한다. Blockage는 기본적으로 두 가지가 있다. Place에 제한을 두는 Hard Blockage. Route에 제한을 두는 Route Blockage.
- "PrePlace" 메뉴의 "Create Hard Blockage"를 선택한 후 원하는 영역에 그린다.( for Place Constraints)
아래의 붉은 점선이 Place를 하지 말라고 Constrain하는 Blockage다.
- "Route Setup" 메뉴의 "Create Route Guide"를 선택한 후 원하는 영역에 그린다.( for Route Constraints)
아래 그림의 붉은 점선처럼 설정하면 Blocakge 설정한 영역은 M3를 사용하지 않도록 강제할 수 있다. 아무튼 그런 방식으로 Route-Blockage를 원하는 모든 영역을 설정한다. Cyan색의 점선이 Route-Blockage다.
참고로, Blockage한 부분의 Constraints Option은 "Select-Point"를 통해 선택한 후, "Modify" 메뉴의 "Modify"를 누르면 변경할 수 있다.
아무튼 이로써 본격적인 P&R 작업을 위한 사전 준비를 끝마쳤다.
다음엔 Place를 진행해보겠다. ^^
위의 과정 중에 "Dump"된 파일들을 Load했는데 그럼 먼저 특정 Object를 먼저 Dump해야 한다.