- •Предисловие
- •1. Структура проекта на ahdl
- •Оператор options
- •Оператор assert
- •Раздел variable используется для описания и/или генерации переменных, используемых в разделе Logic.
- •Раздел Variable может также содержать операторы If Generate, которые могут быть использованы для генерирования объектов, узлов, регистров, конечных автоматов, и псевдоимен конечных автоматов.
- •2. Элементы языка ahdl
- •2.1. Зарезервированные слова и идентификаторы
- •2.2. Символы
- •2.3. Строковые и символьные имена
- •2.4. Числа
- •2.5. Арифметические и логические выражения
- •2.6. Встроенные оценочные функции
- •2.7. Шины (группы), диапазоны и поддиапазоны шин
- •3. Примитивы и мегафункции
- •3.1. Обращение к примитивам и мегафункциям
- •1. Непосредственное обращение
- •2. Использование элемента как переменной
- •3.2. Примитивы
- •Примитивы триггеров
- •3.3. Библиотека параметризуемых функций (lpm)
- •1. Пример использования lpm_and, _or, _xor, _inv функций
- •2. Пример использования функции lpm_decode
- •3. Пример использования функций lpm_mux, busmux, mux
- •Пример использования функций lpm_counter, _latch, _ff,
- •5. Пример использования функций lpm_add_sub, _compare, _mult
- •6. Пример использования функции lpm_ram_dq
- •4. Описание логических схем
- •4.1. Операторы Оператор if then
- •Оператор case
- •Оператор defaults
- •Оператор if generate
- •Оператор for generate
- •Оператор truth table
- •4.2. Конечные автоматы
- •5. Основы проектирования плис с
- •Текстовой редактор
- •Литература
- •Прототипы примитивов буферов
- •Приложение 2 Прототипы примитивов триггеров
- •Приложение 3 Прототипы мегафункций
- •Содержание
- •Основы языка описания аппаратуры
- •Методические указания
- •630092, Г. Новосибирск, пр. К. Маркса, 20
Министерство образования и науки Российской Федерации
Новосибирский государственный технический университет
_____________________________________________________________________
004 № 3203
О-753
Основы языка
описания аппаратуры AHDL и САПР MAX+PLUS II
Методические указания к лабораторным работам,
расчетно-графическому заданию и курсовой работе по курсу
«Основы микропроцессорной техники»
для студентов IV курса РЭФ
(направление 210200 и специальность 210404) дневного отделения
Новосибирск
2006
УДК 004.43(076.5)
О-753
Составители: А.В. Кривецкий, канд. техн. наук, доц.
К.А. Куратов, канд. техн. наук, доц.
Рецензент А.Н. Денисов, доц.
Работа подготовлена на кафедре конструирования
и технологии радиоэлектронных средств
© Новосибирский государственный
технический университет, 2006
Предисловие
Программируемые логические интегральные схемы (ПЛИС) представляют одно из самых интересных и быстро развивающихся направлений современной цифровой микроэлектроники. Сложность проектов, реализуемых на базе ПЛИС, постоянно растет, появляются более ресурсоемкие кристаллы, содержащие огромное количество эквивалентных вентилей и дополнительных встроенных блоков. Из-за сложности реализуемых проектов графический ввод принципиальной схемы не позволяет быстро реализовывать подобные устройства, требует значительных трудозатрат, неудобен в «отладке» и редактировании. Большие возможности предоставляют языки описания аппаратуры (Hardware Description Languages, HDL). В данных методических указаниях описываются основы языка Altera HDL, ориентированного на микросхемы ПЛИС фирмы Altera, являющейся одним из лидеров в данной области. Это достаточно простой язык, он компактен, легок в изучении и применении, но тем не менее позволяет реализовывать проекты любого уровня сложности.
1. Структура проекта на ahdl
Разделы и операторы (табл.1) языка AHDL описываются в том порядке, в котором они следуют в текстовом файле проекта (TDF - Text Design File).
Таблица 1
|
Оператор |
Title |
оператор названия |
|
Оператор |
Parameters |
оператор задания параметров |
|
Оператор |
Include |
оператор включения |
|
Оператор |
Constant |
оператор задания константы |
|
Оператор |
Define |
оператор задания оценочной функции |
окончание табл. 1
|
Оператор |
Function Prototype |
оператор прототипа функции |
|
Оператор |
Options |
оператор вариантов |
|
Оператор |
Assert |
оператор проверки выражения |
|
Раздел |
Subdesign |
Раздел описания портов |
|
Раздел |
Variable |
Раздел описания переменных |
|
Раздел |
Logic |
Раздел описания функционирования проекта |
Текстовой файл проекта на языке AHDL должен содержать как минимум два раздела: Subdesign и Logic. Все остальные разделы и операторы необязательны.
Оператор TITLE
позволяет внести в текстовый файл проекта комментарий, который в дальнейшем будет помещен в файл отчета (Report File), генерируемый компилятором.
Пример: TITLE "My device"
Оператор PARAMETERS
позволяет определять один и более параметров.
Пример:
PARAMETERS
(
FILENAME = "myfile.mif"
DATA_WIDTH
ADDDRESS_WIDTH = 8
)
Оператор INCLUDE
позволяет импортировать текст из файла с расширением .inc в текущий файл.
Пример: INCLUDE "lpm_add_sub.inc"
Оператор CONSTANT
позволяет ввести в применение информативное символическое имя для числа или арифметического выражения.
Пример: CONSTANT MAX_COUNT = 94
Оператор DEFINE
позволяет определить оценочную функцию, представляющую собой математическую функцию. Компилятор производит вычисления арифметических выражений, приведенных в операторе Define, и упрощает их до числовых значений. Генерации логических схем при этом не производится.
Пример: DEFINE MAX(a, b) = (a > b) ? a : b;-- если a > b, то функции присваивается значение a, в противном случае – b.
Оператор FUNCTION PROTOTYPE
Представляет собой краткое описание функции, описывая ее имя, а также входные, выходные и двунаправленные порты. Для функций, импортирующих и экспортирующих конечные автоматы, могут использоваться порты автомата.
Альтернативой оператору Function Prototype в файле проекта является оператор Include. Он используется для подключения файлов с расширением .inc, содержащих прототипы используемых функций.
Пример:
FUNCTION compare (a[3..0], b[3..0]) RETURNS (less, equal, greater),
FUNCTION DFF (clk, d, clrn, prn) RETURNS (q);-- модифицированный примитив D-триггера.