Near threshold voltage (NTV) 회로는 동작전압을 문턱전압 (Vth) 근처까지 낮추어 설계함으로써 최대 에너지 효율을 얻고자 한다. <그림 1>은 회로의 동작전압과 에너지 소모량의 관계를 보여주는 그래프로서, NTV에서의 동작이 정상전압에 비해 전력 소모가 5배 낮은 것을 보인다. 따라서 NTV 회로 설계는 사물인터넷 (IoT), 웨어러블 컴퓨터 등의 애플리케이션에서 전력 소모를 획기적으로 줄일 수 있다.
NTV 회로는 에너지 소모를 크게 줄일 수 있는 장점이 있지만, 반면 셀 딜레이가 증가하고 공정 변이에 민감한 단점을 가진다. NTV에서의 셀 딜레이 증가는 회로의 성능 저하 뿐만 아니라 leakage 에너지 증가를 가져온다. <그림 2>는 공급전압에 따른 셀 딜레이 변이 증가를 보인다. 이는 설계 시 셀 딜레이에 추가적인 마진을 요구하고 칩의 면적을 증가시킨다. 그러므로, NTV computing에서의 이득을 최대화하기 위해서는 이러한 문제들을 해결할 수 있는 NTV 설계 방법론이 필요하다.




Library Optimization through RSCE
정상전압에서는 DIBL이나 Vth roll-off와 같은 short channel effect (SCE)로 인해 트랜지스터의 채널 길이가 감소하면서 Vth는 감소한다. 이를 방지하기 위해 source와 drain 근처 채널에 더 많은 dopant (halo)를 형성시켜서 Vth 감소를 보상한다. 그러나 NTV에서는 낮은 drain 전압 때문에 SCE가 상대적으로 크지 않으므로, 오히려 채널 길이가 작을 때 Vth가 큰 현상이 발생하는데, 이를 reverse short channel effect (RSCE)라고 부른다.
채널 길이의 증가는 RSCE을 감소시켜서 특정 길이까지는 셀의 딜레이를 감소시키고, 그 이상의 길이에서는 다시 증가시킨다. 또한, 딜레이 변이는 채널 길이의 증가에 따라 꾸준히 감소하는 경향을 보인다. 하지만 이에 따라 게이트 캐패시턴스와 셀 면적이 증가하므로 셀 내부 트랜지스터들의 채널 길이를 크게 증가시킬 수는 없다. 우리는 각 로직 셀에 대해서 링오실레이터 회로를 구성하고, 트랜지스터의 길이를 증가시키면서 시뮬레이션을 수행한다. INV 셀을 이용한 링오실레이터 딜레이는 <그림 3>과 같이 변화한다. 우리는 딜레이 뿐 아니라, 셀의 면적과 변이를 고려하기 위해 최소 delay의 1% 이내의 값을 가지는 채널 길이들을 확인하고 그들 중 가장 작은 셀 크기를 가지는 채널 길이를 선택하고, 이를 셀 레이아웃에 반영한다. 칩 면적이 크게 증가하지 않도록, 채널 길이를 증가시킨 셀은 설계 시 선택적으로 사용할 수 있도록 한다.
그림 3. 다양한 트랜지스터 크기에 대한 INV delay




Optimization of Flip-Flops and Their Remapping
그림 4는 D-type flip-flop 회로를 보인다. ck_a와 ck_b는 셀 내부의 transmission gate와 tri-state buffer를 구동한다.  우리는 이 두가지 clock signal을 (1)부터 (4)까지의 clock pin에 재배분함으로써 다른 timing parameter를 가지는 두 가지 flip-flop을 생성한다. 기존 flip-flop은 ck_a가 (3), (4)를 구동하도록, 그리고 ck_b가 (1), (2)를 구동하도록 설계된다. 이는 (b,b,a,a)로 표현되고 이는 가장 작은 면적을 가진다. 두가지 flip-flop (a,a,b,b)와 (b,b,b,a)는 그림 5와 같이 두 clock 신호의 조합을 바꿔서 제작된다. 이 때, 내부 셀 라우팅으로 인해 셀 면적의 증가는 불가피하다. 우리는 면적 증가를 최소화 하기 위해 transistor 위치와 metal 라우팅을 바꾸고,  ck_a에서의 load capacitance를 최대한 기존과 같도록 한다. 예를 들어, (b,b,b,a)에서 ck_a의 metal 길이가 길기 때문에 하나의 transistor만을 구동시키게 한다.
그림 5는 세가지 타입 flip-flop들의 setup-time, hold-time, ck-q delay를 나타낸다. 이 값들은 가장 큰 ck-q delay 값으로 normalized 된다. (1)에서의 ck_a는 ck_b에 비해 hold-time을 더 적게 만든다. 이는 ck_a가 ck_b보다 두 INV delay 만큼 더 빠르기 때문이며, 이로 인해 같은 양만큼 더 큰 setup-time을 발생시킨다. (3)에 연결된 clock은 ck-q delay에 영향을 미친다. 주의해야 할 점은 우리의 최적화가 주로 falling transition의 timing parameter에만 영향을 미친다는 점이다. 그러나 conventional cell 구조에서 falling transition이 더 큰 hold-time을 가지고 hold violation의 주요 원인이 되기 때문에 충분히 이득을 얻을 수 있다. 우리는 이렇게 개발된 세 가지 flip-flop들을 회로의 각 flip-flop에 mapping 시켜서 hold total negative slack (TNS)를 최소화 시키는 것을 ILP로 formulation 한다.



그림 4. D-type flip-flop

그림 5. 세가지 flip-flop의 timing parameter들과 면적