Скачиваний:
135
Добавлен:
09.05.2014
Размер:
600.12 Кб
Скачать

Time 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

Соседние файлы в папке Лаб3