Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 23:04, курсовая работа
AHDL — проприетарныйязык описания аппаратуры от AlteraCorporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада-подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera.
Недостаток AHDL вегопроприетарности. Преимущество AHDL в том, что все конструкции языка синтезируемы. В сравнении с Verilog AHDL как язык ассемблера в сравнении с языком высокого уровня: в AHDL больше контроля, но меньше высокоуровниевой поддержки.
Программируемые логические интегральные схемы (ПЛИС), представляют собой очень удобную элементную базу для разработки электронной аппаратуры. ПЛИС представляют собой массив вентилей, у которых программируются связи и функции, причем все процедуры по настройке структуры ПЛИС можно выполнить непосредственно на столе разработчика.
МИЭТ |
Курсовая работа |
по курсу «Проектирование ПЛИС» Вариант №2 |
Выполнил: Атюков А.В. Группа ЭКТ-43 Проверил: Бутов А.С.
|
Москва 2011 |
Теоретическая часть
AHDL — проприетарныйязык описания аппаратуры от AlteraCorporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада-подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera.
Недостаток AHDL вегопроприетарности.
Преимущество AHDL в том, что все
конструкции языка
Программируемые логические интегральные схемы (ПЛИС), представляют собой очень удобную элементную базу для разработки электронной аппаратуры. ПЛИС представляют собой массив вентилей, у которых программируются связи и функции, причем все процедуры по настройке структуры ПЛИС можно выполнить непосредственно на столе разработчика. По своим возможностям, по выполняемым функциям ПЛИС практически не чем не отличаются от обычных, специализированных БИС. Однако, в отличие от ПЛИС, изготовление специализированной БИС нужно заказывать на электронной фабрике, что стоит достаточно дорого.
Поэтому, Несмотря на то, что ПЛИС уступают заказным схемам по быстродействию в 3¸5 раз, а по расходу кремния в 7¸10 раз, они очень популярны среди разработчиков аппаратуры, поскольку позволяют в несколько раз сократить сроки разработки аппаратуры, улучшить качество её отладки.
Очень популярны ПЛИС в
России. Это объясняется тем, что
Российские разработчики аппаратуры практически
не имеют возможности заказывать
изготовление специализированных БИС
за рубежом. Уровень же отечественных
предприятий, выпускающих микросхем
очень сильно отстаёт от мирового.
В такой ситуации ПЛИС являются той
самой «палочкой-выручалочкой», позволяющей
Российским разработчикам создавать
современную аппаратуру. По этой причине
практически все
В России наиболее
популярны ПЛИС фирм Altera и Xilins
С помощью этих микросхем
Фирма Altera предоставляет широкий набор различных ПЛИС для применения в аппаратуре различного назначения. Эти ПЛИС можно разбить на 3 основные группы (классические PLD, ПЛИС архитектуры MAX и ПЛИС архитектуры FLEX).
Классические PLD представляют собой ПЛИС небольшого объёма, выполненные на основе программируемый логических матриц (ПЛМ). Имеют степень интеграции несколько сотен вентилей и используются для разработки БИС, реализующих простые функции.
ПЛИС архитектуры МАХ являются более сложными микросхемами. Они состоят из совокупности несколько PLD, объединённых матрицей коммутации. По степени интеграции ПЛИС архитектуры МАХ могут достигать 20000 вентилей. Они применяются дляразработке аппаратуры средней сложности.
ПЛИС архитектуры FLEХ являются самыми сложными микросхемами, построенными на базе системы программируемых логических блоков. По степени интеграции ПЛИС архитектуры FLEХ достигают объёма в несколько миллионов вентилей. На их основе возможно создавать даже программируемые системы на кристалле (ПСНК).
С учетом вышесказанного, курс «проектирование на ПЛИС» ориентирован на изучение проектирования ПЛИС применительно к средствам проектирования ПЛИС Altera. Базовой системой проектирования выбрана доступная САПР ПЛИС – «MAX+PLUSII».
Как работает AHDL?
Операторы и элементы AHDL являются мощным, многогранным и легким в использовании средством. Вы можете создавать весь иерархический проект с помощью AHDL или смешивать TDF файлы с другими типами файлов в один проект.
Хотя Вы можете воспользоваться
любым текстовым редактором для
создания TDF файлов, но только текстовой
редактор системы MAX+PLUS II дает Вам возможность
воспользоваться его
AHDL проект легко вставить
в иерархию проекта. В
Вы можете использовать команды меню Assign или Assignment&ConfigurationFile (.acf) для создания ресурса и выбора устройства. Вы можете также проверить синтаксис и выполнить полную компиляцию для отладки и прогона Вашего проекта. Любые появляющиеся ошибки автоматически локализуются процессором сообщений (MessageProcessor ) и выделяются в окне текстового редактора.
Использование чисел
Числа применяются для определения значений констант в булевских выражениях и уравнениях, в арифметических выражениях, а также значения параметров. AHDL поддерживает все комбинации десятичных, двоичных, восьмеричных и шестнадцатеричных чисел.
Файл decode1.tdf, приведенный ниже, описывает дешифратор адреса, который генерирует активный высокий сигнал разрешения кристалла, когда адрес равен 370 Hex.
SUBDESIGN decode1
(
address[15..0] : INPUT;
chip_enable : OUTPUT;
)
BEGIN
chip_enable = (address[15..0] == H"0370");
END;
В этом простом примере десятичные числа 15 и 0 используются для определения битов шины адреса. Шестнадцатеричное число H"0370" определяет декодируемый адрес.
Использование констант и оценочных функций
Вы можете использовать
константу в AHDL файле, давая ей дескриптивное
имя на число или текстовую
строку. Аналогичным образом Вы можете
использовать оценочную функцию, давая
ей дескриптивное имя на арифметическое
выражение. Это имя, которое можно
использовать по всему файлу, может
быть более информативным и
Константы и оценочные
функции особенно полезны, если одно
и тоже число, строка или арифметическое
выражение повторяются
AHDL снабжен также
Файл decode2.tdf, приведенный ниже, имеет туже самую функциональность как и decode1.tdf, но использует константу IO_ADDRESS вместо числа H"0370".
CONSTANT IO_ADDRESS = H"0370";
SUBDESIGN decode2
(
a[15..0] : INPUT;
ce : OUTPUT;
)
BEGIN
ce = (a[15..0] == IO_ADDRESS);
END;
Вы можете определить константы и оценочные функции с помощью арифметических выражений. Компилятор оценивает арифметические операторы в арифметическом выражении и сокращает их до числовых значений. Логика для этих выражений не создается.
Файл strcmp.tdf, приведенный ниже, определяет константу FAMILY и использует ее в операторе Assert для проверки того, является ли текущее семейство устройств FLEX 8000.
PARAMETERS
(
DEVICE_FAMILY
% DEVICE_FAMILY являетсяпредопределеннымпараме
);
CONSTANT FAMILY = "FLEX8000";
SUBDESIGN strcmp
(
a : INPUT;
b : OUTPUT;
)
BEGIN
IF (DEVICE_FAMILY == FAMILY) GENERATE
ASSERT
REPORT "Обнаружена компиляция для FLEX8000 "
SEVERITY INFO;
b = a;
ELSE GENERATE
ASSERT
REPORT " Обнаружена компиляция для % семейства"
DEVICE_FAMILY
SEVERITY ERROR;
b = a;
END GENERATE;
END;
Файл minport.tdf, приведенный
ниже, определяет оценочную функцию
MAX, которая гарантирует
PARAMETERS (WIDTH);
DEFINE MAX(a,b) = (a > b) ? a : b;
SUBDESIGN minport
(
dataA[MAX(WIDTH,0)..0] : INPUT;
dataB[MAX(WIDTH,0)..0] : OUTPUT;
)
BEGIN
dataB[] = dataA[];
END;
Комбинаторная логика
Комбинационная логика реализуется на языке AHDL с помощью булевых выражений и уравнений, таблиц истинности, и множества мега и макрофункций. Примеры комбинационных функций включают дешифраторы, мультиплексоры и сумматоры.
Булевы выражения являются
набором узлов, чисел, констант и
других булевых выражений, разделенных
операторами и/или
Файл boole1.tdf, приведенный ниже, демонстрирует два простых булевых выражения, представляющие два логических вентиля.
SUBDESIGN boole1
(
a0, a1, b : INPUT;
out1, out2 : OUTPUT;
)
BEGIN
out1 = a1 & !a0;
out2 = out1 # b;
END;
В этом файле выход out1 является логическим И входов а1 и инверсии а0, а выход out2 логическим ИЛИ out1 и b. Порядок следования их в файле не важен.
Практическая часть.
Вариант №2.
Задание:
Разработать в САПР МАХ+PLUS2 схему двоично-десятичного индикатора расстояния до цели, измеряемой гидролокатором. Вычисление производить на основании анализа времени задержки сигнала, отраженного от цели. Скорость звука в воде 1.5 км/сек.
Выходы CLK – опорная частота 10Мгц.
T1,T2 – времена начала и окончания излучаемого импульса гидролокатора.
Р1,Р2 – времена начала и окончания импульса отраженного эхосигнала.
Выходы V[19..0] – расстояние до цели, м.
Решение:
Входами будут Tи P–излучаемые и отраженные импульсы, а так же CLKс опорной частотой 10 МГц.
Чтобы задать частоту 10 МГц, необходимо задать период сигнала CLK равным 100 нс. Для этого сделаем шаг сетки равным 50 нс.
За один такт (100 нс) сигнал проходит расстояние, равное 0,00015 метров. Чтобы преодолеть расстояние, равное 1 метру, сигналу необходимо пройти 6667 тактов. Следовательно, можно сделать счетчик, считающий до 6667, выход Р которого соединить с входом CLKдвоично-десятичного счетчика. Таким образом, на выходе схемы мы получим расстояние в метрах.
Структурная схема проекта представлена на рисунке (см. Рисунок 1).DFFтриггер представляет собой элемент управления: как только на вход Т поступает 1, на выходе Qтриггера DFF появляется 1, и запускается работа счетчиков. Как только на вход Р поступает 1, эта 1 инвертируется в 0 и сбрасывает выход Q триггера DFF в значение 0. Таким образом, работа счетчиков прекращается.
Элемент counter6667 – это двоичный счетчик, считающий до 6667 тактов. Всякий раз, когда счетчик counter6667 проходит цикл счета, на его выход P поступает 1 – сигнал переноса в старший разряд. Если мы соединим этот выход Р с входом CLK двоично-десятичного счетчика counterOfmeters, то этот двоично-десятичный счетчик будет считать число циклов, пройденных счетчиком counter6667. А так как за 6667 тактов сигнал проходит 1 метр, получаем, что счетчик counterOfmetersсчитает расстояние в метрах, пройденное сигналом радиолокатора.
Элемент counterOfmetersсобран на базе элементов «t210», описанных в учебно-методическом пособии для самостоятельной работы по курсу «Проектирование на ПЛИС».
Рисунок 1 – Структурная схема
Листинг AHDL кода и результаты моделирования представлены в Приложении к курсовой работе.
Приложение.
Листинг проекта.
Листингфайла «radar.tdf»:
include "counterofmeters.inc";
include "counter6667.inc";
SUBDESIGN RADAR
( CLK,TP1,TR1 :INPUT;
V[19..0],P:OUTPUT;)
Variable
c6667: counter6667;
cmeters: counterofmeters;
TS:DFF;
BEGIN
TS.D=VCC;
TS.CLK=TP1;
TS.CLRN=!TR1;
c6667.CLK=CLK&TS.Q;
c6667.R = VCC;
cmeters.CLK = c6667.P;
V[]=cmeters.V[];