отчеты по лабораторным работам / лабораторная работа №3 / Лаб3 / verilog
.pdfTime scale of (<module_name>) is <unit> / <precision>
Пример: `timescale 1ms/1us module a_dat();
initial $printtimescale(b_dat.c1); endmodule
`timescale 10fs/1fs module b_dat();
c_dat c1(); endmodule
`timescale 10ns/1ns module c_dat();
<statements> endmodule
Результат: Time scale of (b_dat.c1) is 10ns / 1ns
$timeformat (<unit_numbers>, <precision_number>, <suffix_string>, <minimum_field_width>);
Эта системная задача выполняет две функции: во-первых, как будет выводится информация под форматом %t; во-вторых определяет временные единицы при интерактивном вводе задержек. Параметр unit_number определяет временные единицы как и директива `timescale, но формат этого параметра другой. Этот параметр представляет собой целое число от -15 до 0. В следующем списке поставлено соответствие между форматом директивы `timescale и значением этого параметра.
Unit Number |
Time Unit |
Unit Number |
Time Unit |
0 |
1s |
-8 |
10ns |
-1 |
100ms |
-9 |
1ns |
-2 |
10ms |
-10 |
100ps |
-3 |
1ms |
-11 |
10ps |
-4 |
100us |
-12 |
1ps |
-5 |
10us |
-13 |
100fs |
-6 |
1us |
-14 |
10fs |
-7 |
100ns |
-15 |
1fs |
По умолчанию значение этого параметра устанавливается равным минимальному значению временной единицы в директивах `timescale в исходном коде. Параметр precision определяет количество знаков после десятичной точки в выводимом значении. По умолчанию этот параметр равен нулю. Третий параметр suffix_string определяет текстовую строку, выводимую непосредственно после значения временного отсчета (например, "ns"). По умолчанию это пустая строка. Последний
параметр minimum_field_width определяет минимальное количество позиций отводимое под выводимое значение и текстовую строку, по умолчанию этот параметр равен 20. Установленные этой задачей значения будут действовать, пока не всретится другой вызов $timeformat с другими параметрами.
81
Пример: `timescale 1ms/1us module ctrl();
initial $timeformat(-9, 5, " ns", 10); endmodule
`timescale 1fs/1fs module a_dat(); initial
#15043021 $display("Time = %t", $realtime); endmodule
Результат: Time = 15.04302 ns
7.3 Функции и задачи управляющие процессом моделирования
$reset;
$reset (<stop_value>);
$reset (<stop_value>, <reset_value>);
$reset (<stop_value>, <reset_value>, <diagnostics_value>);
Эта системная задача предназначена для сброса системы моделирования в начальное состояние, т.е. временные отсчеты устанавливаются в нулевое состояние,
все регистры и цепи устанавливаются в свое начальное состояние и начинается выполнение операций в блоках initial и always. Параметр stop_value определяет поведение системы моделирования после сброса, т.е. определяет переходит ли система к процессу моделирования немедленно или переходит в интерактивный режим.
Нулевое значение этого параметра или отсутствие параметров вообще вызывает переход в интерактивный режим. Ненулевое значение вызывает перезапуск процесса моделирования. Параметр reset_value позволяет сохранить некоторое целочисленное значение после перезапуска системы моделирования. Поскольку все переменные принимают свое начальное состояние, другим способом это обеспечить нельзя.
Сохраненное значение пожно получить воспользовавшись системной функцией $reset_value. Третий параметр diagnostic_value представляет собой целое число в качестве диагностического сообщения. Нулевое значение этого параметра подразумевает отсутствие сообщений.
$reset_value
Эта функция возвращает целочисленное значение, заданное параметром reset_value в предыдущем вызове задачи $reset.
82
