Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Вопрос 33 - Оператор контроля Assert. Назначение, синтаксис и применение оператора.

Поиск

 

Оператор Assert позволяет проверять действительность выражений арбитражного характера, в которых используются параметры, числа, оценочные функции, а также статусные состояния портов (используется порт или не используется)

 

Синтаксис оператора Assert:

ASSERT <assert expression>

REPORT <string> [ <message variable> {, <message variable> } ]

[ SEVERITY <severity> ]

[ HELP_ID <identifier> ]; --зарезервированы для будущих разработок

<assert expression>::= <expression> | (<expression>)

<message variable>::= <symbolic name><expression>

<severity>::= INFO | WARNING | ERROR

 

Пример:

ASSERT (WIDTH > 0)

REPORT "Параметр (%) должен быть целым положительным" WIDTH

SEVERITY ERROR;

 

Оператор Assert имеет следующие характеристики:

 

За ключевым словом ASSERT следует арифметическое выражение, в необязательном порядке заключенное в круглые скобки. Когда выражение принимает значение ‘ложь’, строка - сообщение, следующая за ключевым словом REPORT, выводится в текстовом процессоре.При отсутствии условного выражения строка сообщения выводится безусловно.

За ключевым словом REPORT следует строка сообщения и необязательные параметры, представленные переменными. Строка сообщения заключается в двойные кавычки и может содержать символы %, которые замещаются значениями соответствующих переменных. Если ключевое слово REPORT не используется и при этом значение выражения арбитражного характера принимает значение ‘ложь’, то в текстовом процессоре выдается следующее сообщение:

<severity>: Line <line number>, File <filename>: Assertion failed

Необязательные переменные, включаемые в сообщение состоят из одного или более параметров, оценочных функций или арифметических выражений. Переменные, включаемые в сообщение отделяются друг от друга запятыми. Значения переменных подставляются в порядке появления в сообщении символов %.В примере, показанном выше, значение переменной WIDTH заменяет символ % в строке сообщения.

За необязательным ключевым словом SEVERITY следует уровень строгости ERROR, WARNING или INFO. По умолчанию предполагается уровень строгости ERROR.

Ключевое слово HELP_ID и строка - подсказка поддерживается в некоторых поставляемых фирмой Altera функциях и зарезервировано для внутреннего использования фирмой Altera.

Оператор Assert заканчивается символом (;).

Оператор Assert может использоваться внутри раздела Logic или за пределами других разделов языка AHDL.

 

Вопрос 34 - Операторы заголовка Title и задания опции Options. Назначение, синтаксис и применение операторов.

 

Оператор Title позволяет внести в текстовый файл проекта комментарий, который в дальнейшем будет помещен в файл отчета (Report File),генерируемый компилятором. Следующий пример демонстрирует использование оператора Title:

 

TITLE "Display Controller";

 

При использовании оператора Title необходимо соблюдать следующие правила:

¨ Оператор Title начинается с ключевого слова TITLE, за которым следует текстовая строка -заголовок, заключенная в двойные кавычки. Оператор заканчивается символом ‘;’ (точка с запятой).

¨ Если оператор Title используется в текстовом файле проекта, то использованный заголовок помещается в начало файла отчета (Report File). В показанном выше примере, заголовок Display Controller помещается в файл отчета.

¨ Заголовок может содержать до 255 символов, кроме того в нем не должны использоваться символы конца строки (end-of-line) и конца файла (end-of-file). Для использования кавычек в заголовке необходимо использовать пары двойных кавычек. Пример:

