보통 알고리즘이라 하면, 굉장히 복잡한 개념을 떠올리는 경우가 많은데 우리는 일상생활에서 무의식적으로 학습된 알고리즘에 따라 선택을 하게 된다. 이는 일을 처리하는 일련의 과정이라고 봐도 무방하고, 선택에 있어서 따르게 된 기준이라고 생각해도 된다. "오늘 뭐 먹지?" "어제 김치찌개를 먹었으니 오늘은 돈가스를 먹어야겠다!" 이런 한없이 사소한 생각도 알고리즘이라고 볼 수 있다. 삶에 있어서 가장 효과적인 알고리즘은 무엇일까? 인생이라 해봐야 끽해야 3~40년 남짓한 시간을 살았지만 Divide and Conquer만큼 인생에 도움이 되는 알고리즘이 또 있을까 싶다. 간단히 말하면 일을 작은 단위로 나누고 각각 처리 하고 합친다. 뇌과학 전문가들이 말하길, 뇌의 반발을 줄이려면, 이 놈을 잘 구슬리는 것..
대학 시절, 고등학교 동창을 오랜만에 만난 적이 있었다. 공부에는 취미가 없던 친구였는데, 본인의 적성에 맞는 2년제 전문대학을 열심히 다니고 있다고 했다. 이 친구가 대학교 중간고사를 치고는 나에게 이렇게 말했다. "아, 내가 진짜 학창 시절에 이렇게 공부했으면 서울대도 갈 수 있었는데." 당시에는 정말 열심히 노력했구나라며 맞장구치며 넘겼는데, 솔직한 심정으로는 이렇게 대답하고 싶었다. "응, 아니야." 친구의 노력을 폄하하는 것이 아니라, 그런 류의 단기간의 노력으로는 이룰 수 없는 목표라고 생각했기 때문이다. 짧게는 3년, 길게는 6년 혹은 그 이상 그렇게 공부해야 가능을 논할 수 있는 범위에 들어온다고 본다. 시행착오 교정, 공부 방법, 습관, 멘탈 관리, 메타 인지, 꾸준함... 거기에다 운까..
엔지니어라면, 누구나 한 번쯤 해봤을 법한 생각이 있다. 입력 spec을 넣어주면 자동으로 H/W를 뱉어주는 마법 같은 시스템 상상 속에서만 존재하는 이야기라고 생각할지도 모르지만, 이를 위한 다양한 시도들은 아직도 현재 진행 중이다. 자동화에 대한 열망은 VPP(Verilog Pre-Processor)와 C++/perl 등의 library를 사용하여 코드를 뽑아주는 것부터해서 emacs, vim 등의 edit 도구를 이용한 반복 작업의 최소화, IPXACT 등의 xml을 사용하여 packaging, integration과 문서까지 만들어주는 등의 다양한 형태로 실현되고 있다. 주 52시간 근무 제도, 워라벨 중시 등의 시대적 흐름으로 인해 우리나라의 기업문화도 더 이상 예전처럼 공돌이를 갈아서 제품을 ..
지금의 나에겐 어렴풋한 기억이지만 아마 진로에 대한 고민은 모든 대학생들의 숙제일 것이다. 취업 vs 진학 일차 관문은 취업과 진학 사이의 고민이었다. 4년 동안의 학부 과정에서 이유 모를 갈증을 느끼고 있는 터라, 대학원 진학을 결정하기까지 오랜 시간이 걸리지는 않았다. 막연하게 석사 과정 가운데 학문의 깊이를 탄탄하게 쌓고 싶었다. 그러나 현실은... 이하 생략. 디지털 회로 설계 vs 임베디드 시스템 설계 내가 관심 있던 두 가지의 테크 트리가 있었는데, 디지털 회로와 임베디드 시스템이다. 두 가지는 묘하게 닮아 있으면서 어떻게 보면 완전히 다른 분야였다. 정확히 50 대 50의 관심을 가지고 있었기에, 수업도 딱 반반 정도로 챙겨서 들었다. 결국 디지털 회로 설계자로 살아가게 되었지만, 현업을 하..
제목을 검증의 기본 Assertion이라고 했지만, 설계에 있어서도 Assertion은 필수적인 요소일까? 인터페이스나 버스, 프로토콜이 중요한 IP에는 조기 검증에 큰 도움이 된다고 본다. 하지만 Assertion을 쓰지 않는다고 해서 부족한 설계라고 할 수 없으며, 본인이 추구하는 방법대로 검증하는 실력 있는 설계자들도 많다. Assertion을 알고 제대로 사용한다면 불필요한 검증 리소스를 줄일 수 있고 내 설계의 어떤 부분이 수정되어야 하는지 빠르게 알 수 있다. 두 말 할 것 없이 검증 엔지니어라면 필수로 알아야만 하는 System Verilog 문법이며, IP의 입력이나 출력이 잘못되었는지 확인하기엔 이만한 방법이 없다. 설계 엔지니어일 때, Assertion은 내게 가깝고도 먼 이름이었다. ..
새해가 밝았다. 연초가 되면, 연례행사처럼 하는 것들이 있다. 예를 들면, 다이어트를 하겠다거나 자격증을 따겠다는 등의 목표 세우기. 작년에 야심 차게 블로그를 시작하면서 나도 만다라트까지 그려가면서 새해 목표 설정에 관한 포스팅을 업로드하였다. https://dreamsailor.tistory.com/10 [자기경영] 2020 신년 계획 - 만다라트 작성 2020년 새해의 아침이 밝았다. 누구나 새해가 되면, 개인적인 소망과 이루고 싶은 목표를 정하곤 한다. 2019년 한 해를 돌아보고, 계획했던 만큼 성취를 이루었는지 점검해 보는 것도 물론 중요하 dreamsailor.tistory.com 그래서 1년이 지난 지금, 작년 초에 세운 목표를 어느 정도 달성했을까? 목표를 세우는 것까지는 좋았다. 다만,..
IDM 회사의 디지털 회로 설계 부서에 들어가거나 팹리스 업체에서 일하게 된다면, 검증용 SRAM 모델은 대부분 셋업 되어 있을 것이라 생각한다. SRAM 모델은 어떤 공정을 사용할지 정해지기 전이나 메모리 spec이 확정되지 않았을 때, RTL 검증 환경을 만드는 과정에서 유용하게 사용된다. 신입사원 꼬꼬마 시절엔 나도 그냥 아무 생각 없이 가져다 썼던 것을 이제야 직접 만들어 보게 되었다. 메모리의 종류나 SRAM의 특성 등에 대해서는 여기서 자세히 다루지는 않을 것이다. 간략히 말하자면, SRAM은 래치에 데이터를 저장하는 휘발성 메모리이고, line buffer나 FIFO와 같이 데이터를 임시로 저장해야 하는 경우에 주로 사용하게 된다. 대부분의 사람들이 익숙한 DRAM의 경우에는 보통 logic..