ETRI 0.5um CMOS Std-Cell DK 예제: ALU8 [6]
----------------------------------------------
VI. 자동 배선(Auto-Routing)
자동 배선(auto-routing)은 표준 셀이 배치된 DEF 네트리스트를 읽어 배선을 실시한다. QFlow에 자동배선을 수행하는 명령은 아래와 같다.
% qflow route ALU_wrapper
VI-1. QRouter: 자동배선 도구
QFlow의 자동 배선 도구는 QRouter 다[link]. 표준 셀들이 배치된 영역 위에 각 셀들의 핀들 사이를 미로찾기 방식으로 배선을 수행 한다.
배선에 사용할 메탈 층의 선폭(width)과 간격(spacing)은 공정의 디자인 룰(레이아웃을 그리는 기하학적 규정[link])을 따른다. 이 배선의 규칙은 표준 셀의 LEF에 기술되어 있다. 표준셀 LEF는 셀들의 물리 정보가 담겨 있다. 셀의 크기, 원점 죄표, 배선 불가영역(OBS, obstruction)등이 표시된다. 표준 셀 내부에서 사용된 메탈 선의 좌표로 외부의 자동 배선 도구가 배선에 피해야 하는 역역임을 나타낸다. 자동 배선은 설계자가 간여할 수 있는 부분은 없다. 배선에 사용할 많은 수의 셀과 엄청난 량의 배선 갯수를 감안 하면 비록 자동화 도구가 미덥지 않더라도 맞겨두자.
VI-2. 자동배선에 영향을 주는 인자
자동 배선에 영향을 주는 인자는 셀 배치 밀집도와 배치 가로세로비다. QFlow의 기본 밀집도는 1.0 이며 가로세로비는 0.75다. 이 배치 인자를 바꾸려면 QFlow 프로젝트 파일 project_vars.sh에서 initial_delsity 값을 변경한다. 배치 가로세로비는 .par 파일에서 TWMC*chip.aspect.ration 값을 변경한다.
VI-3. 자동 배선에 실패 했을 때 조치
자동 배선도구는 배치도구에서 출력한 셀들의 배치 좌표와 연결관계만 기록된 미배선 DEF(unrouted DEF)를 가지고 배선을 실시한다. 배선은 표준 셀의 OBS영역을 지날 수 없다. 표준 셀들이 밀집도(density)에 따라 배선이 가능한 영역이 확보된다. 자동 배선에 실패하면 취할 수 있는 조치는 밀집도를 낮춰 배치부터 다시해줘야 한다.
예제의 경우 QFlow의 배치 기본 값을 적용하면 배선에 실패한다. 밀집도와 비율을 각각 0.62와 1.0으로 변경 후 배치를 다시 실시하면 배선에 성공할 것이다.
Qflow project setup
--------------------------------
Technology set to etri050 from existing qflow_vars.sh file
Regenerating files for existing project ALU_wrapper
Running qrouter 1.4.86.T
qrouter -noc -s ALU_wrapper.cfg
*** Running stage1 routing with defaults
Nets remaining: 300
Nets remaining: 200
Nets remaining: 100
Nets remaining: 90
Nets remaining: 80
Nets remaining: 70
Progress: Stage 1 total routes completed: 798
Failed net routes: 63
*** Running stage2 routing with options mask 10, effort 10
Nets remaining: 60
Nets remaining: 50
.......
Nets remaining: 4
Nets remaining: 2
Nets remaining: 1
Progress: Stage 3 total routes completed: 3018
No failed routes!
*** Writing DEF file ALU_wrapper_route.def
Final: No failed routes!
*** Writing RC file ALU_wrapper_route.rc
DEF2Verilog -v .../synthesis/ALU_wrapper.rtlnopwr.v \
VI-4. 배선이 완료된 DEF
배선이 완료된 DEF는 셀의 배치와 핀의 위치에 변화가 없으나 NETS에 메탈 배선층과 접점(VIA)이 추가된 것을 볼 수 있다.
- _28_
( _309_ Y )
( BUFX2_insert22 A )
( BUFX2_insert23 A )
( BUFX2_insert24 A )
( BUFX2_insert25 A )
+ ROUTED metal2 ( 55800 18315 ) M3_M2
NEW metal3 ( 55800 18315 ) ( * 18300 ) ( 54300 * ) ( * 18315 ) M3_M2
NEW metal2 ( 57600 33915 ) M3_M2
NEW metal3 ( 57600 33915 ) ( 57000 * ) M3_M2
NEW metal2 ( 57000 33900 ) ( * 27600 ) M3_M2
NEW metal3 ( 57000 27600 ) ( 55200 * ) M3_M2
NEW metal2 ( 55200 27600 ) ( * 21600 ) M3_M2
NEW metal3 ( 55200 21600 ) ( * 21000 ) ( 53100 * ) ( * 20700 ) ( 52800 * ) M3_M2
NEW metal2 ( 52800 20700 ) ( * 19500 ) M3_M2
NEW metal3 ( 52800 19500 ) ( 54300 * ) M3_M2
NEW metal2 ( 54300 19500 ) ( * 18300 )
NEW metal2 ( 56400 33915 ) M3_M2
NEW metal3 ( 56400 33915 ) ( * 33900 ) ( 57000 * )
NEW metal2 ( 56700 36600 ) ( * 33900 ) M3_M2 ;
- _28__bF$buf0
( _371_ B )
댓글 없음:
댓글 쓰기