
- •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)
2.3.2Определение регистровых входов
Вы
можете определить регистровые выходы
устройства, описав выходы как триггеры
в разделе объявления переменных.
Устройство, спроектированное примереreg_out.tdf функционирует
точно также как и устройство из примера
2.19, но имеет регистровые выходы.
При присвоении какого-либо значения регистровому входу, это значение присваивается dвходам регистров. Для определения синхронизации используетяс конструкция<имя регистра>.clk.
2.3.3 Создание счетчиков
Счетчик – устройство, считающее импульсы. Некоторые счетчики могут считать как вперед, так и назад (реверсивные счетчики), в них может быть загружена какая либо информация, либо они могут быть сброшены на ноль. Счетчики могут быть описаны с помощью D триггеров (DFF и DFFE) и оператораIFили с помощью функцииlpm_counter.
В примере ahdlcnt.tdfописывается 16-битный счетчик, имеющий входы для сброса и загрузки.
В данном примере 16-и D-триггерам, описанным в разделе объявлений переменных, сопоставлены имена от count0 до count15. Оператор IF используется для описания условий, при которых будет происходить загрузка в регистр.
Устройство, спроектированное в следующем примере, выполняет те же функции что и устройство из примера2.22, но для его описания используется функцияlmp_counter.
На рисунке 2.10показана схема устройстваahdlcnt.tdf (из примера 2.22).
2.4 Графы переходов
Графы переходов, точно также как и таблицы истинности и логические уравнения, легко реализуемы наAHDL. Для описания графа вы всего лишь описать его в таблице, при этом, компиляторMAX+PLUS IIавтоматически проделает следующие операции:
Произведет выбор типа триггера: T или D(TFFилиDFF)
Автоматически произведет соответствующий логический синтез
Для описания автомата при помощи графа переходов вы должны включить в описание вашего устройства на языке AHDLследующие разделы:
Объявление графа переходов (Раздел объявлений)
Описание сигналов управления (Раздел логических уравнений)
Описание условий перехода из одного состояния в другое (Раздел логических уравнений)
В данном разделе будут рассмотрены следующие вопросы:
Описание графа переходов
Назначение автомату сигналов синхронизации (Clock), сброса (Reset), разрешения по входу (Enable)
Кодирование состояний автомата
Описание автомата Мура (Moore machine)
Описание автомата Мили (Mealy machine)
Для
получения более подробной информации
см. разделы:
Экспорт и импорт графов переходов автоматов
2.4.1 Описание графа переходов
Вы можете создать граф переходов, определив имя графа, его состояния, закодировать состояния автомата (необязательное условие), в разделе объявлений.
В
SUBDESIGN
simple ( clk :
INPUT; reset :
INPUT; d :
INPUT; q :
OUTPUT; ) VARIABLE ss:
MACHINE WITH STATES (s0, s1); BEGIN
ss.clk = clk; ss.reset
= reset;
CASE
ss IS
В данном примере описан граф ssнекоторого автомата. Состояния автомата –s0 иs1. Никаких комбинаций выходов этим состояниям при описании графа (Разел описаний) не сопоставлено.
Уравнения перехода определяют условия, по которым автомат переходит из одного состояния в другое. Для определения условий перехода обычно используется оператор CASEили таблица истинности(Truth table).
Вы можете определить сигналы, которые будут подаваться на выходы устройства, используя операторы IFилиCASE.
На
рисунке 2.11показана схема
устройстваsimple.tdf
(из примера 2.24).
Для
получения более подробной информации
см. разделы:
Устройства с памятью
Экспорт и импорт графов переходов автоматов
Описание автомата Мили (Mealy machine)
Описание автомата Мура (Moore machine)