Язык описания электронной аппаратуры VHDL. Берчун Ю.В. - 32 стр.

UptoLike

Составители: 

32
Число устройств определяется итерационной схемой. Для оператора с ключевым сло-
вом
forэто просто число значений переменной в объявленном диапазоне. Для варианта с
ключевым словом
while условие не может быть связано с сигнальными данными, способ-
ными изменяться в реальном устройстве. Операторы повторения должны иметь логически
постоянные границы, т.к. в противном случае не ясно, сколько повторяющихся блоков в уст-
ройстве реально потребуется.
Кроме раздела итерационная схема порядок реализации повторений может задаваться
дополнительными операторами: оператором перехода к
следующему циклу
next и операто-
ром выхода из цикла exit.
Оператор
next блокирует исполнение всех последующих операторов в текущем цикле
и обеспечивает автоматический переход к следующей итерации.
Оператор записывается следующим образом:
<оператор перехода к следующей итерации>::=
[<метка>:] next [<метка оператора повторения>] [when <условие>]
Оператор exit прекращает исполнение не только текущего цикла, но и всех после-
дующих циклов, заданных итерационной схемой исполняемого оператора. Синтаксис опера-
тора exit имеет вид:
<оператор прекращения цикла>::=
[<метка>:] exit [<метка оператора повторения>] [when <условие>]
Необязательная метка в операторах next и exit используется при записи вложенных
циклов. Такая метка указывает, что прерывается не только данный цикл, но и все иерархиче-
ски предшествующие ему циклы, вплоть до цикла, оператор которого помечен этой меткой.
4.7.5. Операторы проверки
Оператор проверки assert относится к категории конструкций, не подлежащих реа-
лизации в аппаратуре. Оператор служит для выявления специфических ситуаций, которые
могут возникать в процессе компиляции и моделирования (т. е. программной интерпретации
описания проекта), и выдачи в этих ситуациях сообщения разработчику. Синтаксис операто-
ра проверки определен следующим образом:
<оператор проверки>::=
assert <булевское выражение>
[report <строка сообщения>]
[severity <уровень важности>];
При выполнении этого оператора в процессе моделирования проверяется условие и, ес-
ли получено значение true, выполняется переход к следующему оператору программы. В
противном случае на терминал выводится строка сообщения. Если опция report <строка
сообщения>
отсутствует, выдается стандартное сообщение Assertion violation (на-
рушение условий проверки). После этого поведение программы моделирования определяется
значением уровня важности. Уровень важностиэто выражение (обычно константа) типа
severity_level. Напомним, что данные этого типа могут принимать четыре значения,
причем действия, которые выполняются при значении булевского выражения false зада-
     Число устройств определяется итерационной схемой. Для оператора с ключевым сло-
вом for — это просто число значений переменной в объявленном диапазоне. Для варианта с
ключевым словом while условие не может быть связано с сигнальными данными, способ-
ными изменяться в реальном устройстве. Операторы повторения должны иметь логически
постоянные границы, т.к. в противном случае не ясно, сколько повторяющихся блоков в уст-
ройстве реально потребуется.
     Кроме раздела итерационная схема порядок реализации повторений может задаваться
дополнительными операторами: оператором перехода к следующему циклу next и операто-
ром выхода из цикла exit.
     Оператор next блокирует исполнение всех последующих операторов в текущем цикле
и обеспечивает автоматический переход к следующей итерации.
     Оператор записывается следующим образом:
<оператор перехода к следующей итерации>::=
[<метка>:] next [<метка оператора повторения>] [when <условие>]
     Оператор exit прекращает исполнение не только текущего цикла, но и всех после-
дующих циклов, заданных итерационной схемой исполняемого оператора. Синтаксис опера-
тора exit имеет вид:
<оператор прекращения цикла>::=
[<метка>:] exit [<метка оператора повторения>] [when <условие>]
     Необязательная метка в операторах next и exit используется при записи вложенных
циклов. Такая метка указывает, что прерывается не только данный цикл, но и все иерархиче-
ски предшествующие ему циклы, вплоть до цикла, оператор которого помечен этой меткой.
4.7.5. Операторы проверки
     Оператор проверки assert относится к категории конструкций, не подлежащих реа-
лизации в аппаратуре. Оператор служит для выявления специфических ситуаций, которые
могут возникать в процессе компиляции и моделирования (т. е. программной интерпретации
описания проекта), и выдачи в этих ситуациях сообщения разработчику. Синтаксис операто-
ра проверки определен следующим образом:
<оператор проверки>::=
assert <булевское выражение>
[report <строка сообщения>]
[severity <уровень важности>];
     При выполнении этого оператора в процессе моделирования проверяется условие и, ес-
ли получено значение true, выполняется переход к следующему оператору программы. В
противном случае на терминал выводится строка сообщения. Если опция report <строка
сообщения> отсутствует, выдается стандартное сообщение Assertion violation (на-
рушение условий проверки). После этого поведение программы моделирования определяется
значением уровня важности. Уровень важности — это выражение (обычно константа) типа
severity_level. Напомним, что данные этого типа могут принимать четыре значения,
причем действия, которые выполняются при значении булевского выражения false зада-


                                              32