Floorplan이란?
1. Floorplan정의
Floorplan이란 설계자들이 RTL level로 설계해 놓을 것을, frontend엔지니어가 netlist level로 합성을 마친 것을 physical적으로 배치하는 단계입니다. 쉽게 말하면, 메모리와 standard cell을 배치하는 단계입니다. backend엔지니어가 하는 일을 요약해서 말할 때 pnr이라고 합니다. pnr은 place and routing입니다.
2. Floorplan은 backend엔지니어의 실력
그만큼 place를 하는 게 backend엔지니어의 가장 중요한 부분이라고 할 수 있습니다. 그래서 Floorplan을 잘하는 것이 굉장히 중요합니다. Floorplan을 어떻게 하냐에 따라서 이후에 timing이 천자만별로 나오기 때문입니다. 그리고 Floorplan을 잘하면 툴이 optimize 하는 시간이 줄어들기 때문에 설계 시간을 단축할 수 있습니다. Floorplan을 어떻게 하는지에 따라 backend엔지니어의 실력이 결정될 정도로 매우 중요한 단계입니다.
Floorplan 하는 법
1. 칩사이즈 조절
칩 사이즈는 innovus툴에서 Specify Floorplan에 들어가서 조절할 수 있습니다. Floorplan(플로어 계획) 고급 스냅 다이/코어 상자를 그리드에 지정합니다. 체크를 풀어줘야지 칩 사이즈를 정수 배로 설정할 수 있습니다.
2. instance배치
칩 사이즈를 정했으면, 모듈 배치를 시작합니다. 칩 배치는 각자 정해진 규격에 따라서 배치합니다, 모듈 이동은 shift + r 키로 가능합니다. 메모리를 클릭하고 Q를 누르면 메모리에 대한 정보가 나옵니다. 메모리를 배치할 때 파인 공간이 있으면 안 됩니다. 추후에 CELL이 파인 공간에 배치되기 때문입니다. 파인 공간에 CELL이 배치되면 쇼트가 생길 확률이 높아집니다. soft blockage를 통해서 파인 공간을 막아줍니다. 이렇게 하면 CELL이 파인공간에 들어가지 않고, 골고루 배치가 될 확률이 높아집니다.
3. tool box사용
ToolBox를 이용하면 메모리끼리 정렬을 할 수 있습니다. shift 기능은 내가 입력한 값만큼 이동시킬 수 있습니다. space는 두 개의 메모리 사이에 얼마만큼의 거리를 둘 건지 설정할 수 있습니다. align 기능을 이용하면, 1st Selected를 체크하고, 먼저 고른 메모리를 기준으로 정렬됩니다.
Floorplan 할 때 주의할 점
1. 배치 조건 확인
Floorplan에서는 메모리를 정해진 조건에 맞게 배치합니다. 설계자들이 이미 고객사와 협의해 정해논 spec이 있고, foundary에서 맞게 설계가 가능한 최소한의 조건들이 이미 정해져 있습니다. 그걸 DRC룰이라고 합니다. 설계를 할 때는 DRC룰을 지켜서 Floorplan을 진행해야 합니다. 그리고 DRC룰과 별개로 각각의 파운드리 업체에서 정해놓은 규격이 있습니다. 그 구격에 따라서 설계를 진행해야 합니다. 보통 파운드리 업체에서 정해놓은 규격은 보안으로 정해져 있습니다. 이 규격은 파운드리의 수율에 영향을 미치고 차별화를 만들어내는 기술이기 때문입니다.
2. 칩 사이즈 작게
FloorPlan 사이즈가 작으면 작을수록 좋습니다. 웨이퍼 한 장에 많은 칩을 찍어낼 수 있기 때문입니다. 그러나 사이즈가 작아지면 오류가 생기기 때문에 오류가 생기지 않은 선에서 제작합니다. 매크로는 정사각형 형태로 구역을 나눠서 배치하는 것이 좋습니다. 그래야 나중에 칩 사이즈를 조절할 때 쉽게 조절할 수 있습니다. 또한눈에 한 눈에 보이기 때문에 설계하는데 효율적입니다.
3. 제약 조건 확인
IP를 배치할 때 제약이 있는지 확인하고 배치해야 합니다. IP에 따라서 제약조건을 지키지 않고 잘 못 배치하면 작동하지 않기 때문입니다. 그러면 나중에 Flow를 진행했는데 다시 Floorplan단계부터 해야 합니다.
메모리는 fix 되어있고, 로직은 움직입니다. 그래서 로직끼리 뭉쳐놓으면 나중에 EDA tool이 자동으로 배치할 때, 로직이 움직이고 배치가 수월해집니다. blockage는 칩에 있는 셀에 테두리를 치고 그 안에는 아무것도 오지 못하게 합니다. IP나 모듈 같은 경우 배선이 가까우면 에러가 나는 경우가 있기 때문에 이를 방지하기 위함입니다.
Floorplan 메모리 거리 계산 법
메모리 핀 개수가 많을수록, 메모리와 다른 블록 사이에 총돌이 발생할 가능성이 높아집니다. 따라서, 메모리의 핀 개수가 많을수록 메모리와 다른 블록 사이에 더 많은 간격이 필요합니다. 메모리의 핀 개수에 따라서 벌려야 하는 거리는 일반적으로 다음과 같이 결정됩니다.
1. 메모리 핀 개수가 적을 경우
메모리와 다른 블록 사이에 작은 작은 간격으로 배치할 수 있습니다. 이 경우, 메모리와 다른 블록 사이에 충돌이 발생하지 않도록 충분한 가격을 유지합니다.
2. 메모리의 핀 개수가 많을 경우
메모리와 다른 블록 사이에 충돌이 발생하지 않도록 충분한 간격을 유지하기 위해서는 메모리와 다른 블록 사이에 더 큰 간격이 필요합니다. 이를 위해, 메모리의 핀 개수가 많을수록 메모리와 다른 블록 사이에 더 많은 간격을 유지하게 됩니다.
3. 메모리 사이 간격 구하는 공식
메모리 사이 거리 = 핀 개수 * METAL WIDTH / 사용가능 한 LAYER 개수 따라서, 메모리의 핀 개수에 따라서 메모리와 다른 블록 사이의 간격이 결정되며, 핀 개수가 적을수록 더 작은 간격으로 배치할 수 있습니다.
'IT기술' 카테고리의 다른 글
반도체 설계 lef, gds, tech, lib 등 주요 용어 정리. (0) | 2023.03.12 |
---|---|
반도체 회사에서 사용하는OS linux 사용법과 command정리. 4탄 (0) | 2023.03.11 |
REDHAWK 하는법 & 주의점 총정리 (feat. static, dynamic. 반도체 backend 설계 ) (0) | 2023.03.09 |
CTS란? 하는법 & 주의점 총정리 (0) | 2023.03.08 |
반도체 업계 취업 가이드. backend 설계 직무 현직자가 말합니다 (0) | 2023.03.07 |