# Сохранение состояния симуляции

`$dumpfile` используется для сохранения изменений в значениях переменных и проводов в файл, имя которого указано в качестве аргумента. `$dumpvars` отвечает за то, какие именно значения будут записаны в файл. `$dumpon` и `$dumpof`f включает и выключает флаг сохранения, аналогично флагу мониторинга в командах `$monitoron` и `$monitoroff`.

Без указания аргументов в `$dumpvars` будут записываться все значения в моделируемой системе. Если первым аргументом указан 0, за которым следует перечисление названий модулей, то будут записываться все значения этого модуля и всех модулей нижестоящих уровней, инстанцированных в текущем модуле. Если какой-либо модуль не создан этим модулем, то его переменные не будут учитываться. Помимо модуля верхнего уровня можно указать модули, которые не инстанцированы в этом модуле.

Чтобы записывать только сигналы в определённом модуле, указывается первым аргументом 1 и вторым – название модуля.

Если указать первым аргументом 2, а затем имя модуля, то будут записываться все переменные указанного модуля и модулей, инстанцированных в том на один уровень ниже.

*Синтаксис*

{% code overflow="wrap" lineNumbers="true" %}

```verilog
$dumpfile (filename);
$dumpvars;
$dumpvars (level, scope);
```

{% endcode %}

*Пример*

{% code overflow="wrap" lineNumbers="true" %}

```verilog
module dumpfile_tb;
  reg a, b, c, d;

  initial begin
    repeat (5) begin
      #1; c = b & a;
      d = a | b;
    end        
  end

  initial begin
    #2 a = 0; b = 1;
    #2 a = 1'bz; b = 1'bz;
  end

  initial begin
    $dumpfile("dump.vcd");
    $dumpvars(0, dumpfile_tb);
    #10 $finish;
  end
endmodule
```

{% endcode %}

*Временная диаграмма*

![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-1e30cd90eecfe44ec0f4876d219eefd5a17a336c%2Fwaves2.png?alt=media)

На рисунках ниже стрелками обозначено, что модуль инстанцирован в другом. Выделение жёлтым показывает, значения из каких модулей будут записываться в файл.

|                                                                                                                                                                                                                            |                                                                                                                                                                                                                       |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|                                                                                             `$dumpvars; $dumpvars(0, module2);`                                                                                            |                                                                                       `$dumpvars(0, top_level_module, module0);`                                                                                      |
| ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-64f0cb042382d1cefce7edc874fb85818fb7e7dc%2Fdumpvars-dumpvars-0-module2.png?alt=media) | ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-ebae0e2c159f9b194f0ba15ebb04850876d6c5fe%2Fdumpvars-0-tlm-module0.png?alt=media) |
|                                                                                                                                                                                                                            |                                                                                                                                                                                                                       |
|                                                                                              `$dumpvars(0, top_level_module);`                                                                                             |                                                                                                `$dumpvars(0, module2);`                                                                                               |
|        ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-3cb2b302f5ccd6fb8ed283191a22d66f01fec755%2Fdumpvars-0-tlm.png?alt=media)       |   ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-1d51ab147bc95e3967b46fa1f398c27c8234620b%2Fdumpvars-0-module2.png?alt=media)   |
|                                                                                                                                                                                                                            |                                                                                                                                                                                                                       |
|                                                                                                  `$dumpvars(1, module2);`                                                                                                  |                                                                                           `$dumpvars(2, top_level_module);`                                                                                           |
|      ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-3f9d91f9c8d2832d737e843db11e9ebcbaacf29f%2Fdumpvars-1-module2.png?alt=media)     |     ![](https://1605996681-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkhrUYO4h2JjjaxSLXUTQ%2Fuploads%2Fgit-blob-c667962b2f6da838926fa01576a7a3bee765fe6f%2Fdumpvars-2-tlm.png?alt=media)     |
|                                                                                                                                                                                                                            |                                                                                                                                                                                                                       |