TITLE """EPM5130"" Display Controller";

¨ В одном текстовом файле проекта может использоваться не более одного оператора Title.

¨ Oператор Title должен быть расположен за пределами других разделов языка AHDL.

 

Оператор 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 BIT0 = LSB;

B”0101” - это 5

 

OPTIONS BIT0 = MSB;

B”0101” - это 10

 

Оператор Options расположенный в начале текстового файла проекта производит установку порядка следования битов в группах, действительную в пределах всего файла проекта. Если текущий файл проекта является файлом проекта верхнего уровня иерархии, то установка в операторе Options действительна в отношении всех подпроектов, входящих в данный проект верхнего уровня. Если текущий файл проекта не является файлом проекта верхнего уровня, то действие установки оператора Options распространяется только на данный файл проекта.

 

Примечание:

--Если опция не задана, то,по умолчанию, BIT0 = LSB;

--Значение опции, заданное в файле верхнего уровня иерархии,

распространяется на файлы модулей нижнего уровня, если в них

явно не задано другое значение опции;

--В файле текстового описания оператор используется один раз.

 

Вопрос 35 - Оператор включения Include. Назначение, синтаксис и применение оператора. Создание, размещение и поиск файла включения *.inc в среде САПР MAX+PLUS II.

 

Оператор Include позволяет импортировать текст из файла с расширением.inc в текущий файл. Следующий пример демонстрирует использование оператора Include:

 

INCLUDE "const.inc";

 

Оператор Include имеет следующие характеристики:

¨ Оператор Include начинается с ключевого слова INCLUDE, за которым следует имя подключаемого.inc-файла, заключенного в двойные кавычки.

¨ Если явно не указывать расширение подключаемого файла, то компилятор по умолчанию предполагает, что файл имеет расширение.inc.

¨ Оператор Include заканчивается символом (;).

¨ На этапе компиляции осуществляется замена оператора Include содержимым.inc-файла. В примере, показанном выше, файл const.inc заменяет текст INCLUDE “const.inc”;

 

Оператор Include часто используется для подключения прототипов функций для файлов более низкого уровня иерархии по отношению к данному текстовому файлу проекта (TDF). Для использования мега- и макрофункций необходимо сначала определить их логику функционирования в соответствующем файле проекта. Затем необходимо использовать оператор Function Prototype для определения портов функции. В качестве альтернативного варианта, можно использовать оператор Include для подключения прототипа функции, хранящегося в соответствующем файле с расширением.inc. Затем можно осуществить объявление объекта (Instance Declaration) или подставляемую ссылку (in-line reference) дляэкземпляра логической функции.

Можно автоматически создать файл с расширением.inc, содержащий прототип функции для текущего файла проекта, с помощью команды Create Default Include File меню File.

 

На этапе компиляции текстового файла проекта, компилятор осуществляет поиск файлов с расширением.inc в следующей последовательности:

1. Сначала осуществляется поиск в директории данного проекта

2. Просматриваются пользовательские библиотеки указанные командой User Libraries меню Options.

3. Просматриваютсядиректории \maxplus2\max2lib\mega_lpm и \maxplus2\max2inc, созданные во время инсталляции.

 

После изменений, внесенных в текстовый файл проекта (TDF), в котором осуществляется подключение файлов с расширением.inc, можно использовать команду Project Save&Check меню File или осуществить полную перекомпиляцию проекта для обновления дерева иерархии проекта, выводимого в окне отображения иерархии проекта.

При использовании оператора Include необходимо соблюдать следующие правила:

¨ Имя файла, приведенного в операторе Include, не должно содержать пути.

¨ В программном обеспечении рабочих станций имена файлов контекстно-зависимы. В документации MAX+PLUSII имена файлов могут приводиться как с использованием прописных, так и строчных букв. Однако в случае использования оператора Include имена файлов должны в точности повторять их оригинальные имена. Названия макро- и мегафункций поставляемых фирмой Altera целиком состоят из строчных букв.

¨ Oператор Include должен быть расположен за пределами других разделов языка AHDL.

¨ Оператор Include может использоваться произвольное количество раз в рамках одного текстового файла проекта (TDF).

Файлы с расширением.inc должны удовлетворять следующим соглашениям:

¨ Полные имена этих файлов должны иметь расширение.inc.

¨ Файлы с расширением.inc могут содержать лишь следующие операторы:

· Function Prototype

· Define

· Parameters

· Constant

Вложенность при использовании файлов с расширением.inc недопустима.

Файлы с расширением.inc не должны содержать секцию Subdesign.

 

Вопрос 36 - Оператор задания константы Constant. Назначение, синтаксис и применение оператора.

 

Оператор Constant позволяет ввести в применение информативное символическое имя для числа или арифметического выражения. Следующие примеры демонстрируют использование оператора Constant:

 

CONSTANT UPPER_LIMIT = 130;

CONSTANT BAR = 1 + 2 DIV 3 + LOG2(256);

CONSTANT FOO = 1;

CONSTANT FOO_PLUS_ONE = FOO + 1;

--Применение констант не требует дополнительных ресурсов ПЛИС.

--Оператор CONSTANT может использоваться неограниченное число раз.

--Значение константы не должно превышать H”FFFFFFFF” (32 разряда)

 

Оператор Constant имеет следующие характеристики:

¨ Оператор Constant начинается с ключевого слова CONSTANT, за которым следует символическое имя, затем символ (=) и далее число (при необходимости, включая его основание) или арифметическое выражение.

¨ Оператор Constant заканчивается символом (;).

¨ После того, как константа была определена, она может быть использована в пределах всего текстового файла проекта (TDF). В примере, приведенном выше, в разделе Logic можно использовать константу UPPER_LIMIT для представления десятичного числа 130.

¨ Константы могут быть определены посредством арифметических выражений. В эти арифметические выражения могут входить константы определенные ранее.

¨ Компилятор вычисляет арифметические выражения, используемые в операторе Constant и упрощает их до числовых значений. При этом не производится генерация логических схем.

 

При использовании оператора Constant необходимо соблюдать следующие правила:

¨ Константа может быть использована лишь после того, как она определена.

¨ Имена констант должны быть уникальными.

¨ Имя константы не должно содержать пробелов. Для разделения слов в имени константы и улучшения восприятия имен констант следует пользоваться символом подчеркивания.

¨ Оператор Constant может использоваться произвольное количество раз в рамках одного текстового файла проекта.

¨ Oператор Constant должен быть расположен за пределами других разделов языка AHDL.

¨ Константы, используемые для определения других констант, должны быть определены ранее.

¨ Использование циклических ссылок недопустимо. Следующий пример демонстрирует использование недопустимой циклической ссылки:

CONSTANT FOO = BAR;

CONSTANT BAR = FOO;

 



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 555; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.198.147 (0.007 с.)