전공/VLSI 설계
-
Floorplan을 Constraint-Graph Pair로 변환하는 방법전공/VLSI 설계 2021. 4. 8. 20:22
이 과정은 매우 간단하다. 다음 그림과 같은 Floorplan이 있다고 가정해보자. 목표 : 우리는 해당 Floorplan을 최적화하기 위해 우리가 아는 자료구조인 CGP(VCP와 HCP)로 변환하려 한다. 1단계 : t node(sink node)와 s node(source node)를 각각 생성한다. 2단계 : s node에서 t node로 이동하는 방향으로 모든 노드를 연결한다. 3단계 : 중복되는 경로를 모두 삭제하면 CGP가 완성된다.
-
Floorplan 자료 구조 표현전공/VLSI 설계 2021. 4. 7. 18:34
Floorplan의 면적 혹은 총 Wire 길이를 계산하기 위해서는 Floorplan 데이터를 추상화할 필요성이 있다. 그러면 어떤 자료구조를 이용해서 Floorplan design을 추상화할까? 이 추상화 방법에는 대략 3가지 방법이 있다. 1. Slicing/nonslicing floorplan tree 아래 그림과 같이 Floorplan을 이진트리에 저장하는 방법이다. V : 수직으로 자르는 방향(Vertical) H : 수평으로 자르는 방향(Horizontal) W : 수직과 수평으로 자르는 것으로 표현할 수 없는 부분을 Wheel이라고 한다. 여기서 가장 끝의 노드(leaf node 혹은 terminal node)가 V와 H는 수직과 수평으로 자른 것으로 표현할 수 있으니, Slicing flo..
-
Floorplan design에 대해서전공/VLSI 설계 2021. 4. 7. 03:03
이전 게시글에서 언급했듯, Floorplan 단계는 Chip을 설계할 때 밑그림을 그리는 단계라고 했다. 그러면 밑그림을 그리는 단계에서는 무엇이 중요할까? 이를 생각해보면 아래 3가지가 중요한 요소로 고려된다. 1. Chip/Module의 면적 2. Chip/Module의 비율 3. 총 Wire의 길이 첫 번째 요소인 Chip/Module의 면적을 생각해보자. Chip/Module의 면적이 작으면 여러 Scaling 이득(특히나 경제적 이득)을 얻을 수 있지만, 반대로 Routing 할 수 있는 공간이 줄어들어 Congestion이 발생할 수 있다. (여러 레이어를 사용해도 연결 못할 수 있다.) 따라서 Routing 할 공간을 최소한으로 남겨두고 최대한 작게 만드는 것이 최선이다. 두 번째로, Chi..
-
Chip planning 개요전공/VLSI 설계 2021. 4. 7. 02:12
하나의 Chip을 만들기 위해서는 여러 계층 Module들이 필요하다. 그리고, 이 Module들이 어느 위치에 배치되어 있느냐에 따라서 Chip의 성능은 변할 수 있다. 따라서 설계자는 Chip을 단순하게 기능만 구현하는 것이 아니라, Module의 배치나 I/O Pin 위치를 다르게 함으로써 가장 특성이 좋은 경우를 찾아야 한다. 이를 Chip planning이라고 하며, 크게 3 단계로 나뉜다. 1. Floorplanning : Chip의 밑그림을 그리는 작업이다. 사용할 구간과 사용하지 않을 구간을 나누기도 하고, 수직/수평으로 밑그림을 나누어서 추후 Cell을 배치할 공간을 만든다. + 사용할 구간과 사용하지 않을 구간을 나누는 이유는 무엇일까? Chip 내부에는 여러 모듈들이 존재한다. 하지만..
-
Multi cycle path와 False path에 대해서전공/VLSI 설계 2021. 4. 1. 22:38
현대의 많은 컴퓨터는 Pipeline 구조를 띄고 있다. 위와 같이 Pipeline 구조는 하나의 명령어를 여러 단계로 분할하고 여러 자원을 순서대로 공유함으로써 동작 속도의 이득을 보는 것이다. (Clock frequency 또한 Single cycle 구조인 경우보다 훨씬 빠른 것이 장점이다.) 그리고 Clock frequncy (동작 속도)는 이러한 Pipeline구조 각 단계 중 가장 오래 걸리는 시간을 통해 결정된다. 1. Multi cycle path 기본적으로 위의 Pipeline 구조는 한 단계당 하나의 Clock에 의해 동작한다. 즉, 데이터를 한 Clock마다 각 단계에서 처리하여 다음 단계로 넘겨준다는 의미이다. 그러면 위에서도 설명했듯, 각 단계 중 가장 오래 걸리는 시간을 기준으로..
-
Logic Circuit의 Timing Violation 정리전공/VLSI 설계 2021. 3. 31. 16:46
[해당 내용은 저서 "CMOS VLSI Design: A Circuits and Systems Perspective" 에 기반하여 작성되었습니다.] ASIC Design시 고려해야 할 Timing violation은 2가지로 분류된다. 1. Setup time Violation : Clock이 들어오기 전에 내가 원하는 Data가 안정적으로 유지되어야 하는 시간 2. Hold time Violation : Clock이 들어온 후에 내가 원하는 Data가 안정적으로 유지되어야 하는 시간 먼저, 위의 Setup time을 위반하는 경우(Setup time violation)는 어떤 경우일까? $T_{c}$ : Clock Period $t_{pcq}$ : 입력 clock과 출력 q 사이의 시간차 중 가장 느린..
-
Clock Skew와 Clock Latency의 차이점전공/VLSI 설계 2021. 3. 31. 14:27
공부하다가 헷갈리는 개념이 있어서 따로 찾아보았다. Skew와 Latency 둘 다 Clock과 Clock의 상승 Edge의 시간차를 보는 것인데, 왜 하나는 Skew라고 말하고 다른 하나는 Latency라고 말할까? 이유는 아래 사진에 나와있다. 간단히 설명을 덧붙이자면, Skew : Flipflop끼리의 Clock 위상차 Latency : Clock Source에서부터 Flipflop까지의 Clock 위상차 라고 할 수 있겠다. (굳이 따지자면 Latency는 또 source와 network로 분류된다. 궁금하다면 여기에서 3번째 명령어 설명을 보면 된다.)
-
Netlist and System Partitioning : FM 알고리즘전공/VLSI 설계 2021. 3. 27. 19:29
앞서 우리는 큰 회로를 부분적으로 나누는 알고리즘인 KL 알고리즘에 대해서 알아 보았다. 위의 알고리즘은 큰 회로를 부분적으로 나누면서, 하위 회로간의 연결이 최소가 되도록 하는게 목표였다. 하지만 실제 회로에 적용하기에는 부족한 부분이 많았는데, 더 고려해야 할 사항은 무엇일까? 일단 첫번째로, Cell과 하위 회로의 크기에 있다. 앞서 말한 KL 알고리즘은 모든 Cell의 크기를 같다고 두고 있다. 하지만 분명히 AND게이트, XOR게이트, Adder 등의 Standard/Macro cell은 서로 크기가 다르므로, 서로 크기를 같다고 하는 것은 현실 세계에 맞지 않는다. 또한 큰 회로를 하위 회로로 나누는데, 이 하위 회로끼리의 크기는 서로 비슷해야 시간 복잡도 측면에서 유리하다. (합병/퀵 정렬 ..