
- •1. Введение 3
- •2. Использование ahdl 13
- •3. Элементы ahdl 64
- •4. Структура проекта 83
- •1. Введение
- •1.1 Описание устройства с помощью ahdl
- •1.1.1 Как работает ahdl?
- •1.2 Структура ahdl-файла
- •1.2.1 Разделы ahdl-файла
- •1.2.2 Иерархические проекты
- •1.2.3 Подключение библиотек
- •1.3.1 Шаблоны и примеры ahdl
- •1.3.2 Контекстно-зависимая помощь
- •1.3.3 Выделение цветом групп символов
- •1.3.4 Локализация ошибок
- •1.4 Компиляция ahdl-проектов
- •1.5 Советы
- •2. Использование ahdl
- •2.1 Введение
- •2.1.1 Использование чисел
- •2.1.2 Использование констант и вычисленных функций
- •2.1.3 Вставка ahdl-шаблона
- •2.1.4 Примеры ahdl
- •2.2 Комбинационные устройства
- •2.2.1 Описание комбинационных устройств с помощью логических уравнений
- •2.2.2 Объявление узлов
- •2.2.3 Описание групп
- •2.2.4 Использование операторов ветвления
- •Использование оператора if…then
- •Использование оператора case
- •Сравнение операторов if…then и case
- •2.2.5 Создание декодеров
- •2.2.6 Использование значений «по умолчанию» для переменных
- •2.2.7 Описание активно-низкой логики
- •2.2.8 Двунаправленные выводы
- •2.2.9 Описание тристабильных выводов
- •2.3 Устройства с памятью
- •2.3.1 Использование регистров
- •2.3.2Определение регистровых входов
- •2.3.3 Создание счетчиков
- •2.4 Графы переходов
- •2.4.1 Описание графа переходов
- •2.4.2 Назначение автомату сигналов синхронизации, сброса, разрешения по входу
- •2.4.3 Кодирование состояний автомата
- •2.4.4 Описание автомата Мура (Moore machine)
- •2.4.5 Описание автомата Мили (Mealy machine)
- •2.5 Создание иерархического проекта
- •2.5.1 Использование не параметризированных функций
- •2.5.2 Использование параметризированных функций
- •2.5.3 Создание и использование макрофункций
- •2.5.4 Экспорт и импорт графов переходов автоматов
- •2.6 ИспользованиеLcell иSofTпримитивов
- •2.8 Перегрузка имени оператора
- •2.9 Использование циклически генерируемой логики
- •2.10 Использование условно генерируемой логики
- •3. Элементыahdl
- •3.1 Ключевые слова и идентификаторы
- •3.1.1 Ключевые слова
- •3.1.2 Зарезервированные идентификаторы
- •3.2 Символы
- •3.3 Имена вAhdl, использование кавычек
- •3.4 Группы
- •3.4.1 Способы объявления и записи групп
- •3.4.2 Размеры групп и подгрупп
- •3.5 Числа вAhdl
- •3.6 Арифметические выражения
- •3.7 Логические выражения
- •3.7.1 Логические операторы
- •3.7.2 Использование оператораNot
- •3.7.3 Использование операторовAnd, nand, or, nor, xor, xnor
- •3.7.4 Использование арифметических операторов в логических выражениях
- •3.7.5 Операторы сравнения
- •3.7.6 Приоритеты логических операторов и операторов сравнения
- •3.8 Мегафункции
- •3.9 Порты
- •3.9.1 Порты файла
- •3.9.2 Использование портов
- •4. Структура проекта
- •4.1 Введение
- •4.2 Заголовок (Title Statement)
- •4.2 Раздел объявления параметров (Parameters Statement)
–
ОГЛАВЛЕНИЕ
1. Введение 3
1.1 Описание устройства с помощью AHDL 4
1.1.1 Как работает AHDL? 4
1.2 Структура AHDL-файла 6
1.2.1 Разделы AHDL-файла 6
1.2.2 Иерархические проекты 8
1.2.3 Подключение библиотек 8
1.3 Текстовый редактор MAX+PLUS II 9
1.3.1 Шаблоны и примеры AHDL 9
1.3.2 Контекстно-зависимая помощь 9
1.3.3 Выделение цветом групп символов 9
1.3.4 Локализация ошибок 10
1.4 Компиляция AHDL-проектов 11
1.5 Советы 12
2. Использование ahdl 13
2.1 Введение 14
2.1.1 Использование чисел 14
2.1.2 Использование констант и вычисленных функций 15
2.1.3 Вставка AHDL-шаблона 17
2.1.4 Примеры AHDL 18
2.2 Комбинационные устройства 19
2.2.1 Описание комбинационных устройств с помощью логических уравнений 19
2.2.2 Объявление узлов 20
2.2.3 Описание групп 21
2.2.4 Использование операторов ветвления 24
Использование оператора IF…THEN 24
Использование оператора CASE 25
Сравнение операторов IF…THEN и CASE 26
2.2.5 Создание декодеров 27
2.2.6 Использование значений «по умолчанию» для переменных 29
2.2.7 Описание активно-низкой логики 31
2.2.8 Двунаправленные выводы 33
2.2.9 Описание тристабильных выводов 34
2.3 Устройства с памятью 36
2.3.1 Использование регистров 36
2.3.2 Определение регистровых входов 38
2.3.3 Создание счетчиков 39
2.4 Графы переходов 42
2.4.1 Описание графа переходов 42
2.4.2 Назначение автомату сигналов синхронизации, сброса, разрешения по входу 44
2.4.3 Кодирование состояний автомата 44
2.4.4 Описание автомата Мура (Moore machine) 45
2.4.5 Описание автомата Мили (Mealy machine) 49
2.5 Создание иерархического проекта 51
2.5.1 Использование не параметризированных функций 51
2.5.2 Использование параметризированных функций 54
2.5.3 Создание и использование макрофункций 55
2.5.4 Экспорт и импорт графов переходов автоматов 56
2.6 Использование LCELL и SOFT примитивов 59
2.7 RAM & ROM 60
2.8 Перегрузка имени оператора 61
61
2.9 Использование циклически генерируемой логики 62
2.10 Использование условно генерируемой логики 63
3. Элементы ahdl 64
3.1 Ключевые слова и идентификаторы 65
3.1.1 Ключевые слова 65
3.1.2 Зарезервированные идентификаторы 65
3.2 Символы 66
3.3 Имена в AHDL, использование кавычек 68
3.4 Группы 69
3.4.1 Способы объявления и записи групп 69
3.4.2 Размеры групп и подгрупп 70
3.5 Числа в AHDL 71
3.6 Арифметические выражения 72
3.7 Логические выражения 74
3.7.1 Логические операторы 74
3.7.2 Использование оператора NOT 75
3.7.3 Использование операторов AND, NAND, OR, NOR, XOR, XNOR 75
3.7.4 Использование арифметических операторов в логических выражениях 76
3.7.5 Операторы сравнения 77
3.7.6 Приоритеты логических операторов и операторов сравнения 78
3.8 Мегафункции 79
3.9 Порты 80
3.9.1 Порты файла 80
3.9.2 Использование портов 80
4. Структура проекта 83
4.1 Введение 84
4.2 Заголовок (Title Statement) 85
4.2 Раздел объявления параметров (Parameters Statement) 86
1. Введение
Этот раздел содержит обзор языка AHDL (Altera Hardware Description Language). В нем приведена структура AHDL-файла, а также отличия AHDL от других языков. Кроме того, этот раздел содержит некоторые советы, следуя которым вы можете научиться использовать AHDL более эффективно.
Раздел состоит из следующих частей:
Описание устройства с помощью AHDL
Структура AHDL-файла
Текстовый редактор MAX+PLUS II
Компиляция AHDL-проектов
Советы