
- •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.4 Локализация ошибок
В случае обнаружения ошибок МАХ+PLUS II сообщает разработчику об этом и указывает место их нахождения в исходном файле. При компиляции проекта окно утилиты Message Processor содержит информацию об ошибках и предупреждениях. Вы можете определить местонахождение ошибки в исходном файле, дважды щелкнув правой кнопкой мыши на сообщении. Если ошибка была обнаружена в AHDL-файле, то откроется окно текстового редактора, содержащее текст на AHDL и курсор будет перемещен на ошибочную позицию.
Более
подробную информацию по этому вопросу
вы можете получить, прочитав раздел
«Locating the Source of a Message» помощи
поMAX+PLUS II.
1.4 Компиляция ahdl-проектов
В САПР MAX+PLUS II интегрирован компилятор AHDL-файлов. Когда вы закончили создание AHDL-файла вы можете осуществить проверку синтаксиса выбрав команду Project Save & Check (меню File), или скомпилировать весь проект, выбравProject Save & Compile (меню File). После того как компиляция будет успешно завершена, вы сможете провести проверку (сымитировать работу) вашего устройства.
Более
подробную информацию по этому вопросу
вы можете получить, прочитав разделы:
«Creating a Default Include File» помощи поMAX+PLUS II.
Использование AHDL
1.5 Советы
Используйте возможность выделения цветом некоторых групп символов цветом, доступную в текстовом редакторе. Это помогает избежать многих синтаксических ошибок в коде AHDL.
Используйте константы вместо многократного повторения однотипных выражений, это позволяет избежать многих ошибок и повышает читабельность кода.
Не используйте конструкцию If….Then большой вложенности, если она может быть заменена конструкцией Case.
Когда вы работаете в текстовом редакторе MAX+PLUS II каждая строка не может быть длиннее 255 символов. Рекомендуемая длина строки – строка которая по ширине помещается на экране.
2. Использование ahdl
После прочтения данного раздела, вы получите некоторые практические навыки описания устройств на языке AHDL. Все примеры, рассмотренные в разделе, находятся в каталоге\max2work\ahdl, созданном во время установки САПР.
Раздел состоит из следующих частей:
Введение
Описание комбинационных устройств
Описание устройств с памятью
Описание устройств с помощью графов состояний
Создание иерархических проектов
Перегрузка оператора
Использование циклов
Условно генерируемая логика
Использование LCELLиSOFTпримитивов
Создание RAM иROM устройств
2.1 Введение
AHDL – язык, предназначенный для описания различных цифровых устройств. Вы можете использовать встроенный редактор MAX+PLUS II для создания AHDL-файла (.tdf – text design file) или воспользоваться любым другим текстовым редактором. После создания AHDL-файла он может быть интегрирован в общую иерархию наряду с другими файлами проекта.
В данном разделе будут рассмотрены следующие вопросы:
Использование чисел
Использование констант и вычисленных функций
Вставка AHDL шаблона
Примеры описания устройств с помощью AHDL
2.1.1 Использование чисел
Числа в языке используются в качестве констант в логических выражениях и уравнениях, в арифметических выражениях. AHDL позволяет использовать следующие системы счисления для представления чисел: десятичную, восьмеричную, шестнадцатеричную, двоичную.
Следующий
пример (decode1.tdf) реализует декодер,
устанавливающий свой выход в состояние
логической единицы в том случае, если
адрес на его входах равен 370h.
В этом примере десятичные числа 15 и 0 используются для указания ширины адресной шины. Шестнадцатеричное число H”0370”используется для указания адреса.
Для получения более подробной информации см. разделы:
Числа в AHDL
Использование констант и вычисленных функций