![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/xqqLK/btqRXIBLYVm/bfpkS8FmBSUs5ELzxRLAO0/img.png)
IDM 회사의 디지털 회로 설계 부서에 들어가거나 팹리스 업체에서 일하게 된다면, 검증용 SRAM 모델은 대부분 셋업 되어 있을 것이라 생각한다. SRAM 모델은 어떤 공정을 사용할지 정해지기 전이나 메모리 spec이 확정되지 않았을 때, RTL 검증 환경을 만드는 과정에서 유용하게 사용된다. 신입사원 꼬꼬마 시절엔 나도 그냥 아무 생각 없이 가져다 썼던 것을 이제야 직접 만들어 보게 되었다. 메모리의 종류나 SRAM의 특성 등에 대해서는 여기서 자세히 다루지는 않을 것이다. 간략히 말하자면, SRAM은 래치에 데이터를 저장하는 휘발성 메모리이고, line buffer나 FIFO와 같이 데이터를 임시로 저장해야 하는 경우에 주로 사용하게 된다. 대부분의 사람들이 익숙한 DRAM의 경우에는 보통 logic..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/oOqe9/btqP6nEtzlh/aUpLkJLy7wpAC3CStJ7Fh1/img.png)
어느새 Testbench 연재 3번째 포스팅이다. 크게 생각해보면, 아래 3가지 정도 내용이 더 남았고 Random configuration Reference model Monitor & Scoreboard Test case나 coverage, 그리고 regression 환경(Tcl, Script 등)은 일단 뒤로 미루어 두려고 한다. DUT에 맞게 stimulus를 넣어주는 부분을 소개하자니, 어플리케이션에 따라 천차만별일 것이라는 생각이 들었다. CPU, AP처럼 OP code와 Bus 입력 등이 필요할 수도 있고, display, sensor처럼 영상 바탕의 입력이 요구될 수도 있다. 여기서는 간단히 특정 프로토콜에 맞춰서 영상 스트림을 뒤로 출력하는 image driver를 구현해 보았다. 대부분..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ckh67o/btqJ4G4AQWO/mKOEIdYh5IuxUZ248sfDW1/img.png)
전자공학을 전공한 사람 치고 Matlab이라는 프로그램을 모르는 사람은 없을 것이다. 처음 접한 수업이 어떤 과목이냐의 차이일 뿐, 한 번도 이 프로그램을 접하지 않고 무사히 졸업을 할 수 있을까? 기억을 더듬어보니 나는 바야흐로 대학교 2학년 때, 신호 및 시스템이라는 전공 기초 수업에서 Matlab 과제를 처음 접했다. 당시에 여러가지 필터를 사용하여, 잡음을 제거하고 일부 대역의 소리만 뽑아내는 등의 과제를 했던 기억이 난다. 인터넷과 기존 소스의 힘을 빌려, 어찌어찌 과제를 제출했지만 프로그램에 대한 이해가 많이 부족했었다. 이 툴을 자유자재로 다루는 고학번의 선배들을 그저 선망의 눈빛으로 바라보던 내 모습이 아직도 눈에 선하다. Matlab은 벡터 기반으로 데이터를 처리하여, 깔끔하게 그래프를 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/w1UCd/btqJKwN0wvG/w9XxVomZ1pa8U73g7dmSrk/img.png)
처음에 이 글을 쓰려고 기획했을 때, 카테고리를 Testbench로 두어야 할지, SystemVerilog 문법으로 해야 할지 고민했다. 그러다가 어찌 보면 지엽적인 내용일 수도 있는 randomization에 대한 글을 문법 카테고리에서 작성하기로 결정했다. Testbench 연재에는 아키텍처 측면의 접근이나 Top view에서 쓴 글이 더욱 어울리다고 보고, 앞으로 이러한 기조로 글을 써 내려갈 예정이다. 어떻게 생각해보면 무작위(random)라는 개념은 세상에 존재하는 매우 친숙한 개념이다. 굳이 오늘 점심 메뉴를 룰렛을 돌려서 결정하거나 게임 캐릭터의 스텟이 난수 값으로 결정되는 등의 특수한 상황이 아니더라도 말이다. Digital design의 세계에서도 random이라는 것은 매우 중요한 개념..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dKcRs5/btqG3k5qSIT/WYpApO7Z7KXDeQ6Af2illK/img.png)
시간이 없으신 분들을 위해 두괄식 구성을 취했다. 뭐랄까, 수미쌍관 구조? 결론에 평점 및 한줄평 등을 남길 것이지만, 만약, 그냥 결론만 얻고 싶다면 아래 '더보기'를 클릭할 것. 더보기 평점 : ★ (1/5) (평점의 기준은 정확히 구매 가격만큼의 값어치를 한다면 3.5(★★★☆)의 값을 갖는 것으로 책정했다.) 글쓴이의 말 : 최악의 내구성. 만약 유효기간 3개월 짜리 이어폰인지 미리 알았다면 절대 구매하지 않았을 것. 겉모양은 따라 할 수 있어도 기본기까지 카피할 수는 없었나 보다. 최근에 러닝을 시작했다. 유선 이어폰을 사용했는데, 여간 걸리적거리는 게 아니었다. 러닝 할 때 착용할 쌈빡한 무선 이어폰이 필요하다고 생각했다. 어차피 운동 용도로만 사용할 것이라서 굳이 좋은 음질은 사치고, 단지 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/4dxvD/btqFa6Bo6Du/GXeBL3Bj6maa9kPSO2OrnK/img.png)
Testbench의 기본이란 무엇일까? 검증하고자 하는 target에 spec에 맞는 입력을 제대로 넣어줄 수 있어야 한다. 랜덤 한 입력을 넣어주게 되지만, 검증력을 높이기 위해서는 적절한 constraints를 설정하여, 유의미한 값들이 생성되어야 한다. 검증 환경의 구현에 대해 이야기해보자면, 말마따나 정답이 없는 세계라고 할 수 있다. 검증 엔지니어의 취향이나 본인만의 신념대로 환경이 꾸려지기 때문에 같은 IP를 검증한다 해도 다양한 형태의 testbench가 가능하다. 어떤 것이 효율적인가에 대한 물음은 항상 검증 엔지니어들을 따라다니는 숙제이다. 좋은 검증 환경이란 유연하고 확장성이 좋아야하며, 재사용성도 보장되어야 한다. 그리고 언제나 검증에 있어서 빠른 처리 시간의 충족이라는 현실적인 문제..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/lAO07/btqBTLlci6L/A1HvsFG2N0c1zv3KCvoCNk/img.png)
Verilog를 사용해본 유저들이라면, SystemVerilog가 생소하지는 않을 것이다. SystemVerilog는 설계를 위해 사용되는 언어라기보다는 검증에 최적화되어 있다. 오로지 설계를 위해서라면, Verilog2001까지의 문법만으로도 대부분의 logic을 구현하기에 전혀 무리가 없다. 그러나 검증의 세계에 첫발을 디디면 완전히 새로운 세상이 펼쳐진다. Verilog라는 단일 언어로는 복잡한 logic을 효율적으로 검증하기에는 한계가 있다. 특히 Verilog로 OOP(객체지향) 관점에서의 Testbench를 꾸미기에는 무리가 있으며, 이를 위해서 탄생한 것이 오늘 소개할 SystemVerilog이다. 일단, 본인은 logic 검증 엔지니어가 아님을 밝혀두는 바이다. 솔직히 말해 IP 설계자로서..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bvx7xS/btqBGZcXc1Q/SO6tB5OljiRgEBCQ7xHN10/img.png)
사용기를 작성하기 전에 먼저 본인은 노트북 관련 전문가가 아님을 밝혀두는 바이다. 솔직하게 사용해본 느낌을 사용자 관점에서 주관적으로 작성한 리뷰올시다. 갤럭시북 Flex를 구매하기 전에 사용했던 노트북은 한성 컴퓨터의 Boss Monster였다. 생각해보면, 지금 회사에 입사할 때 샀으니, 햇수로만 따지면 사용한 지 벌써 5년이나 되었다. 사실, 컴퓨터가 딱히 느려진 것도 느낄 수 없었고, 작업용으로 사용하기에는 전혀 부족한 점이 없었다. 노트북으로 고사양의 게임을 돌리는 것도 아니고, 주된 사용 목적이 웹서핑이나 간단한 코딩이었기 때문에 새 노트북을 장만해야겠다는 생각은 하지 않았었다. 물론, 이 녀석을 보기 전까지는 말이다. 노트북을 고를 때, 어떤 특징이 가장 중요한지는 사람마다 기준이 조금씩 다..