FPGA

[FPGA] Combinational Logic과 기초 Verilog 문법 익히기 (2)

히치하이커 J 2024. 10. 24. 14:28
반응형

1. RC delay 발생

 논리 게이트들은 트랜지스터로 구성됩니다. 이 트랜지스터는 전기적 동작에서 저항 성분을 보이는데요. 물론 이 저항은 매우 작기 때문에 없다고 취급할 수는 있으나, 존재하긴 합니다. 특히 최소 몇 기가 바이트의 속도를 요구하는 현대 시대에는 무시하기 어렵습니다.

MOSFET의 저항 성분

 

또한 게이트의 출력 단에는, 트랜지스터의 물리적 구조로 인해 존재하는 Load capacitance가 존재합니다. 이는 트랜지스터가 금속 - 유전체 - 금속 구조를 기본적으로 갖기 때문입니다. 

MOSFET의 커패시턴스

 

이렇게 Resistance와 Capacitance가 맞물리면서 RC 딜레이가 발생합니다. 즉, Input -> Output 간의 딜레이가 발생하게 됩니다. 

 

 이를 위한 해결책으로는, 트랜지스터(주로 MOSFET)의 width를 증가시킨다는 방법이 있습니다. Width를 증가시켜 저항성분을 감소시킨다는 아이디어이죠.

 

 하지만 이 방법 역시  단점이 존재합니다. 바로 Parasitic capacitance가 증가한다는 점이죠. 이는 width가 증가하기 때문입니다. Parasitic capacitance가 증가한다면, 이전 stage에서 driving해주는 능력(전압)이 중요해집니다. 만약 Driving voltage가 작다면, 커패시터를 충전하는 속도가 느려지기 때문에 다시 딜레이가 증가합니다. 따라서 이러한 trade-off를 고려한 "설계의 최적화"가 중요합니다!

 

 

 

 

2. 최적화 설계

 XOR 게이트 설계를 예로 들어보겠습니다. 다음의 표는, XOR 게이트를 설계하는 2가지 방식을 표현한 것입니다.

게이트 단위 설계 CMOS level 설계

 

 세부적으로 파고 들어가면 방법은 많다고 생각하지만, 기본적으로 위 2개의 방법으로 나눌 수 있습니다.

 

 이 경우, CMOS level 설계 방식이 PPA 관점(Performance, Power, Area)에서 더 효율적이라고 말할 수 있습니다. 각각의 관점에서 세부적으로 살펴보도록 하겠습니다.

 

1) Performance(=Speed)

 첫 번째로 Performance("P"PA) 관점입니다. 로직 회로가 정확한 동작을 한다는 가정 하에, "어떤 방식이 더 빠른가?"를 비교하는  관점입니다. 빠를수록 더 좋은 회로라고 볼 수 있겠죠?

 위 경우, CMOS level 설계 방식이 더 효과적입니다. 그 이유는, stage 개수가 더 적기 때문입니다. 일반적으로 stage 개수가 증가하면 speed가 느려집니다. 그 이유는, 전기 신호가 통과해야 하는 stage 수가 늘어나기 때문입니다. 좀 더 엄밀하게 설명하자면, 1개의 stage 출력단에 존재하는 load capacitance를 충/방전하는 시간이 늘어나기 때문입니다. Stage 개수가 늘어날수록 load capacitance의 개수가 증가하기 때문에, 충/방전 시간이 증가하여 전체 Delay가 증가합니다. 따라서 speed는 줄어들게 됩니다.

 게이트 단위 설계 방식에서는 3개의 stage가 필요합니다. 반면 CMOS level 설계 방식에서는 1개의 stage만 존재합니다. 따라서 CMOS level 설계 방식이 스피드 면에서 좀 더 유리하다고 볼 수 있습니다.

2) Power

 두 번째로 Power(P"P"A) 관점입니다. "어떤 회로가 더 적은 전력을 소모하는가?"를 비교하는 관점입니다. (Power) = (공급 전압)*(회로 내 흐르는 전류의 총합)이기 때문에, 공급 전압과 전류를 모두 줄이는 것이 중요합니다. 최근에는 공급전압(Vdd)를 줄이는 것이 하나의 연구 트렌드가 되기도 했죠. 이번 포스팅에서는 동일한 전압을 공급한다고 가정하겠습니다.

 동일한 전압을 인가한다고 가정할 경우, CMOS level 설계 방식이 더 효과적입니다. 그 이유는, 충/방전해야 하는 load capacitance의 개수가 더 적기 때문입니다. 게이트 단계 설계 방식에서는, 각 stage마다 load capacitance가 존재합니다. 이 커패시터들을 충/방전시키기 위해 상대적으로 더 큰 전류가 필요합니다. 반면 CMOS level 설계 방식에서는 load capacitance가 1개이므로, 상대적으로 더 작은 전류가 필요합니다. 소모되는 전류가 더 작으므로, 더 작은 전력을 소모한다고 볼 수 있습니다.

3) Area(=Cost)

 마지막 세 번째는 Area(PP"A") 관점입니다. 이 관점은 "몇 개의 트랜지스터가 사용되었는가?"를 비교하는 관점입니다. 물론 사용된 트랜지스터의 사이즈는 조금씩 다를 수 있고 이는 회로 전체 면적에 영향을 미치는 요소입니다. 그러나 일반적으로 회로 전체 면적을 결정하는 것은 "사용된 트랜지스터의 개수"입니다. 그러므로 이번 포스팅에서는 트랜지스터의 개수를 비교하여 Area를 비교해 보도록 하겠습니다.

 Area 관점에서 비교해 보아도 CMOS level 설계 방식이 더 효과적입니다. 그 이유는, 사용된 트랜지스터 개수가 더 적기 때문입니다. CMOS level 설계 방식에서는 총 8개의 트랜지스터가 사용되었습니다. 반면 게이트 단계 설계 방식에서는 총 22개의 트랜지스터가 사용되었습니다(AND=6개, OR=6개, Inverter=2개 -> 6*2 + 6 + 2*2 = 22). 따라서 Area 관점에서도 CMOS level 설계 방식이 좀 더 유리하다고 볼 수 있습니다. 

 한편 Area = Cost라고 말할 수도 있습니다. 그 이유는, 트랜지스터의 개수가 늘어날수록 회로 제작 비용이 증가하기 때문입니다. 이 관점에서도 CMOS level 설계 방식이 좀 더 유리했다고 볼 수 있습니다.

 

 물론 회로에 따라 설계 방식의 우위가 달라질 수 있습니다. 위 예시는 그저 최적화 설계의 한 예시를 든 것입니다. 

반응형