Category Archives: SoC & IP design

DVCON 2016 간략 리뷰

DVCON2016(https://dvcon.org/) 에 다녀왔습니다.

DAC15때 Draft만 적고 publish를 못한 전력이 있어서, 되도록 빨리 쓰고 올릴려고 했습니다만, 쉽지 않았습니다.

DVCON은 처음 다녀왔는데요. 일단 주제가 Verification이라는 부분으로 한정되어 있어서 내용에 대한 집중이 좋았다는 측면에서 DAC보다 괜찮았습니다. (물론, DAC의 경우 설계, 검증, 공정, 소프트웨어를 포괄하는 더 다채로운 행사와 폭넓은 내용을 포괄하고 있습니다만, 실제로 수많은 섹션이 동시에 열리면서 제가 직접 볼 수 있는 건 아주 제한적이라는 점이 안타까웠거든요.)

DVCON2016의 내용은 요약하자면..

일단 UVM을 빼놓고 이야기하기 어렵습니다. 실제 발표된 대부분의 내용이 UVM을 기반으로 설명할 정도로 UVM이 검증 분야에서는 널리퍼졌다는 점과 UVM1.2가 IEEE1800.2으로 들어간다는 점.

두번째로 HLS를 위해서 SystemC synthesizable subset이 정의되고 있다는 점과 생각했던 것보다 HLS의 기반이 커지고 있다는 것.

세번째로 Portable stimulus에 대한 정의가 진행되고 있다는 점. 이건 stimulus를 하나 만들어서 만들때 system firmware, emulation, top level simulation(&  subblock level simulation)등의 검증에 적용시킬 수 있었으면 좋겠다는 의도가 있습니다.  접근 방법은 별도의 언어를 정의하는 것과 이전에 만들어진 걸 conversion하는 툴을 만드는 방식이 동시에 진행되면서 어떤것이 좋을지 테스트하고 있는 중입니다.

논문 발표의 경우 여러 부분으로 분리되어 진행되었는데, 많은 부분이 UVM의 활용과 개발에 할애되었고, 저도 관심분야라 이쪽 위주로 들어갔습니다. UVM에서 디자인 패턴을 활용하자는 이야기는 그전에도 나왔는데(사실 UVM 자체에서 몇몇 디자인패턴 – 대표적으로 factory pattern – 이 이용되었죠), 이를 조금 더 폭넓게 사용할 수 있도록 제안 + 라이브러리가 발표되었습니다 (best paper도 이쪽에서 나왔죠). UVM의 경우 다양한 회사에서 적용 예와 자신들의 필요에 따라 새로운 class를 만들고 개선해서 github에 올리고 공유하는 활동이 이어졌습니다.

이외에 다양한 tutorial과 on-site meeting들이 있었습니다만, 자세히 적기는 그렇고.. 인상적인 것만 이야기하자면..

Software 부분에서는 일반적이라 할 수 있는 TDD와 Design Pattern이 하드웨어 검증 부분에서도 급격하게 도입되고 있다는 점이 볼만합니다. 이쪽 사람들이 하드웨어 + 소프트웨어의 background를 가졌기 때문일 것 같습니다.  여튼, TDD를 위해서 unit testing environment (심지어 assertion에대한 unit test framework까지도..) 에 대한 이야기들이 많이 언급되었습니다.

Emulation + formal verification이 simulation을 대체할 수 있을것인가에 대한 패널토론이 있었는데, simulation에 대한 보조적인 방식에 머무를 것이라는 것이 ‘모든’ 패널들의 의견이었습니다. 다만 위의 기법이 점차 중요해진다는 점도 동의하기는 했지만, ‘여전히 보조적인 수단’이라는 점은 명확히 하더군요. automatic formal verification app의 성장세도 눈여겨 볼만합니다. 

음.. DAC나 DVCON이나 가보면 참 부러운 것이 나이 많으신 어르신 분들과 젋은 친구들이 섞여서 기술적인 이슈에 대해서 비교적 자유롭게 토론한다는 점입니다. 이게 이쪽 업계가 오래 지속된 곳의 특징일 것이고, 우리도 한 20년쯤 지나면 이랬으면 좋겠네요.

 

PVT variation

오늘 회사에서 이런 저런 이야기하다가, TSMC28HPC 공정에서 junction temp =0 보다 125에서 합성 속도가 빠르더라..는 이야기를 들었습니다.

이게 보통의 경우와는 차이가 있어서 ‘왜??’ 라는 생각이 들었고, 혹시 측정 잘못이 아닌지 싶어서 라이브러리의 SS HVT의 NLDM  lib 파일을 뒤졌는데 정말 그렇더군요.

지금까지 junction temp.가 높아지면 느려진다는 것이 제가 가지고 있던 상식이었거든요. (물론, 제가 공정쪽을 안해서 그냥 frontend engineer가 가진 상식선에서 말이죠..)

제 상식으로는 보통 process corner라 이야기하는 부분에서 process에서 doping 정도에 따라 N/P carrier mobility가 변해서 SS, TT, FF 같은 조건에 따라 성능이 바뀝니다. 이건 당연하죠. 당연히 mobility가 큰 경우가 빠릅니다.

공급 전압에서 따라 성능이 바뀐다는 것도 당연하죠. 전압이 높으면 빨라집니다.
참고로, 가끔 공급전압을 칩에 공급되는 전압으로 생각하시는 분들이 있는데, Cell로 들어가는 전압이죠. front-end만 하다보면 IR drop을 가끔 잊으시는데, power rail을 촘촘히 깔지 않으면 중간에 전압 강하가 너무 심해지죠. 물론, 이것도 동시에  천이되는 로직의 수에 따라 달라지니 backend engineer 분들이 고생하시는 거죠.

마지막으로 온도. 요게 문제인데 보통은 온도가 증가함에 따라 비저항(resistivity던가..)이 증가하면서 mobility가 낮아지게 되면서 속도가 느려집니다.

요기까지가 지금까지 제가 알고 있던 PVT (Process, Voltage, Temperature)  variation인데요.

그래서, 보통의 cell library의 databook(일단 구글에서 나오는 Verisilicon의 GSMC 공정을 보죠.. https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=verisilicon+GSMC+0.18)에는 보통 아래와 같은 수식이 들어 있는 경우가 많습니다.

뭐 식은 다르지만, 보통 delay는 process의 derating factor, 전압 factor, 온도 factor의 함수라는 거고..

tP = Kp * [ 1 + ( KVolt * ∆Vdd ) ] * [ 1 + ( KTemp * ∆T ) ] * tp0

 

위의 식에서 아래와 같은 factor를 가지기 때문에 전압에 반비례, 온도에 비례하는 관계를 가지는 거죠.

ScreenShot001

즉, 이게 제가 보통 생각하는 factor인데요.

위에서 첫번째 이야기한 부분의 원인은 뭘까요?

바로 간과한게 하나 있는데, 사실 온도의 경우 조금 더 많은 부분에 영향을 준다는 거죠.

조금 더 많은 부분을 살펴보자면,

  1. 온도가 올라가면 비저항이 올라가니까 capacitance도 올라가겠죠.  그런데, 요건 cap을 충전시키는데 더 많은 전하가 필요하다는 의미가 되기 때문에 속도를 느리게 많드는데 기여합니다. (위의 것과 관계 없다는 이야기죠.)
  2. 온도가 올라가면 threshold voltage가 낮아지는 효과가 있습니다. 단 이 부분은 load cap, 원래의 Vth, slew rate에 따라 효과가 다르다고 합니다.
    ‘합니다.. ‘ 라고 앞의 부분은 들어서 알고 있었지만 사실 원인을 저도 잘 몰라서 그럽니다.  그냥 이해하는 바로는 온도가 올라가면서 excitation(여기.. 상태라고 했던거 같은데.. 뭐라 번역하죠? 흥분상태? ㅋㅋ 여튼,)상태로 갈 확률이 증가하고, 따라서 carrier가 gate를 뛰어넘을 확률이 높아지기 때문에 실질적으로 leakage도 늘어나고 vth도 실질적으로 낮아지는 것과 비슷한 효과가 있다고 ‘대충’ 이해하고 넘어갔었습니다.  뭐 digital 하는 사람이 이정도면 충분하죠.. ㅎㅎ

즉, 2번 부분의 효과가 증가하는 것이 아닌가 생각됩니다. 관련 부분에 대해서 일단 논문을 좀 읽고는 있는데, 음.. 쉽지 않네요. (그냥 current to voltage conversion 특성이 바뀌면서 오히려 느려지는 거야.. 라고 써있는 논문을 읽고 있는 바람에 ㅎ)

다른 걸 좀 더 찾아서 읽어보겠습니다만, 일단 DSM에서는 2번의 효과가 많이 커져서 mobility가 떨어지는 효과를 넘어서는 것이다.. 로 정리하고 있습니다. (혹 공정쪽에 계신 분 있다면 조언을..)

이전의 0.18um 정도까지는 이런 부분을 간단히 무시할 수 있었지만(사실 제 기억이 맞다면 90nm까지도.. ), 적어도 지금 확인헀던 TSMC28HPC HVT SS 라이브러리에서는 무시할 수 없다는 거네요.

여하튼, 중요한 사실은 “예전에 상식선으로 알고 있던 것이 지금은 사실이 아닐 수 있다”는 중요한 교훈을 얻었습니다. (더불어 예전 지식으로 먹고 살 생각하다는 큰일 날 수 있다는 교훈도…)

 

 

 

TSMC 28nm processes

음.. 사실 회사일 때문에 잠시 살펴봤는데.. 도움이 되실 분이 있을수도 있으니.. (대부분의 분들께서 별로 관심이 없겠지만..)

일단 TSMC의 28nm process에는 아래 링크에서 확인할 수 있듯이 다양한 라이브러리가 존재하는데,  HP(High Performance)와 LP(Low Power)는 너무 자명해서 제외하고..

http://www.tsmc.com/english/dedicatedFoundry/technology/28nm.htm

아리까리 한 것이 HPM, HPC, HPC+, HPL인데,

  • HPM: High Performance Mobile Computing
  • HPC:  high performance compact mobile computing
  • HPL: low power with high-k metal gates

내용상으로 봤을때는 HPL은 HP에 High-K를 써서 전력을 줄였다. 정도로 정리하면 될 것 같고..

HPM/HPC는 다음 자료에서 볼 수 있는 것처럼, Mobile용도로 만들어진 공정 중에 HPM은 좀 더 성능에, HPC는 좀 더 면적(그리고 전력 역시..)에 최적화된 것이라 이해하면 될 것 같습니다. (실제로도 그런 position이고..)

https://www.synopsys.com/Company/Publications/DWTB/Pages/dwtb-logic-libraries-tsmc28-hpc-2015q3.aspx

그런데, 문제는 아래에 소개된 HPC+ 입니다.

http://community.cadence.com/cadence_blogs_8/b/ii/archive/2015/04/12/tsmc-symposium-new-16ffc-and-28hpc-processes-target-mainstream-designers-and-internet-of-things-iot

HPC+의 freq.가 HPM보다 좋게 나온 reporting이 존재하는데.. 일단은 목적상 HPM이 더 좋은 합성 주파수가 나와줘야 할 것 같네요. (혹은 비슷한 정도라도..)

 

글과 관계없는 잡설인데..

오랫만에 blog에 들어왔더니,  DAC2015 글을 일부만 써 놓고 publish를 안했네요. 아.. 쩝.. 이거 어쩌지.. 글은 대충 있으니 사진 첨부해서 올해가기 전에 Publish하는 걸로.. (이미 늦을대로 늦었지만..) ㅎ