3.10.15 GTKWave — инструмент визуализации диаграмм цифровых сигналов
Установка GTKWave
Консольная утилита gtkwave
Пример визуализации сигналов простого счётчика (counter) с тестовым окружением (testbench)
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная, Образовательная
- Версия ПО: gtkwave-3.3.111-3
GTKWave — это бесплатный инструмент с открытым исходным кодом для визуализации и анализа диаграмм цифровых сигналов (wave viewer). Он широко применяется в цифровой электронике, в первую очередь для отладки цифровых RTL-проектов.
Основыми сферами использования инструмента являются:
- просмотр результатов симуляции — интегрируется с симуляторами общего назначения (Icarus Verilog, Verilator, GHDL, ModelSim);
- поиск багов (debug) — помогает визуально отследить, в какой момент времени нарушилась логика работы схемы (например, не установился флаг готовности, или шина данных выдала неверное значение);
- обучение — активно используется студентами и инженерами для изучения языков описания аппаратуры (Verilog, SystemVerilog, VHDL).
GTKWave обладает следующими возможностями:
- поддержка большого количества форматов файлов дампов — стандартных VCD/EVCD, а также сжатых форматов FST, LXT, LXT2, VZT, GHW. VCD — отраслевой стандартный формат файлов дампов, генерируемый большинством симуляторов Verilog. Это самый медленный из форматов для обработки просмотрщиком, требующий больше всего памяти, однако он повсеместно распространён и поддерживается почти всеми инструментами. FST — наиболее быстрый и эффективный формат для обработки в GTKWave, поддерживающий конвертацию в VCD и обратно;
- визуализация данных — инструмент позволяет отображать как цифровые, так и аналоговые сигналы. Для сигналов доступна визуализация в различных системах счисления (двоичная, десятичная, шестнадцатеричная) и в виде аналоговых графиков;
- встроенные инструменты для анализа — предоставляет широкий набор функций для работы с сигналами: масштабирование, поиск (в том числе с использованием регулярных выражений), создание групп сигналов, установка маркеров и курсоров для точных временных замеров;
- интеграция с дизайном — поддерживает функцию «RTLBrowser», которая позволяет просматривать значения сигналов в контексте RTL-кода, упрощая навигацию по иерархии проекта;
- настраиваемый интерфейс — предоставляет возможность настраивать отображение сигналов, цвета, добавлять комментарии и сохранять текущее состояние в файл для последующей загрузки.
Установка GTKWave
Установить GTKWave можно через графический менеджер пакетов или через терминал.
Для установки инструмента через графический менеджер пакетов dnfdragora перейдите в «Главное меню» — «Администрирование» — «Управление пакетами dnfdragora», выполните поиск необходимого пакета по ключевому слову «GTKWave» и отметьте флагом пакет последней версии. После этого нажмите кнопку «Применить» и дождитесь окончания установки.
Для установки GTKWave через терминал выполните команду (потребуются права администратора):
sudo dnf install gtkwave
После установки запуск инструмента доступен из «Главного меню» — «Стандартные» — «GTKWave» или через терминал командой (с правами непривилегированного пользователя):
gtkwave
Консольная утилита gtkwave
Синтаксис утилиты имеет вид:
gtkwave [<опции>] [<файл_дампов>] [<файл_сохранения>]
где:
<файл_дампов>— основной файл, содержащий временные диаграммы (VCD, FST, LXT, GHW и др.);<файл_сохранения>— файл с настройками, который имеет расширение .gtkw. Если этот файл указан, GTKWave сразу загрузит сохранённые сигналы и применённые к ним настройки.
Основные опции утилиты:
-a <файл_сохранения>;--save <файл_сохранения>— задать имя файла сохранения (.gtkw);-A;--autosavename— автоматически создать файл .gtkw, заменив расширение файла дампа;-o;--optimize— конвертировать VCD в FST при загрузке (применяется для экономии памяти);-F;--fastload— создать кеш-файл для быстрой перезагрузки больших VCD;-S <файл_скрипта>;--script <файл_скрипта>— выполнить Tcl-скрипт при запуске;-r <файл_конфигурации>;--rcfile <файл_конфигурации>— использовать альтернативный конфигурационный файл вместо .gtkwaverc;-N;--nowm— отключить менеджер окон для создания встроенных приложений;-V;--version— вывести версию утилиты;-
-h;--help— вывести справку по утилите.
Примеры команд:
Для стандартного просмотра файла дампов выполните следующую команду:
gtkwave <файл_дампов.vcd>
Для запуска просмотра файла дампов с настроенной ранее конфигурацией визуализации выполните:
gtkwave <файл_дампов.vcd> <файл_сохранения>
Пример визуализации сигналов простого счётчика (counter) с тестовым окружением (testbench)
В примере для демонстрации работы GTKWave были созданы следующие текстовые файлы:
- файл дампов простого счетчика dumpfile.vcd;
- файл конфигурации dumpfile.gtkw.
Для создания файла дампов простого счетчика dumpfile.vcd выполните команду:
nano dumpfile.vcd
Заполните его следующим содержимым:
$date Fri Aug 28 12:35:00 2026 $end $version Icarus Verilog $end $timescale 1ns $end $scope module testbench $end $var wire 1 ! clk $end $var wire 1 " rst $end $var wire 4 # count [3:0] $end $upscope $end $enddefinitions $end #0 $dumpvars b0000 # 1" 0! $end #5 1! #10 0! 0" #15 1! b0001 # #20 0! #25 1! b0010 # #30 0! #35 1! b0011 # #40 0!
Сохраните файл (Ctrl + S), закройте редактор (Ctrl + X).
Для создания файла конфигурации dumpfile.gtkw (с заранее настроенной визуализацией) выполните команду:
nano dumpfile.gtkw
Заполните его следующим содержимым:
[*] [*] GTKWave Analyzer v3.3.100 [*] [dumpfile] "dumpfile.vcd" [savefile] "dumpfile.gtkw" [timestart] 0 [size] 1000 600 [pos] -1 -1 [treeopen] testbench. @28 testbench.clk testbench.rst @22 testbench.count[3:0] [pattern_trace] 1 [pattern_trace] 0
Сохраните файл (Ctrl + S), закройте редактор (Ctrl + X).
Запустите визуализацию:
gtkwave dumpfile.vcd dumpfile.gtkw
На экране появится графический интерфейс GTKWave следующего вида:
В панели «Signals» (1) автоматически появятся три сигнала:
clk— прямоугольный тактовый сигнал, меняющийся каждые 5 нс;rst— сигнал сброса, который равен 1 в начале и падает в 0 на 10-й наносекунде;count[3:0]— 4-битная шина данных. Благодаря файлу конфигурации .gtkw, она сразу отобразится в двоичном формате, показывая последовательный рост счётчика (0000 → 0001 → 0010 → 0011) по переднему фронту тактового сигнала.
В главной рабочей области (2) будет отображен график сигналов, в котором:
- зелёные линии показывают стандартные логические уровни (0 или 1);
- синие блоки отображают многобитные шины данных (в данном случае — 4-битный счётчик
count[3:0]).
Дата последнего изменения: 23.09.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.