Учебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25
Скачать 0.61 Mb.
|
1.21.Определение порядка следования битов (оператор Options)Оператор Options предназначен для определения значения опции BIT0, указывающего в отношении группы, является ли бит с наименьшим номером битом с наибольшим весом (MSB - Most Significant Bit), битом с наименьшим весом (LSB - Least Significant Bit) или с весом, зависящим от места расположения индекса данного бита при описании группы. Использование данной опции позволяет избежать генерации сообщений предупредительного характера, если бит с наименьшим номером в группе используется не в качестве бита с наименьшим весом, что предполагается по умолчанию. При описании группы с размерностью, определенной диапазоном чисел, левое число представленного диапазона (заметим, что оно может быть и наименьшим и наибольшим в данном диапазоне) всегда представляет собой индекс бита с наибольшим весом (MSB - Most Significant Bit); соответственно правое число представленного диапазона (заметим также, что оно может быть и наименьшим и наибольшим числом указанного диапазона) всегда представляет собой индекс бита с наименьшим весом (LSB - Least Significant Bit). Если упомянутый диапазон чисел представлен в возрастающем порядке и при этом не установлена опция BIT0=MSB, то будет сгенерировано предупреждающее сообщение .Если использована опция BIT0=MSB и упомянутый диапазон представлен в убывающем порядке, то также будет сформировано предупреждающее сообщение. При установке опции BIT0=ANY можно определять размерности групп диапазонами чисел, представленных как в возрастающем, так и в убывающем порядке без генерации предупреждающих сообщений. Оператор Options начинается ключевым словом OPTIONS, за которым следует опция BIT0 и ее установка. Оператор Options заканчивается символом (;). Следующий пример демонстрирует использование оператора Options: OPTIONS BIT0 = MSB; В данном примере бит с наименьшим номером в группе определен как бит, имеющий наибольший вес (MSB).Другими возможными вариантами являются LSB - наименьший вес и ANY - вес, зависящий от расположения бита с наименьшим номером при описании группы. Оператор Options расположенный в начале текстового файла проекта производит установку порядка следования битов в группах, действительную в пределах всего файла проекта. Если текущий файл проекта является файлом проекта верхнего уровня иерархии, то установка в операторе Options действительна в отношении всех подпроектов, входящих в данный проект верхнего уровня. Если текущий файл проекта не является файлом проекта верхнего уровня, то действие установки оператора Options распространяется только на данный файл проекта. 1.22.Контроль арифметических выражений (оператор Assert)Оператор Assert позволяет проверять действительность выражений арбитражного характера, в которых используются параметры, числа, оценочные функции, а также статусные состояния портов (используется порт или не используется) Следующий пример демонстрирует использование оператора Assert: ASSERT (WIDTH > 0) REPORT "Ширина (%) должна быть положительным целым" WIDTH SEVERITY ERROR HELP_ID INTVALUE; -- for internal Altera use only Оператор Assert имеет следующие характеристики: За ключевым словом ASSERT следует арифметическое выражение, в необязательном порядке заключенное в круглые скобки. Когда выражение принимает значение ‘ложь’, строка - сообщение, следующая за ключевым словом REPORT, выводится в текстовом процессоре .При отсутствии условного выражения строка сообщения выводится безусловно. За ключевым словом REPORT следует строка сообщения и необязательные параметры, представленные переменными. Строка сообщения заключается в двойные кавычки и может содержать символы % , которые замещаются значениями соответствующих переменных. Если ключевое слово REPORT не используется и при этом значение выражения арбитражного характера принимает значение ‘ложь’, то в текстовом процессоре выдается следующее сообщение: Необязательные переменные, включаемые в сообщение состоят из одного или более параметров, оценочных функций или арифметических выражений. Переменные, включаемые в сообщение отделяются друг от друга запятыми. Значения переменных подставляются в порядке появления в сообщении символов % .В примере, показанном выше, значение переменной WIDTH заменяет символ % в строке сообщения. За необязательным ключевым словом SEVERITY следует уровень строгости ERROR, WARNING или INFO. По умолчанию предполагается уровень строгости ERROR. Ключевое слово HELP_ID и строка - подсказка поддерживается в некоторых поставляемых фирмой Altera функциях и зарезервировано для внутреннего использования фирмой Altera. Оператор Assert заканчивается символом (;). Оператор Assert может использоваться внутри раздела Logic или за пределами других разделов языка AHDL. |