Testbench의 기본이란 무엇일까? 검증하고자 하는 target에 spec에 맞는 입력을 제대로 넣어줄 수 있어야 한다. 랜덤 한 입력을 넣어주게 되지만, 검증력을 높이기 위해서는 적절한 constraints를 설정하여, 유의미한 값들이 생성되어야 한다. 검증 환경의 구현에 대해 이야기해보자면, 말마따나 정답이 없는 세계라고 할 수 있다. 검증 엔지니어의 취향이나 본인만의 신념대로 환경이 꾸려지기 때문에 같은 IP를 검증한다 해도 다양한 형태의 testbench가 가능하다. 어떤 것이 효율적인가에 대한 물음은 항상 검증 엔지니어들을 따라다니는 숙제이다. 좋은 검증 환경이란 유연하고 확장성이 좋아야하며, 재사용성도 보장되어야 한다. 그리고 언제나 검증에 있어서 빠른 처리 시간의 충족이라는 현실적인 문제..
논리 회로 설계나 디지털 시스템 등의 입문 과목을 들으면서 Verilog라는 언어를 배우게 되면, 가장 헷갈리는 부분이 바로 wire와 reg의 사용에 관한 부분일 것이다. 나 또한 digital 회로 설계자로서 커리어를 쌓아오고 있지만, 명확하게 이 data type에 대해서 이해하고 사용하게 된 것은 그리 오래되지 않았다. 내가 학부생으로 공부할 당시만 해도, 이 두 개념에 대해 어떠한 차이가 있는지 알려주는 자료를 찾기 어려웠지만, 이제는 구글에 검색어만 넣어봐도 자세한 설명을 제공하고 있는 블로그들을 쉽게 발견할 수 있었다. 정말이지 혼자 공부하기가 수월해진 세상이다. 블로그와 Youtube의 비약적인 발전으로 인해 지식을 쌓고자 조금의 노력만 한다면 누구나 해당 학문을 익히고 배울 수 있게 되었..
지난 시간에 ModelSim을 다운로드 받고, 실행하는 방법까지 다뤄봤었다. 이번에는 간단한 디지털 회로를 설계하고 ModelSim을 이용하여 simulation을 진행하는 방법에 관해 이야기 하고자 한다. 만약, ModelSim을 다운받고 설치하는 방법을 알고 싶다면 ▼아래 링크를 클릭하길 바란다. https://dreamsailor.tistory.com/3?category=856131 전자공학이라는 학문을 배우기 시작한 사람 중에 회로 설계를 세부 전공으로 선택하는 사람들이 반드시 직면한다는 고민은 다음과 같다. 아날로그 설계냐 아니면 디지털 설계냐 현업에서 설계 업무를 하다 보니, 두 가지 서로 다른 background를 가진 사람들을 많이 만나게 된다. 이러한 사람들과 함께 일을 하면서 느꼈던 것..
마지막으로 ModelSim을 사용해서 Verilog simulation을 돌렸던 적이 언제였을까? 정확히 기억은 안 나지만 학부 4학년 때, VLSI 공학 수업을 들으면서 프로젝트를 했을 때였던 것으로 기억한다. ModelSim은 전자공학을 전공했다면, 디지털 시스템 설계 수업 때, 한번쯤은 다뤄봤을 법한 HDL simulation tool이다. 만약, 디지털 시스템 수업을 처음 듣는 사람들에게는 HDL(High-level Description Language)이라는 단어가 다소 생소하게 느껴질 것이다. 간단히 말하자면, 반도체 회로를 빠르고 쉽게(?) 설계할 수 있도록 정의된 프로그래밍 언어이다. 사실, 현업에서는 ModelSim을 많이 사용하지는 않는듯하다. HDL simulator로는 크게 Syno..