지난번에 올린 뉴런과 시냅스 모사 회로 글을 바탕으로 공모전용 블록을 설계한 내용이 정리된다. 전압 입력을 받은 시냅스가 전류를 출력하고, 그 전류를 뉴런이 받아 임곗값을 넘으면 뉴런이 출력을 내보내는 방식으로 동작한다. 최종 과제는 이 뉴런을 이용해 2차원 평면에 떨어진 공을 가운데로 보내 균형을 잡는 아날로그 회로를 구현하는 것이었고, 기울기 조절을 통해 공을 중심으로 이동시키는 알고리즘이 고안되었다. 공이 어떤 위치에 있더라도 중심으로 빠르게 이끌어 가기 위해 회오리 형태의 경사 구조를 가상의 3차원 기울기 그래프로 설계해 중심으로 흡입하는 움직임을 구현했다. 연산 효율을 높이기 위해 25칸으로 구성된 뉴런 배열에서 상대적 위치가 같은 칸들을 그룹화해 7개의 뉴런만 계산해도 동일한 결과가 나오도록 중복 계산을 제거했다. 이로써 연산량이 크게 감소하고 시스템 구조가 간결해졌다. 또한 전체 평면이 30cm×30cm이고 공의 최종 반경이 1cm 이내에 들어가야 한다는 조건을 충족하기 위해 가장 중심 칸을 3×3으로 세분화해 공이 이 영역에 도달하면 자연스럽게 목표 반경 안으로 들어가도록 설계했다. 더 나아가 10×10에서 5×5로 축소해 응답 속도를 높였다. 위에서 설명한 전류 거울 시냅스와 뉴런의 동작이 이 시스템을 구현한다. 예를 들어 전압 입력이 가해지면 전류 거울이 뉴런의 입력에 전류를 들이붓고, 그 전류로 쌓인 전압이 뉴런의 출력을 낳아 모터를 구동한다. 이로써 공을 가운데로 보내는 동작이 수행된다.
전체 회로 블록 다이어그램은 EXC1 등 입력이 어떤 자극을 받았을 때의 흐름을 예로 들며 설명된다. 예를 들어 exc1이 자극되면 그림의 왼쪽 위 뉴런에서 스파이크 신호가 발생해 모터를 구동하고 판을 기울여 공을 가운데로 보낸다. Exc1에 의해 demux의 out_A 신호가 출력되고, 이 신호는 다른 demux와 버스 구조로 연결되어 inverter 체인을 거쳐 region 1으로 이동한다. Exc1부터 reg1까지의 공이 굴러갔다고 상정할 수 있다. 같은 원리로 reg1을 자극한 신호는 demux를 통해 center decision 뉴런의 윗부분 입력인 center1으로 들어가 다시 center spike로 출력된다. 신호적으로 해석하면 공은 가운데로 이동한 셈이다. 뉴런에 전류를 입력하는 모스펫들이 공을 감지하는 센서 역할을 하며, 공의 무게는 입력 전압의 펄스 폭과 비례한다. 가상의 센서가 공의 무게에 비례한 전압 펄스 폭을 조절하고, 이 전류를 입력으로 받은 커패시터가 전하를 쌓아 전압을 형성한다. 이 전압을 Strong ARM Latch가 판단해 뉴런의 출력을 내보낸다. 회로의 레이아웃은 8.15 × 4.005 μm² 크기로 집적되었고, 전원 칸을 제외하면 8.15 × 3 μm²로 매우 작다. 전체 회로도에는 약 200개에 달하는 소자가 사용되며, 46.21 μm × 27.095 μm의 크기를 갖고 공을 가운데로 보낼 때 약 110 μW의 매우 작은 전력을 소모한다. 이 회로의 크기는 오피앰프보다 작다. EXC1에 1 g의 공, EXC25에 30 g의 공이 떨어진 상황을 가정했고, 최종적으로 센터 노드에서 출력이 나와 공이 가운데로 이동하는 것을 확인할 수 있다. 이렇게 공모전이 끝나고 10일에 온라인 발표가 진행된 뒤 수상이 확정되어 최종 순위를 기다리게 되었다. 아날로그 설계만 다루다가 디지털 블록과 혼성 신호를 처음 다뤄보았으나, 나름 재미있는 분야로 느껴졌다.
이 팀은 얼레벌레 2등으로 마무리되었고, PhD 과정 중인 송 박사의 비중이 크게 작용했다. 필요한 경우 문의는 [email protected]로 가능하다.
#
뉴로모픽회로
#
전국대학생AI반도체회로설계경진대회
원문 링크 : SNN(Spiking Neural Network) - LIF(Leaky Integrate & Fire) Neuron 및 Current Mirror Synapse를 이용한 설계