본문 바로가기

language/Verilog25

[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.
[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.
[systemverilog] always_comb, always_ff, always_latch systemverilog에서는 기존 verilog에서와 다르게 always 구문이 design의 목적에 맞게 세분화 되었습니다. 1. always_ff - verilog에서의 일반적인 sequential logic을 구현할 때 사용 - sensitive list 필수 - timing 제어 구문 포함 불가능 2. always_comb - verilog에서의 combination logic을 구현할 때 사용 - sensitive list 필요 없음 - latch가 생기지 않도록 모든 조건문 필요 3. always_latch - always_comb와 동일하나 latch구문이 필요할 경우 사용 여기서 comb와 latch가 어떻게 다른지 simulation을 간단하게 구현하면 reg [2:0] result_c.. 2021. 2. 21.
[systemverilog] pass by reference systemverilog에서 task, function을 사용하다 보면 block에서 block으로 값을 넘겨 줄 때가 있습니다. leehc257.tistory.com/39 [systemverilog] automatic keyword 예전 블로그에서 automatic이 뭔지 몰라 정리를 했었던 적이 있습니다 blog.naver.com/ddacksal/222029970829 [Day 49] systemverilog 공부 - 8 (automatic, static, initialize, datatype) 새로 산 책에 제목에.. leehc257.tistory.com 기존에 포스팅한 것과 같이 automatic이라는 keyword와 같이 사용해야 하는 방식을 정리합니다. 우선 아래와 같은 code가 있다고 하면.. 2021. 2. 21.
[verilog] system function list verilog에는 다양한 system function 들이 있습니다 그 중에서 주로 사용하는 function들을 정리합니다 $monitor : 신호의 값이 변할때 마다 출력 $display : 호출 될 때 마다 출력 $strobe : 같은 시간에 모든 할당문이 끝난 후에 출력 $time : 64bit simulation 시간 $stime : 32bit simulation 시간 $realtime : 현재의 시간을 실수로 리턴 $reset : simiulation time을 0으로 만듬 $stop : simulation을 잠시 멈추고, interactive mode로 변경 $finish : simulation 종료 $readmemb : 파일을 읽어서 메모리에 할당 $writememb : 메모리를 파일로 wr.. 2021. 2. 6.