Дамп изменения значения - Value change dump

Дамп изменения значения (VCD) (также менее известный как «Дамп изменения переменных») - это ASCII -основанный формат для файлов дампа, созданных EDA логическое моделирование инструменты. Стандарт, четырехзначный Формат VCD был определен вместе с Verilog язык описания оборудования посредством IEEE Стандарт 1364-1995 в 1996 году. Расширенный формат VCD, определенный шесть лет спустя в стандарте IEEE. 1364-2001 поддерживает регистрацию мощности и направленности сигнала. Простая и в то же время компактная структура формата VCD позволила его использовать повсеместно и распространиться на инструменты, не относящиеся к Verilog, такие как VHDL симулятор GHDL и различные ядро трассеры. Ограничением формата является невозможность записи значений в память.

Структура / синтаксис

Файл VCD содержит раздел заголовка с информацией о дате, имитаторе и шкале времени; раздел определения переменных; и раздел изменения значения в указанном порядке. Разделы явно не очерчены в файле, но идентифицируются включением ключевые слова принадлежащий каждому соответствующему разделу.

VCD ключевые слова отмечены ведущим $ (но идентификаторы переменных также могут начинаться с $). Как правило, каждое ключевое слово начинает раздел, который заканчивается $ конец ключевое слово.

Все VCD жетоны обозначены пробел. Данные в файле VCD чувствительны к регистру.

Раздел заголовка

Раздел заголовка файла VCD включает отметка времени, а симулятор номер версии и шкала времени, которая сопоставляет приращения времени, указанные в разделе изменения значения, с единицами времени моделирования.

Раздел определения переменной

Раздел определения переменных файла VCD содержит информацию об области действия, а также списки сигналов, созданных в данной области.

Каждой переменной назначается произвольный компактный идентификатор ASCII для использования в разделе изменения значения. Идентификатор состоит из печатаемых символов ASCII из! до ~ (от 33 до 126 в десятичной системе). Несколько переменных могут иметь общий идентификатор, если симулятор определяет, что они всегда будут иметь одно и то же значение.

Определения типов области видимости тесно связаны с концепциями Verilog и включают типы модуль, задача, функция, и вилка.

раздел $ dumpvars

Раздел, начинающийся с ключевого слова $ dumpvars, содержит начальные значения всех выгружаемых переменных.

Раздел изменения значения

Раздел изменения значения содержит серию упорядоченных по времени изменений значений для сигналов в данной имитационной модели. Текущее время обозначается знаком «#», за которым следует отметка времени. Для скалярного (однобитового) сигнала форматом является значение сигнала, обозначенное 0 или 1, за которым сразу следует идентификатор сигнала без пробела между значением и идентификатором сигнала. Для векторных (многобитовых) сигналов форматом является значение сигнала, обозначенное буквой «b» или «B», за которым следует значение в двоичном формате, за которым следует пробел, а затем идентификатор сигнала. Значение для реальных переменных обозначается буквой «r» или «R», за которой следуют данные в формате% .16g printf (), за которым следует пробел и затем идентификатор переменной.

Пример файла VCD

$ date Текст даты. Например: 11 ноября 2009 г. $ end $ version Текст информации о версии инструмента генератора VCD. $ End $ comment Любой текст комментария. $ End $ timescale 1ps $ end $ scope module logic $ end $ var wire 8 # data $ end $ var провод 1 $ data_valid $ end $ var wire 1% en $ end $ var wire 1 & rx_en $ end $ var wire 1 'tx_en $ end $ var wire 1 (пустой $ end $ var wire 1) underrun $ end $ upscope $ end $ enddefinitions $ end $ dumpvarsbxxxxxxxx # x $ 0% x & x'1 (0) $ end # 0b10000001 # 0 $ 1% 0 & 1'0 (0) # 22110 '# 2296b0 # 1 $ # 23020 $ # 2303

Приведенный выше код определяет 7 сигналов с помощью $ var:

$ var type имя идентификатора битовой ширины

Идентификатор используется позже в дампе изменения значения. Дамп изменения значения начинается после $ enddefinitions $ end и основан на отметках времени. Отметка времени обозначается как «#» с последующим номером. На каждой временной метке отображается список сигналов, которые меняют свое значение. Это делается парой значение / идентификатор:

new_value id

Этот пример будет отображаться как

Пример файла VCD, отображаемого gtkwave.


Смотрите также

внешняя ссылка

  • IEEE Std 1364-2001 - Официальный стандарт Verilog 2001 (не бесплатно).
  • Сравнить VCD - Инструмент командной строки для сравнения файлов VCD (под лицензией GPL).
  • Verilog :: VCD - Программное обеспечение Perl CPAN для анализа файлов Verilog VCD (под лицензией GPL).
  • ProcessVCD - Пакет Java для анализа файлов VCD (под лицензией MIT License).
  • PyVCD - Пакет Python, который записывает файлы дампа изменения значения (VCD), как указано в IEEE 1364-2005 (лицензия MIT).
  • Дамп изменения значения - Пояснение к формату VCD с примером.
  • vcdMaker - Инструмент (Linux, Windows) для перевода текстовых файлов журнала в файлы VCD (лицензия MIT).
  • yne / vcd - (Linux, Mac, Windows) CLI для отображения файлов VCD на терминале (лицензия MIT).