Goolge_adsense_default_ad




Shmoo Plot에 대한 간단한 설명 칩 설계 지식 공유해요~


칩 설계와 관련된 일이나 연구를 하다보면, 직접 실리콘 칩을 직접 생산하는 fab (Semicoductor fabrication plant를 줄여서 이렇게 부릅니다.) 에서 일하지 않더라도 shmoo plot에 대해서 종종 듣게 됩니다. 저도 최근까지 일하던 회사에서 Verilog RTL을 주로 이용해서 칩을 설계하는 일을 하고 있었지만, 설계한 칩의 수율을 올려야 하는 일이 생기면서 shmoo plot에 대해서 자세히 알게 될 기회가 생겼고 이 글에서는 당시에 알게된 내용은 간단히 공유해 보려고 합니다. 

위키피디아를 찾아 보면 shmoo plot의 어원은 Al Capp이라는 사람이 그린 만화의 캐릭터의 이름에서 따 왔다고 합니다. [1] 아래 왼쪽 그림은 구글 이미지 검색에서 shmoo plot을 입력해서 찾을 수 있는 수 많은 예제중에 두 가지인데 그래프의 모양이 shmoo라는 캐릭터의 동글동글한 배 모양과 닮았기 때문에 그런 이름이 붙었다고 합니다. 

원본 그림 출처 
왼쪽 위 - http://electronic-engineering.ch/study/silverbird/silverbird.html
왼쪽 아래 - http://tex.stackexchange.com/questions/122030/create-a-shmoo-plot-with-pgfplots-tikz
오른 쪽 - http://en.wikipedia.org/wiki/Shmoo_plot#mediaviewer/File:Lifeshmoo.jpg


shmoo plot을 그리는 방법에 대해서 먼저 설명을 해 보겠습니다. shmoo plot은 생산된 반도체 칩이 여러가지 조건의 조합(보통은 전압과 동작속도일 경우가 많습니다.)에서 정상동작을 하는지 여부를 측정한 결과를 모아서 2차원의 그래프로 보여주는 것입니다. 윗 그림에서 가로축이 동작속도, 세로축이 전압이라고 가정하면 얻어진 shmoo plot은 각 칸의 위치에 해당하는 전압과 동작속도 조합에서 특정한 test vector의실행 결과를 살펴보고 pass일 경우 녹색으로 fail일 경우 붉은색으로 표시한 것 입니다. 예를 들어 어떤 shmoo plot에 400칸이 존재 한다면 총 400회의 측정이 시행 된 것입니다. 물론 이러한 측정은 ATE(Automatic Test Equipment) 장비를 이용하여 수행되기 빠르면 수초 느려도 수십초면 측정이 끝나게 됩니다. 

shmoo plot을 측정하는 이유는 칩의 설계 마진이 충분한지 확인하거나 불량 샘픔을 걸러내기 위한 측정 조건을 찾아내기 위함입니다. 예를 들어 1.2V전압에서 1GHz로 동작하도록 설계된 칩이 있다고 가정해 봅시다. 이 경우 아래의 완쪽과 오른쪽 shmoo plot은 설계 마진이 충분한 칩과 마진이 작은 칩에 대한 측정 결과를 보여주고 있습니다. 파란색 화살표로 표시된 부분이 원하는 동작 조건이라면 마진이 충분한 칩은 파란색 화살표로부터 먼 부분까지 녹색으로 표시된 pass 영역이 분포하지만 마진이 작은 칩은 파란색 화살표로 부터 조금만 벗어나면 븕은색으로 표시된 fail영역을 만나게 됩니다. 전압이 1.2V일 때를 살펴 보면 마진이 좋은 칩은 1.125GHz 까지 동작하지만 마진이 적은 칩은 1.05GHz까지 밖에 동작하지 못함을 shmoo plot상에서 확인할 수 있습니다. 그리고 shmoo plot은 불량칩을 골라내기 위한 테스트 조건을 선정하는데에도 사용할 수 있는데, 설명을 위해 아주 단순한 상황을 가정하긴 했습니다만, 여러개의 불량 샘플과 양품 샘플이 있다고 할 때 각 샘플들에 대해서 shmoo plot을 찍어봐서 불량 샘플은 모두 fail하고 양품 샘플은 모두 pass하는 지점이 있다면 (아래 그림에서는 검정색 동그라미로 표시된 부분이라고 해 봅시다.) 칩의 test vector를 가하는 조건을 검정색 동그라미 지점에 맞추고 pass/fail 여부를 확인하면 불량샘플을 가려낼 수 있습니다. 

