Jump to content

Дамп изменения значения

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

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

[ редактировать ]

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

VCD слова отмечаются Ключевые начальным $ ; вообще говоря, каждое ключевое слово запускает команду, которая завершается явным $end. Идентификаторы переменных также могут начинаться с $, но их можно различать по контексту.

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

раздел $dumpvars

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]
$date
   Date text. For example: November 11, 2009.
$end
$version
   VCD generator tool version info text.
$end
$comment
   Any comment text.
$end
$timescale 1ps $end
$scope module logic $end
$var wire 8 # data $end
$var wire 1 $ data_valid $end
$var wire 1 % en $end
$var wire 1 & rx_en $end
$var wire 1 ' tx_en $end
$var wire 1 ( empty $end
$var wire 1 ) underrun $end
$upscope $end
$enddefinitions $end
$dumpvars
bxxxxxxxx #
x$
0%
x&
x'
1(
0)
$end
#0
b10000001 #
0$
1%
0&
1'
0(
0)
#2211
0'
#2296
b0 #
1$
#2302
0$
#2303

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

$var type bitwidth id name

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

new_value id

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

Снимок экрана с примером файла VCD, отображаемого GTKWave.
Пример файла VCD, отображаемого GTKWave .


См. также

[ редактировать ]
[ редактировать ]
  • IEEE Std 1364-2001 — официальный стандарт Verilog 2001 (не бесплатный, включает главу, определяющую VCD).
  • Написание собственного VCD-файла — неформальный, но исчерпывающий справочник.
  • Дамп изменения значения — объяснение формата VCD с примером.
  • Сравните VCD – инструмент командной строки для сравнения файлов VCD (под лицензией GPL).
  • Verilog::VCD — программное обеспечение Perl CPAN для анализа файлов Verilog VCD (под лицензией GPL).
  • Verilog_VCD — переведено на Python из программного обеспечения Perl CPAN.
  • ProcessVCD — пакет Java для анализа файлов VCD (лицензируется по лицензии MIT).
  • PyVCD — пакет Python, который записывает файлы дампа изменения значений (VCD), как указано в IEEE 1364-2005 (лицензия MIT).
  • vcdMaker — инструмент (Linux, Windows) для перевода текстовых файлов журналов в файлы VCD (лицензия MIT).
  • yne/vcd – (Linux, Mac, Windows) CLI для отображения файлов VCD на терминале (лицензия MIT).
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 870ca157a4b363cf7139f9f273bfeac7__1722392220
URL1:https://arc.ask3.ru/arc/aa/87/c7/870ca157a4b363cf7139f9f273bfeac7.html
Заголовок, (Title) документа по адресу, URL1:
Value change dump - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)