Верилог Задача
А 04
предназначен для обработки входных данных и возврата единственного значения, тогда как 11
является более общим и может вычислять несколько значений результата и возвращать их с помощью output и вход тип аргументов. Задачи могут содержать элементы, отнимающие время моделирования, такие как @ , позже и другие.
Синтаксис
У задачи не обязательно должен быть набор аргументов в списке портов, и в этом случае его можно оставить пустым.
06
Статическая задача
Если задача является статической, то все ее переменные-члены будут общими для разных вызовов одной и той же задачи, которая была запущена для одновременного выполнения
15пре>Аргументы, разрешающие задачу (x, y, z), соответствуют аргументам (a, b, c), определенным задачей. Поскольку а и б входные данные, значения x и г будет помещен в a и б соответственно. Потому что с объявлен как выход и связан с z при вызове сумма будет автоматически передана в переменную z из в .
Автоматическая задача
Ключевое слово
24
сделает задачу реентерабельной, иначе по умолчанию она будет статической. Все элементы внутри автоматически задачи распределяются динамически для каждого вызова и не распределяются между вызовами одной и той же задачи, выполняемой одновременно. Обратите внимание, что31
к элементам задач нельзя получить доступ по иерархическим ссылкам.Для иллюстрации рассмотрим static отображение задачи, которая вызывается из разных
42
блоки, работающие одновременно. В этом случае целочисленная переменная, объявленная в задаче, используется всеми вызовами задачи, и, следовательно, отображаемое значение должно увеличиваться при каждом вызове.23Журнал моделирования37Если задача сделана автоматической, каждому вызову задачи выделяется отдельное место в памяти моделирования, и она ведет себя по-разному.
45Журнал моделирования53Глобальные задачи
Задачи, объявленные вне всех модулей, называются глобальными. задачи, так как они имеют глобальную область действия и могут быть вызваны в любом модуле.
66Журнал моделирования78Если бы задача была объявлена в модуле des, ее нужно было бы вызывать со ссылкой на имя экземпляра модуля.
85Журнал моделирования94Разница между
57
и65
Хотя функции и задачи Verilog служат схожим целям, между ними есть несколько заметных различий.
Функция | Задача |
---|---|
Не может иметь операторов/задержек, контролирующих время, и, следовательно, выполняется в одну и ту же единицу времени моделирования | Может содержать операторы контроля времени/задержку и может завершаться только в другое время |
Невозможно включить задачу из-за вышеуказанного правила | Может включать другие задачи и функции |
Должен иметь хотя бы один входной аргумент и не может иметь выходных или входных аргументов | Может иметь ноль или более аргументов любого типа |
Может возвращать только одно значение | Не может вернуть значение, но может добиться того же эффекта, используя выходные аргументы |
Когда функция пытается вызвать 74
или содержать оператор, занимающий много времени, компилятор сообщает об ошибке.
102Журнал моделирования
119
Отключить задачу
Задачи можно отключить с помощью 83
ключевое слово.
125
При отображении задача была запущена первым 97
блок, T_DISPLAY запустился и отключился, когда время достигло 50 единиц. Немедленно начался следующий блок S_DISPLAY, который завершился на 80 единиц.
139
Verilog