값 변경 덤프

Value change dump

VCD(Value Change Dump) ("Variable Change Dump"라고도 덜 알려져 있음)는 EDA 로직 시뮬레이션 도구에 의해 생성된 덤프 파일의 ASCII 기반 형식이다.표준 4값 VCD 형식은 1996년 IEEE 표준 1364-1995에 의해 Verilog 하드웨어 설명 언어와 함께 정의되었다.6년 후 IEEE 표준 1364-2001에서 정의된 확장 VCD 형식은 신호 강도와 방향성의 로깅을 지원한다.VCD 형식의 단순하면서도 컴팩트한 구조로 인해 VHDL 시뮬레이터 GHDL과 다양한 커널 트래커와 같은 비 Verilog 도구로 사용이 확산되었다.포맷의 한계는 메모리에 값을 기록할 수 없다는 것이다.

구조/동기세

VCD 파일은 날짜, 시뮬레이터 및 시간 척도 정보가 포함된 헤더 섹션, 가변 정의 섹션, 그리고 그 순서대로 값 변경 섹션으로 구성된다.이 섹션은 파일 내에서 명시적으로 기술되지 않고 각 섹션에 속하는 키워드를 포함함으로써 식별된다.

VCD 키워드는 선행 $로 표시되지만 변수 식별자도 $로 시작할 수 있다.일반적으로 모든 키워드는 $end 키워드로 종료되는 섹션을 시작한다.

모든 VCD 토큰공백으로 구분된다.VCD 파일의 데이터는 대소문자를 구분한다.

헤더 섹션

VCD 파일의 헤더 섹션에는 타임스탬프, 시뮬레이터 버전 번호 및 시간 척도가 포함되어 있으며, 값 변경 섹션에 나열된 시간 증분을 시뮬레이션 시간 단위에 매핑한다.

가변 정의 섹션

VCD 파일의 가변 정의 섹션에는 주어진 범위에서 인스턴스화된 신호 목록뿐만 아니라 스코프 정보도 포함되어 있다.

각 변수에는 값 변경 섹션에서 사용할 임의의 소형 ASCII 식별자가 할당된다.식별자는 ! ~ ~ (십진수 33 ~ 126)의 인쇄 가능한 ASCII 문자로 구성된다.시뮬레이터가 항상 동일한 값을 갖는다고 판단할 경우 몇 개의 변수가 식별자를 공유할 수 있다.

스코프 유형 정의는 Verilog 개념을 밀접하게 따르고 유형 모듈, 작업, 기능포크를 포함한다.

$280vars 구간

$dumpvar 키워드로 시작하는 섹션에는 덤프된 모든 변수의 초기 값이 포함되어 있다.

값변경단면

값 변경 섹션에는 주어진 시뮬레이션 모델에서 신호에 대한 일련의 시간 순서가 지정된 값 변경이 포함되어 있다.현재 시간은 타임스탬프 뒤에 '#'로 표시된다.스칼라(단일 비트) 신호의 경우 형식은 신호 값 0 또는 1로 표시되고 신호 값과 신호 식별자 사이에 공백이 없는 신호 식별자가 바로 뒤에 표시된다.벡터(멀티비트) 신호의 경우 형식은 문자 'b' 또는 'B'로 표시된 신호 값 다음에 이진 형식으로 표시된 값을 공백으로 표시한 다음 신호 식별자로 표시한다.실제 변수의 값은 문자 'r' 또는 'R'로 표시되며, 그 다음에 %.16g 인쇄f() 형식을 사용한 데이터가 표시되고, 그 다음에 공백이 표시되며, 그 다음에 변수 식별자가 표시된다.

VCD 파일 예

$date 날짜 텍스트.예: 2009년 11월 11일.$end $vision VCD 생성기 도구 버전 정보 텍스트.$end $comment 모든 의견 텍스트.달러달러 기간 1ps달러 엔드달러 범위 모듈을 끝내logic달러 끝달러 var 와이어 8#데이터달러 끝달러 var 와이어 1달러data_valid달러 끝달러 var 와이어 1%계란달러 끝달러 var 와이어 1&rx_en달러 끝달러 var 와이어 1'tx_en달러 끝달러 var 와이어 1( 빈달러 끝달러 var 와이어 1)저류달러 끝달러upscope달러 끝달러 enddefinitions달러 끝달러 dumpvars bxxxxxxxx#x$ 0%x&^'1(0)달러 끝#0b10000001#0$ 1%0& 1의 0(.0#2211 0' #2296 b0 # 1$ #2302 0$ #2303

위의 코드는 $var를 사용하여 7개의 신호를 정의한다.

$var 유형 비트 너비 ID 이름

ID는 나중에 값 변경 덤프에서 사용된다.가치 변화 덤프는 $end 정의 $end 후에 시작되며 타임스탬프를 기반으로 한다.타임스탬프는 숫자 뒤에 '#'로 표시된다.각 타임스탬프에는 값을 변경하는 신호 목록이 나열된다.이 작업은 값/id 쌍에 의해 수행된다.

new_value id

이 예는 다음과 같이 표시된다.

Screenshot of an example VCD file displayed by GTKWave.
GTKWave에서 표시하는 VCD 파일의 예.


참고 항목

외부 링크

  • IEEE 규격 1364-2001 – Verilog 2001(무료 아님)의 공식 표준.
  • VCD – 명령줄 도구를 비교하여 VCD 파일(GPL에서 라이센스가 부여됨)을 비교하십시오.
  • 베릴로그:VCD – Verilog VCD 파일 구문 분석용 Perl CPAN 소프트웨어(GPL에 따라 라이센스가 부여됨)
  • 베릴로그_VCD – Perl CPAN 소프트웨어에서 Python으로 변환
  • 프로세스VCD – VCD 파일 구문 분석용 Java 패키지(MIT 라이센스에 따라 라이센스가 부여됨)
  • PyVCD – IEEE 1364-2005(MIT License)에 지정된 대로 VCD(Value Change Dump) 파일을 쓰는 Python 패키지.
  • VCD 형식 설명(예: Value Change Dump)
  • vCDMaker – 텍스트 로그 파일을 VCD 파일(MIT 라이센스)로 변환하기 위한 도구(리눅스, 윈도우즈)
  • yne/vcd – (Linux, Mac, Windows) CLI를 통해 터미널에 VCD 파일 표시(MIT 라이센스)