본문 바로가기

전체 글85

uvm study 기존 블로그에서 공부하려고 했을 때, 아무것도 모르는 초보자입장에서 하다보니 어려운 부분이 많이 있었는데 우연찮게 좋은 블로거를 만나서 직접만드신 책을 구입하였습니다. 앞으로 공부 좀 다시 해보도록 하겠습니다. 그보다 먼저 이전에 올렸던 leehc257.tistory.com/64 [vcs] vcs, verdi, systemverilog tutorial 강의 www.youtube.com/channel/UCie9pbYjNDqWhmpNz_l3b3Q KK SystemVerilog KK와 함께하는 System Verilog www.youtube.com sysnopsys에서 좋은 강의자료를 올려논 것 같아 공유합니다. leehc257.tistory.com 이 글보면 systemverilog 강의가 있는데 우선 다보.. 2021. 4. 11.
[vcs] vcs, verdi, systemverilog tutorial 강의 www.youtube.com/channel/UCie9pbYjNDqWhmpNz_l3b3Q KK SystemVerilog KK와 함께하는 System Verilog www.youtube.com sysnopsys에서 좋은 강의자료를 올려논 것 같아 공유합니다. 2021. 4. 10.
[verilog] casex, casez 차이 보통 digital logic을 design 하다보면 if, case문을 사용할 때가 있습니다. if문이나 case문의 경우 들어오는 data의 정보가 명확하게 RTL code로 표현이 되기 때문에 사용하는데 있어서는 그다지 문제가 되지 않습니다. 그러나 don't care, 'z' 같은 신호들을 처리해야 한다고 할 때는 어떻게 처리하는지 알아보도록 하겠습니다. 우선 먼저 casex, casez 같은 것으로 코드를 작성하면 합성이 되는가에 대한 질문이 있을 수 있는데 대답은 'yes'입니다. (저도 구글링하다가 알았습니다.) 1. casex 'X', 'Z'를 모두 don't care 처리 2'b1x = 2'b10, 2'b11, 2'b1x, 2'b1z 3'b1xz = 3'b100, 3'b101, 3'b11.. 2021. 4. 10.
[vcs] 명령어 및 option 정리 synopsys사의 VCS와 verdi는 digital logic을 검증하는데 사용하는 compiler, simulation, debug tool 입니다. 주로 명령어 창에서 옵션들을 다양하게 붙여서 사용하는데 주로 사용하는 옵션들만 몇개 정리해보겠습니다 1. VCS kdb는 compile시 생성되는 logic의 design file 이며, fsdb는 simulation 파형이 저장되는 파일입니다. -kdb KDB file 생성 -sverilog systemverilog 사용 -full64 64bit simulation -reportstats performance/memory 사용량이 report로 출력 -timescale=1ns/1ps compile시 사용할 timescale -l 파일명 log fil.. 2021. 4. 9.
[vcs] $dumpvars option VCS를 이용하여 FSDB를 dumping 받을 때 사용하는 system task인 $dumpvars의 option을 항상 매뉴얼보고 확인하기 힘들어 여기에 정리합니다. option description "+IO_Only" Only IO port signals will be dumped. "+Reg_Only"Only reg type signals will be dumped. "+mda"Dump all memory and MDA signals in all scopes specified in $fsdbDumpvars or the entire design if no scope is specified. This option is covered by the "+all" option and is effective .. 2021. 3. 12.
앙리 마티스전 주말에 삼성역 근처에 있는 마티스전을 다녀왔습니다. 코로나 때문에 전시회 거의 안갔다가 간만에 다녀왔는데 마티스 그림은 제취향은 아니더군요.... 그림들이 몇개만 인테리어 용으로 걸어둘 법하고 나머지는 정말 좋은 그림인가 싶었습니다. 야수파의 한 획을 그었다는 컷오프 기법을 오늘 처음 알았습니다.... 2021. 3. 7.
파주 출판단지 - 지혜의 숲 주말에 드라이브 겸 파주 출판단지에 다녀왔습니다. 블로그에서 보던것과는 달리 생각보다 엄청 크지는 않더라구요 그리고 책들이 유아, 생활, 문학위주 여서 조금은 아쉬웠습니다.(IT분야는 전혀없었기에) 마지막 사진은 제가 입사할 때 면접봤던 장소라서 찍어봤습니다(파주지지향) 2021. 3. 3.
[systemverilog] random 함수들 verilog 안에는 random변수를 지원하는 system task들이 있습니다. $random, $urandom, $srandom, $urandom_range, randomize(), std::randomize() $random%숫자 (-숫자+1, 숫자-1) 범위안의 32bit signed int 생성 $urandom%숫자 [0, 숫자) 범위안의 32bit unsigned int 생성 $srandom(seed) seed setting(숫자생성은 x) $urandom_gen(min, max) [min, max)범위안의 32bit unsigned int 생성 randomize() 클래스 내부 변수를 random하게 생성 std::randomize() 일반 변수를 random 하게 생성 (문서들 뒤져보면 .. 2021. 2. 27.
[systemverilog] assert, property systemverilog에서는 검증을 위해 프로그래밍적 요소가 많이 추가 되었는데, 대표적인것이 assert와 property 입니다. assert는 우리가 프로그래밍 할 때 사용하는 assert와 동일 합니다. assert(data_1 == data_2) // data_1과 data_2가 같지 않다면 에러를 발생시킨다 위의 코드를 실제로 돌리면 어떻게 나오는지 코드를 아래와 같이 작성했습니다. initial begin assert(data == data_t) else $fatal("Stop"); fork data_gen(data); data_gen_t(data_t); join end always #(`Clock_period/2) clk = !clk; task automatic data_gen_t(ref.. 2021. 2. 21.