https://gigglehd.com/gg/bbs/11712802
이 글에서 게이트 리버싱을 처음으로 해봤는데요, 이게 상당히 재밌네요.
추측으로만 구현했던(에뮬레이션) 칩들을 그냥 원래 회로 그대로, 테스트 기능까지 구현 가능한 게 매력적입니다.
거기에 맛들린 나머지...
최근에는 타이토의 레인보우 아일랜드라는 게임에 붙은 MCM형태의 보안칩에 딸린 ASIC를 최근에 리버싱해서 회로도까지 다 그렸습니다. 저 칩에는 MCU까지 붙어있기 때문에 MCU코어도 개발해야 합니다.


좀 까다로운 칩도 도전해 봤습니다. 사유는 위와 똑같습니다. 기존의 GPL코어가 맘에 안 들어서 BSD코어를 만들고 싶었어요.
위의 칩은 CMOS 표준 셀처럼 같은 패턴의 것들이 계속 반복되어 반복 작업만 하면 되는 것이 아니라, 공간에 딱 맞게 회로를 우겨넣은 NMOS칩입니다. NMOS특성상 내부적으로는 거의 오픈 드레인이다보니까 게이트 모양이 들쑥날쑥해서 저렇게 그림판으로 덧그려가면서 기능 블록들을 분류해나가는 게 제일 효율적이었습니다.
이렇게 뚜따해서 트랜지스터 보고 그리는 방법은 0.7마이크로미터에 메탈 3층정도가 한계입니다. 광학현미경으로 사진을 찍는데, 600배까지가 그럭저럭 작업할 수 있는 마지노선이예요. 그렇기 때문에 90년대 중후반부터 나오는 최신 칩은 어림도 없지요.
하지만 좋아하는 게임을 정확하게 FPGA에 쑤셔넣을수도 있고, 여기다가 셀을 자동으로 식별해 주는 러닝머신을 끼얹어서 NPU를 만들어보면 나중에 포폴로도 쓸 수 있을것 같아서 겸사겸사 해 보는 중입니다. OpenCV같은 걸로 셀을 식별할 수 있다면 좋지만, 셀 위로 배선이 많이 날아다니는 경우는 이미지를 전처리해도 OpenCV로 이미지 매칭하는 건 정확도가 많이 떨어진다고 하네요. 사람이라면 셀의 실루엣만 보고 알아맞출 수 있지만 단순한 방법으로는 어렵나봅니다.
대충 저게 다 그림인거 같아요!!