Как использовать Arithmetic & Boolean functions с другими типами данных? Для этого можно использовать механизм Operator Overloading
- Operator Overloading - определение арифметических и логических функций для иных типов данных
Оператор переопределяется путем объявления функции с таким же именем, как у исходного оператора
- Поскольку имена оператора и функции одинаковы, имя функции следует заключать в кавычки, чтобы отличить ее от собственно оператора VHDL
- Обычно функция объявляется в составе пакета, так что является глобально доступной в рамках всего проекта
- Пакеты, переопределяющие операторы с помощью функций, содержатся в библиотекеLIBRARY IEEE
- Например, пакетstd_logic_unsignedобъявляет следующие функции:
• Формат •
Пример:
- Должны быть рассмотрены ВСЕ возможные варианты
- Выражение WHEN OTHERS охватывает все другие варианты помимо явно перечисленных
Пример:
- Process может подразумевать:
· Implied processes – неявные процессы
· Explicit processes – явно определенные процессы
- Неявный процесс состоит из Implied process consist of
· Конкурентных операторов определения значений сигналов - Concurrent signal assignment statements
· Выражений компонентов - Component statements
· Чувствительность процесса отображена в правой части выражения - Processes' sensitivity is read side of expression
- Явный процесс:
· Конкурентное выражение - Concurrent statement
· Состоит только из последовательностных операторов - Consist of Sequential statements only
1. Выражение Process выполняется бесконечно, пока не будет прервано оператором WAIT или списком чувствительности (Sensitivity List)
2. Список чувствительности неявно подразумевает оператор WAIT в конце процесса
3. Process может иметь несколько операторов WAIT
4. Process не может иметь одновременно Sensitivity List и оператор WAIT
5. Примечание: при синтезе логических схем на WAIT и Sensitivity List накладываются дополнительные ограничения
- Определение значений сигналов может выполняться как внутри, так и вне выражений Process. Используются три альтернативных способа задания сигнала
- Задание сигнала может содержать определение величины задержки.
- Возможны два типа задержек:
· Внутренняя задержка - Inertial Delay (Default)
§ Импульс, длительность которого мала по сравнению с величиной задержки, передан не будет
· Задержка передачи сигнала - Transport Delay
§ Любой импульс будет передан независимо от его длительности
Примечание: в VHDL есть исключения из этого правила.
- Событие (Event) – изменение величины сигнала: from 0 to 1; or from X to 1, etc
- Цикл моделирования - Simulation cycle
· Граничное время - Wall clock time
· Приращение - Delta
§ Фаза выполнения процесса - Process Execution Phase
§ Фаза записи значений сигнала - Signal Update Phase
- Когда заканчивается цикл моделирования и начинается новый?
· Когда:
§ Все процессы выполнены
§ Значения сигналов обновлены
- Сигналы обновляются в конце процесса
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.