이상 간단하게 shmoo plot에 대한 설명을 드렸는데, 막상 실제 상황에서는 항상 위에서 보여드린 것 처럼 이쁘게 동글동글한 그래프만 얻어지는 것은 아닙니다. 특정한 동작속도 영역에 대해서만 작동하는 analog circuit이 포함된 경우에는 동작 속도가 낮은 부분에서도 fail로 표시되는 부분이 나타나기도 하고 예상한 그래프 모양과 다른 shmoo plot이 얻어질 경우 원인을 찾느라 한참 고생을 하기도 합니다. 그리고 shmoo를 측정할 때 test vector도 중요한데 test vector가 칩의 취약한 부분에 대한 동작을 포함하지 않을 경우 설계 마진이 적은 칩이든 많은 칩이든 비슷한 shmoo plot이 얻어 지기도 합니다. 


References 
[1] http://en.wikipedia.org/wiki/Shmoo_plot



덧글

  • 공돌이1 2017/10/26 18:03 # 삭제 답글

    안녕하세요? 골수 공돌이님,

    Shmoo plot 을 그릴때 만약 1000만개의 칩이 있다고 할때
    1000만개를 전부 각각 1개의 칩에 대해서 400번 테스트를 하는건가요? 아니면 그중 하나를 샘플 하나를 집어서 400번 하는건가요?
    만약 1000만개를 일일이 전부 하나씩 한다면 시간이 장난 아닐껏 같습니다.
  • 골수공돌이 2017/10/28 00:07 #

    shmoo Plot은 제품 개발단계에서 Engineering Sample을 가지고 Test Vector를 돌릴 조건을 찾거나 동작이 잘 되지 않는 부분이 있을 때 원인을 분석하기 위해서 찍어보는 것이라 양산테스트에는 적용되지 않습니다. 양산칩의 경우 Scan Test, Memory BIST, Boundary Scan Test 등을 적용하여 칩을 골라냅니다.
  • 공돌이1 2017/10/26 18:24 # 삭제 답글

    글을 수정하려고 보니 삭제외는 수정이 안되네요,
    하나만 더 문의드리고 싶어서요

    보통 저렇게 열심히 shmoo 차트를 뽑아냈는데 마진은 좋와보이지 않고, 수율을 올리고 싶은데 보통 어떻게 수율을 개선하는지 설계자 입장에서 어떻게 보통 일이 이루어지는지 궁금합니다.
  • 골수공돌이 2017/10/28 00:12 #

    칩에서 마진이 안 좋을 경우 주변 부품의 스펙을 엄격히 관리하는 것도 한가지 방법입니다. 간단한 예로 전원전압을 +/- 10%로 설계 했는데 막상 칩이 나오니 마진이 안 좋다면 레귤레이터 부품가격의 상승을 감수하고 전원 전압을 +/-5%로 관리해서 좀 더 많은 칩을 살리거나 할 수도 있습니다.
    수율을 올리기 위해서는 설계 당시에 마진을 좀 넉넉히 잡는다거나 (예, 1GHz로 돌아야 할 칩을 1.1GHz를 타겟으로 설계) 칩의 일부가 죽을 경우를 대비해 redundancy memory cell등을 두는 방법도 있습니다. 하나의 칩이 여러 제품에 적용될 경우 동작 마진이나 일부 코어가 죽고 사는 결과에 따라 low-end/high-end 제품에 따로 적용하여 최대한 칩을 살릴 수도 있습니다.
  • gyogyo 2018/03/14 07:28 # 삭제 답글

    간단하고 핵심적인 설명 잘 읽었습니다. 말씀하신 Scan Test, Memory BIST, Boundary Scan Test 에 대해서 설명부탁드려도 될까요?
댓글 입력 영역