Проектирование AHDL

Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 23:04, курсовая работа

Краткое описание

AHDL — проприетарныйязык описания аппаратуры от AlteraCorporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада-подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera.
Недостаток AHDL вегопроприетарности. Преимущество AHDL в том, что все конструкции языка синтезируемы. В сравнении с Verilog AHDL как язык ассемблера в сравнении с языком высокого уровня: в AHDL больше контроля, но меньше высокоуровниевой поддержки.
Программируемые логические интегральные схемы (ПЛИС), представляют собой очень удобную элементную базу для разработки электронной аппаратуры. ПЛИС представляют собой массив вентилей, у которых программируются связи и функции, причем все процедуры по настройке структуры ПЛИС можно выполнить непосредственно на столе разработчика.

Вложенные файлы: 1 файл

Курсовая ПЛИС Леша.docx

— 72.45 Кб (Скачать файл)

МИЭТ

Курсовая работа

по курсу «Проектирование  ПЛИС»

Вариант №2

Выполнил: Атюков А.В.

Группа ЭКТ-43

Проверил: Бутов А.С.

 

 

 

 

 

 

 

 

 

 

 

 

Москва

2011


 

Теоретическая часть

AHDL — проприетарныйязык описания аппаратуры от AlteraCorporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада-подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera.

Недостаток AHDL вегопроприетарности. Преимущество AHDL в том, что все  конструкции языка синтезируемы. В сравнении с Verilog AHDL как язык ассемблера в сравнении с языком высокого уровня: в AHDL больше контроля, но меньше высокоуровниевой поддержки.

Программируемые логические интегральные схемы (ПЛИС), представляют собой очень удобную элементную базу для разработки электронной  аппаратуры. ПЛИС представляют собой  массив вентилей, у которых программируются  связи и функции, причем все процедуры  по настройке структуры ПЛИС можно  выполнить непосредственно на столе  разработчика. По своим возможностям, по выполняемым функциям ПЛИС практически  не чем не отличаются от обычных, специализированных БИС. Однако, в отличие от ПЛИС, изготовление специализированной БИС нужно заказывать на электронной фабрике, что стоит  достаточно дорого. 

Поэтому, Несмотря на то, что  ПЛИС уступают заказным схемам по быстродействию в 3¸5 раз, а по расходу кремния в 7¸10 раз, они очень популярны среди разработчиков аппаратуры, поскольку позволяют в несколько раз сократить сроки разработки аппаратуры, улучшить качество её отладки.

Очень популярны ПЛИС в  России. Это объясняется тем, что  Российские разработчики аппаратуры практически  не имеют возможности заказывать изготовление специализированных БИС  за рубежом. Уровень же отечественных  предприятий, выпускающих микросхем  очень сильно отстаёт от мирового. В такой ситуации ПЛИС являются той  самой «палочкой-выручалочкой», позволяющей  Российским разработчикам создавать  современную аппаратуру. По этой причине  практически все специализированные узлы аппаратуры систем связи, обработки  сложной графической информации, специализированных вычислителей разрабатываются  в России исключительно на базе ПЛИС.

 В России наиболее  популярны ПЛИС фирм Altera и Xilins С помощью этих микросхем можно  достаточно быстро выполнять  разработку цифровой аппаратуры  самого различного спектра. Наиболее  доступными являются все-таки  ПЛИС фирмы Altera. Фирма Altera проводит  достаточно демократическую политику  на Российском рынке. Имеется  небольшая, но достаточно эффективная  дилерская сеть. Заинтересованным  пользователям Фирма Altera предлагает  бесплатные средства проектирования  – САПР MAX+PLUSII (полная версия) и  САПР QUARTUS (начальная редакция). С  помощью этих бесплатных средств  можно разрабатывать  достаточно  серьёзные проекты БИС. Если  учесть, что ПЛИС фирмы более  дешевые и доступные, то становиться  понятным, что большинство разработок  в России  используют ПЛИС Altera.

Фирма Altera предоставляет  широкий набор различных ПЛИС для применения в аппаратуре различного назначения. Эти ПЛИС можно разбить  на 3 основные группы (классические PLD, ПЛИС архитектуры MAX и ПЛИС архитектуры FLEX).

Классические  PLD представляют собой ПЛИС небольшого  объёма, выполненные  на основе программируемый логических матриц (ПЛМ). Имеют степень интеграции несколько сотен вентилей и  используются для разработки БИС, реализующих  простые функции.

ПЛИС архитектуры МАХ  являются более сложными микросхемами. Они состоят из совокупности  несколько PLD, объединённых матрицей коммутации.  По степени интеграции ПЛИС архитектуры  МАХ  могут достигать 20000 вентилей. Они применяются дляразработке  аппаратуры средней сложности.

ПЛИС архитектуры FLEХ  являются самыми сложными микросхемами, построенными на базе системы программируемых  логических блоков.  По степени интеграции ПЛИС архитектуры FLEХ  достигают  объёма в несколько миллионов  вентилей. На их основе возможно создавать  даже программируемые системы на кристалле (ПСНК).

С учетом вышесказанного, курс «проектирование на ПЛИС» ориентирован на изучение проектирования ПЛИС применительно  к средствам проектирования ПЛИС Altera. Базовой системой проектирования выбрана доступная САПР ПЛИС –  «MAX+PLUSII».

Как работает AHDL?

Операторы и элементы AHDL являются мощным, многогранным и легким в использовании  средством. Вы можете создавать весь иерархический проект с помощью AHDL или смешивать TDF файлы  с другими типами файлов в один проект.

Хотя Вы можете воспользоваться  любым текстовым редактором для  создания TDF файлов, но только текстовой  редактор системы MAX+PLUS II дает Вам возможность  воспользоваться его преимуществами, когда Вы вводите, компилируете и  отлаживаете Ваш AHDL проект.

AHDL проект легко вставить  в иерархию проекта. В текстовом  редакторе Вы можете автоматически  создавать символ, представляющий TDF файл и вводить его в графический  файл проекта (GraphicDesignFile (.gdf)). Аналогичным  образом Вы можете объединять  заказные функции и свыше 300 мегафункций и макрофункций, поставляемых  Альтерой, включая функции библиотеки  параметрических модулей (LPM), в   любой TDF файл.

Вы можете использовать команды меню 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 файле, давая ей дескриптивное  имя на число или текстовую  строку. Аналогичным образом Вы можете использовать оценочную функцию, давая  ей дескриптивное имя на арифметическое выражение. Это  имя, которое можно  использовать по всему файлу, может  быть более информативным и читаемым, чем число, строка или арифметическое выражение. Например, числовая константа UPPER_LIMIT более информативна, чем число 130.

Константы и оценочные  функции особенно полезны, если одно и тоже число, строка или арифметическое выражение повторяются несколько  раз в файле: если оно изменяется, то требуется изменить только один оператор. В AHDL константы реализуются  с помощью оператора Constant, а оценочные функции с помощью оператора Define.

AHDL снабжен также предопределенными  оценочными функциями USED, CEIL, и  FLOOR.

Файл 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,  которая гарантирует минимальную  ширину порта в разделе Subdesign. 

 

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[];

Информация о работе Проектирование AHDL