Работа в среде системы автоматизированного проектирования "Max+Plus II"

Знакомство с особенностями работы в среде системы автоматизированного проектирования "Max+Plus II". Анализ этапов разработки специализированных цифровых устройств. Характеристика схемы после изменения адресов. Рассмотрение способов настройки сумматоров.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык русский
Дата добавления 03.01.2014
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1.Задание

автоматизированный проектирование сумматор

При разработке специализированных цифровых устройств все чаще используют программируемые логические интегральные схемы (ПЛИС), которые удачно дополняя и заменяя микропроцессорные средства стали широко использоваться в различных областях науки и техники. Существует всего несколько крупных производителей ПЛИС, одним из которых является фирма Altera. Для разработки систем Altera предлагает две системы автоматизированного проектирования (САПР): «QuartusII» и «Max+PlusII». Наиболее простым и понятным для изучения возможностей ПЛИС является САПР «Max+PlusII». Требуется используя данную САПР изучить работу существующей схемы, внести в нее изменения, отладить и провести моделирование процессов, происходящих в схеме, что докажет ее работоспособность.

Исходная схема представлена на рисунке 1:

Рисунок 1. Исходная схема

Изменения, которые следует ввести в схему, представлены в таблице 1:

Таблица 1. Необходимые изменения в схеме.

Вариант

7

Адрес RA

7

Адрес RB

8

Адрес дискретных входов

9

Тип логической функции

-RA+RB-SA

Адрес результата логической функции Y

1

Блокировка

Запись RA

По какому условию

RB == 0

2.Анализ исходной схемы

2.1 Анализ примененных в исходной схеме устройств

Рассмотрим работу исходной схемы. Для этого сначала рассмотрим работу каждого устройства по отдельности.

Ш Устройство 74377, внешний вид представлен на рисунке 2.

Рисунок 2. Устройство 74377

Данное устройство представляет собой регистр-защелку с восьмиразрядной шиной входных данных (D[7..0]), восьмиразрядной шиной выходных данных (Q[7..0]), входом ENдля выбора управляемой микросхемы и входом CLK, который по переднему фронту подаваемого сигнала копирует («защелкивает») данные со входной шины в выходную. Вход ENосуществляет блокировку сигнала CLKи не позволяет сохранить регистру входное значение. Активное значение для входа EN (выбрать регистр текущим) является логический «0», то есть подав «1» на вход ENмы блокируем запись в регистр.

Ш Устройство 74154, внешний вид представлен на рисунке 3.

Рисунок 3. Устройство 74154

Данное устройство представляет собой дешифратор с четырехразрядной шиной адреса и максимальными шестнадцатью управляемыми выходами. Подав на вход определенный адрес (от 0b0000 до 0b1111),получим активное логическое значение управляемого выхода, номер которого соответствует адресу. Активное выходное значение для данного устройства это логический «0», что удобно, так как управлять будем описанным выше устройством 74377, а вход ENу него имеет как раз активное значение - «0». Также имеются два входа G1Nи G2N, предназначенные для отключения микросхемы на время. Подав логическую «1» на данный вход мы отключим микросхему и все управляемые выходы примут неактивное состояние. Это также удобно, так как нет необходимости переключать дешифратор на адрес с «висящим» управляющим выходом для отмены выбора текущего выбранного устройства.

Ш Логические элементы: 2ИЛИ-НЕ, 2ИЛИ и НЕ, представлены на рисунке 4.

Рисунок 4. Элементы 2ИЛИ-НЕ, 2ИЛИ и НЕ (слева - направо).

Возможные логические состояния на входах и выходах элементов представлены в таблице 2.

Таблица 2. Таблица состояний логических элементов.

2ИЛИ-НЕ

2ИЛИ

НЕ

Вход 1

Вход 2

Выход

Вход 1

Вход 2

Выход

Вход

Выход

0

0

1

0

0

0

0

1

0

1

0

0

1

1

1

0

1

0

0

1

0

1

1

1

0

1

1

1

Ш Буфер с тремя состояниями, представлен на рисунке 5.

Рисунок 5. Буфер с тремя состояниями.

Данный элемент представляет собой устройство, формирующее на выходе такое же логическое значение, что и на входе при подаче на управляющий вход (на рисунке - сверху) логического значения «1». При логическом «0» на управляющем входе на выходе формируется третье состояние «Z - состояние», когда выход имеет бесконечно большое выходное сопротивление. Это позволит подключить к шине несколько устройств - «мастеров».

Элементы ввода-вывода

Данные элементы позволяют задать входные и выходные шины всей схемы. САПР, формируя конечное устройство, задает в соответствие каждому из элементов ввода/вывода требуемое количество реальных ножек ПЛИС.

2.2 Анализ работы исходной схемы

Работа схемы проиллюстрирована на рисунке 6.

Рисунок 6. Осциллограмма работы исходной схемы

На схеме входные сигналы CS, WRи RD являются управляющими и только изменение значения на данных входах приводит к изменениям в состояниях устройств схемы. Поэтому за поведением схемы проследим по изменениям управляющих сигналов. Все изменения внесем в таблицу 3.

Таблица 3. Управляющие сигналы и соответствующие изменения в состояниях устройств.

Вр, нсек

Управ. сиг.

Установившееся состояние схемы.

0

CS == 1

WR == 1

RD == 1

Адрес на входе == 0, однако благодаря значению «1» на входе CSдешифратора устройство с адресом 0 не выбрано. На всех регистрах значение нулевое, так как САПР так настраивает.

200

CS ==0

WR == 0

Дешифратор активизировался, на выходе с адресом 0 образовалось активное значение, что включило регистр RA. Задний фронт сигнала WR ни на что не повлиял.

300

WR == 1

Передний фронт сигнала WRкопирует значение из входной шины данных D[7..0] в регистр RA.

400

CS == 1

Отменили выбор регистра RA.

600

CS ==0

WR == 0

Дешифратор активизировался, на выходе с адресом 1 образовалось активное значение, что включило регистр RB. Задний фронт сигнала WRни на что не повлиял.

700

WR == 1

Передний фронт сигнала WRкопирует значение из входной шины данных D[7..0] в регистр RB.

800

CS == 1

Отменили выбор регистра RA.

1000

CS == 0

RD == 0

Дешифратор актив., на выходе с адресом 2 образовалось активное значение, что на входеEN2 одного из элементов 2ИЛИ-НЕ создало логический «0». Задний фронт сигнала RDсфор. на втором входе (RD)элемента 2ИЛИ-НЕ логический «0». На выходе элемента 2ИЛИ-НЕ образовалась «1», что подало на шинуQ[7..0] значение логической функции Y (RAилиRB).

1200

CS == 1

Отменили выбор регистра RA.

1400

CS == 0

Дешифратор активизировался, на выходе с адресом 3 образ. активное значение, включающее регистр RSA.

1500

RD == 0

Задний фронт сигнала RDкопирует значение из входной шины данных SA[7..0] в регистр RSA.Так же значение из регистра RSA выдается на шину Q[7..0].

1600

CS == 1

RD == 1

Дешифратор деактивировался, передний фронт сигнала RDне повлиял на регистр RSA и отменил вывод значения RSAна выход Q[7..0].

По таблице видно, что сначала копируется значение из шины данных D[7..0] в регистрRA, затем новое значение из D[7..0] копируется вRB, считывается результат логической функции Y, затем копируется результат из шины SAв регистр RSA.

2.3 Внесение изменений в исходную схему

Изменение адресов регистров RA, RB, регистра дискретных входов RSA и результата логической функции Y.

Необходимо задать для регистра RAадрес 7, для регистра RBадрес 8, для регистра RSAадрес 9 и для результата логической функции Y адрес 1. Для этого изменим подписи на входах ENрегистров и входах элементов 2ИЛИ-НЕ.Результат изменения показан на рисунке 7.

Рисунок 7. Схема после изменения адресов

Рисунок 8. Осциллограмма работы устройства после изменения адресов.

Как видно по осциллограмме работы схемы (рисунок 8), от изменения адресов результаты, по сравнению с рисунком 6, не изменились.

2.4 Изменение логической функции Y

В исходной схеме представлена логическая функция Y = (RAили RB). Применены 8 логических элементов 2ИЛИ. Новая логическая функция имеет вид: Y = -RA+RB-SA. Как видим, операция ИЛИ нам не требуется, поэтому можем смело удалить всю исходную логическую функцию. Новая функция имеет операции суммирования и вычитания, что потребует применения сумматоров. Однако сумматоры это громоздкие элементы, поэтому всю схему разместим на отдельном листе и будем отлаживать отдельно от исходной схемы.

Числа RA, RBи SA, над которыми и проводится операция вычисления результата функции Y-примем положительными, так как в задании не упоминается наличие старшего знакового бита у исходных значений. Это значит, что результирующее числоY может иметь пределы от -510 (RA = 255, SA = 255, RB = 0), до 255 (RA = 0, SA = 0, RB = 255). Из этого следует, что необходимо применить либо 10 разрядный сумматор, со старшим (9-ым) знаковым битом и с битом переполнения результата (бит 8), либо использовать 8 разрядный, а знаковый бит и бит переполнения генерировать, используя биты переполнения сумматора. Используем 2-й метод, так как он не требует расширения шины сумматоров и экономит пространство ПЛИС.

Использование 2-х сумматоров, с двумя операндами каждая, на выходе даст либо положительный, либо отрицательный результат. Отрицательный результат на выходе сумматора будет представлен либо обратным, либо дополнительным кодом, что на шине данных будет иметь непонятный результат (например Y = -12 на шине данных будет либо 243 для обратного кода, либо 244 для дополнительного кода).Для перевода результата в прямой код применим дополнительный сумматор. Положительное значение на выходе будет представлено истинным значением, поэтому изменений не требует. Знак и наличие переполнения будем определять применяя логические элементы «И ИЛИ», а результаты выведем как отдельные выходные линии. Полученная схема вычисления результата функции Yпредставлена на рисунке 9. Рассмотрим подробнее элемент «сумматор» и работу схемы в целом.

Рисунок 9. Схема вычисления результата функции Y

Ш Сумматор. Представляет собой HDL код, сформированный в виде графического элемента. Имеет множество входов, выходов, а также управляющих параметров. Входные линии представлены в таблице 3, выходные - в таблице 4, а управляющие параметры - в таблице 5.

Таблица 3. Входные линии.

Линия

Необ.

Описание

Комментарии

cin

Нет

Перенос к биту младшего разряда

Если не указан, то принимается равным 0.

dataa[]

Да

Первое слагаемое

Шина данных с разрядностью LPM_WIDTH

datab[]

Да

Второе слагаемое

Шина данных с разрядностью LPM_WIDTH

add_sub

Нет

Если == 0, то вып.:DA + DB + cin.

Если == 1, то выполнится:

DA - DB + cin - 1

Если не указан, принимается равным 0. Не применять совместно с LPM_DIRECTION.

clock

Нет

Синхронизация

Вход син. для конвейерных операция. Вход должен быть подключен к линии син., если LPM_PIPELINEимеет значение, отличное от 0.

clken

Нет

Разрешение clock

Если не указан, принимается равным 1.

aclr

Нет

Асинх. сброс для кон. оп.

Конвейер инициализируется неопределенным значением. Сброс к нулевым значениям можно произвести в любой момент времени.

Таблица 4. Выходные линии.

Линия

Необходим

Описание

Комментарии

result[]

Да

Результат вычисления

Шина данных с разрядностью LPM_WIDTH

cout

Нет

Перенос со старшего разряда.

Если overflow исп., не прим.. Прим. в ос. при беззнаковых оп..

overflow

Нет

Результат превысил максимальное значение

Если cout исп., не применять. Прим. в основном при зн. оп.

Таблица 5. Конфигурационные параметры.

Линия

Необходим

Комментарии

LPM_WIDTH

Да

Разрядность входных и выходных шин данных

LPM_DIRECTION

Нет

Значения «ADD», «SUB» или «UNUSED».По умолчанию - «DEFAULT». Если DEFAULT, то исп. add_sub.

LPM_REPRESENTATION

Нет

Тип входных значений: «SIGNED» или «UNSIGNED».По умолчанию - SIGNED.

LPM_PIPELINE

Нет

Задержка в тактах перед получением результата result[]. По умолчанию 0.

ONE_INPUT_IN_CONSTANT

Нет

Принимаетзначения: «YES», «NO» и «UNUSED». Позволяет оптимизировать генерируемый код в случае применения констант. По умолчанию NO.

MAXIMIZE_SPEED

Нет

Задает способ оптимизации кода в сторону скорости, либо использованной области. Переопределяет значение «Optimize», задаваемое в меню.

Настроим сумматоры. Сконфигурируем сумматор со следующими параметрами:

Как видно, мы задали входные данные восьмиразрядными беззнаковыми, что и требовалось по заданию. А LPM_DIRECTION зададим извне, с использованием входа add_sub.Такой выбор обоснован прежде всего учебным характером задания, то есть нет необходимости оптимизировать код.

Сконфигурируем выходные линии (укажем используемые выходы):

Хоть и в описании указано, что overflow не рекомендуется применять с беззнаковыми числами, все же мы применим именно его, так как он нам дает более удобные значения, нежели cout.

Cконфигурируем входные линии, а именно зададим используемость входов:

Кроме обязательных входов дополнительно применим входы cin и add_sub. С помощью add_subбудем управлять выполняемой сумматором операцией, а cin позволит нам задавать тип кода: обратный либо дополнительный. (Обратный код - отрицательные числа побитово инвертируются, а положительные не меняются. Дополнительный код - отрицательные числа побитово инвертируются, затем добавляется «1» к результату, положительные числа не меняются). Как известно, обратный код требует прибавления к результату операции переноса со старшего разряда, если таковой имеется, поэтому применим дополнительный код. Выполняемая операция будет выглядеть следующим образом:

В зависимости от значения add_subпроизойдет сложение прямого либо обратного кода Bи прибавление cin. Если сложение, то cin должен быть равен «0», а если вычитание, то cin должен равняться «1».

На рисунке 9 видно, что 2 сумматора имеют «0» на входе add_sub, и «1» на входе cin, из чего следует, что результат будет представлен в дополнительном коде и выглядит как (A-B)-C.

Результат получен, он представляет из себя восьмиразрядное значение в дополнительном коде. Чтобы его перевести в понятный прямой код, необходимо определить знак, и если он отрицательный, вычесть результат из 0 той же разрядности. Поэтому добавим в схему дополнительный сумматор, выполняемой операцией которого будет управлять комбинационная схема определения знака результата функции. А константу 0 будем подавать от отдельного устройства LPM_CONSTANT.

Осталось определить знак результата и наличие переполнения (результат меньше «-255»). Значение на выходе overflowподчиняется формуле .cout для положительных чисел == 1 только когда A+B>= 256, для отрицательных == 1 - только когда A-B>=0.Из этого следует, что overflow для положительных чисел == 1 только когда A+B>= 256, а для отрицательных - только когда A-B<0.

Наличие overflow либо при первом, либо при втором вычитании позволит судить об отрицательности результата, а если overflow есть и при первом, и при втором вычитании, значит произошло переполнение разрядной сетки операнда.

Покажем все это на примерах.

Пример 1: Y = 2 - 1(вычитание в дополнительном коде, результат положительный):

Результат положительный (имеется перенос), в прямом коде. Наличие переноса сформирует на выходе overflow логический»0».

Пример 2: Y = 2 - 2 (вычитание в дополнительном коде, результат равен нулю):

Результат положительный (имеется перенос), в прямом коде. Наличие переноса сформирует на выходе overflow логический»0».

Пример 3: Y = 1 - 2 (вычитание в дополнительном коде, результат отрицательный):

Результат отрицательный (переноса нет), в дополнительном коде. Наличие переноса сформирует на выходе overflow логическую»1».

Пример 4: Y = -255 - 2 (первый сумматор дал отрицательный результат):

Результат отрицательный, наличие переноса текущего и предыдущего вычитаний говорит о переполнении разрядной сетки, и об отрицательном знаке результата.

3.Добавление функции блокировки

По заданию необходимо блокировать запись в регистр RA при выполнении условия (RB == 0). Блокировка записи в регистр возможна двумя методами, либо блокировать возможность выбора регистра удерживанием логической «1» на входе EN, либо блокированием сигнала копирования путем удерживания логической «1» на входе WR. Заблокируем возможность выбора регистра.

Блокировку выполним с применением логического элемента ИЛИ. На один вход подадим сигнал выбора регистра от дешифратора, а на второй - сигнал от компаратора. Причем компаратор должен выдавать логический «0» при невыполнении блокирующего условия и логическую «1» - при выполнении.

Внешний вид полученной схемы представлен на рисунке 10.

Рисунок 10. Блокировка записи RAпри RB == 0.

Элемент LPM_COMPARE является компаратором, который проводит сравнение чисел, поданных на входы dataa[] иdatab[].Результат сравнения выдается на выходные линии alb (A<B), aeb (A == B), agb (A>B), ageb (A>= B), aneb (A !=B), aleb (A<= B).Также имеются входы синхронизации и вход асинхронного сброса, которые нам не нужны. Управляющие параметры элемента аналогичны параметрам сумматора, поэтому в описании не нуждаются.

Компаратор выдает на выходную линию aeb логическую «1» если значения на обоих шинах данных совпадут. Для сравнения RBсо значением 0 на одну из шин подано значение RB, а на другую - константа 0. На логический элемент ИЛИ подаются сигналы от дешифратора и от компаратора. Если компаратор выдаст логическую «1», то регистр RAневозможно будет активировать.

3.1 Проверка работы измененной схемы

Измененная схема приведена на рисунке 11. Схема выполнения логической функции показана в виде отдельного элемента SUB_B_AND_C_FROM_A.О на имеет 3 входных шины данных, на которые подаем значения с регистров RB, RA, RSA. На выходе имеется шина данных результата функции RB - RA - RSA и линии OVERFLOW и SIGN. SIGN показывает знак результата («1» - минус), а OVERFLOW-переполнение («1» - результат < -255).

Проанализируем работу схемы. При этом зададим последовательность адресов: . Первым пишем RB, так как изначально он == 0, и блокирует запись в RA. Вторым пишем RA. Затем читаем дискретные входы, после чего выдаем результат.

1. Проверим адресацию регистров и выходных результатов. Для этого зададим требуемую последовательность адресов, в RAподадим 150, в RB100, а в SA-50. Осциллограмма показана на рисунке 12. Как видно по осциллограмме, записи в регистры и вывод результата проведены успешно, что говорит о верной работе схемы адресации.

2. Вызовем блокировку записи RA.Осциллограмма показана на рисунке 13.Как видим по рисунку, в регистр RBзаписали 0, а в регистр RAзначение 111 не записалось, что подтверждает работу схемы блокировки записи в RA.

3. Получим результат логической функции Y> 0. Для этого зададим RB == 105, RA == 12, SA == 47.Должны получить RB - RA - SA = 46.Осциллограмма показана на рисунке 14. Как видим результат совпал, получили значение 46. Знак результата SIGN - логический «0», что говорит о положительности результата. OVERFLOWтакже равен логическому «0», что значит результат > -256.

4. Получим результат логической функции Y== 0. Для этого зададим RB == 105, RA == 58, SA == 47. Должны получить RB - RA - SA = 0.Осциллограмма показана на рисунке 15. Как видим результат совпал, получили значение 0. Знак результата SIGN - логический «0», что говорит о положительности результата. OVERFLOWтакже равен логическому «0», что значит результат > -256.

5. Получим результат логической функции Y< 0. Для этого зададим RB == 105, RA == 108, SA == 47. Должны получить RB - RA - SA = -50.Осциллограмма показана на рисунке 16. Как видим результат совпал, получили значение 50. Знак результата SIGN - логическая «1», что говорит об отрицательности результата. OVERFLOWравен логическому «0», что значит результат > -256.

6. Получим результат логической функции Y<-255. Для этого зададим RB == 105, RA == 208, SA == 247. Должны получить RB - RA - SA = -350.Осциллограмма показана на рисунке 17. Получили результат = 94. Знак результата SIGN - логическая «1», что говорит об отрицательности результата. OVERFLOWравен логической «1», что значит результат < -255.Для получения истинного результата необходимо прибавить к полученному результату -94 значение -256, тогда получим - 350, что совпадает с расчетным результатом.

Полученные результаты позволяют судить о правильно внесенных в исходную схему изменениях и верной работе полученной схемы.

Рисунок 11. Измененная схема.

Рисунок 12. Осциллограмма работы устройства.

Рисунок 13. Осциллограмма работы при RB == 0.

Рисунок 14. Осциллограмма работы при Y> 0.

Рисунок 15. Осциллограмма работы при Y == 0.

Рисунок 16. Осциллограмма работы при (Y< 0) && (Y> -256)

Рисунок 17. Осциллограмма работы при Y< -255.

Вывод

В ходе выполнения данной работы были изучены базовые принципы построения и работы программируемых логических интегральных схем (ПЛИС). В качестве примера рассматривались ПЛИС фирмы Altera. Исследование проводилось с применением САПР Max+PlusII, которая позволяет синтезировать схему для ПЛИС, отладить ее и смоделировать работу системы.

В результате работы научились строить в графическом редакторе цифровые схемы для ПЛИС, проводить моделирование процессов, происходящих в элементах схемы, и изучили способы выполнения различных логических и арифметических операций для ПЛИС с применением возможностей САПРMax+PlusII.

Размещено на Allbest.ru


Подобные документы

  • Анализ разработки системы автоматизированного контроля на базе микроконтроллера МК51, схемотехника портов. Выбор интегральных микросхем ОЗУ для модуля памяти. Определение надёжности (вероятности безотказной работы) системы автоматизированного контроля.

    дипломная работа [1,9 M], добавлен 15.01.2012

  • Характеристика резистора R7. Знакомство со способами проектирования усилителя напряжения. Анализ этапов расчета входного каскада. Рассмотрение схемы эммиторного повторителя. Знакомство с особенностями моделирования электрических схем в программе Multisim.

    контрольная работа [637,2 K], добавлен 22.11.2013

  • Процесс автоматизированного проектирования в системе P-CAD для проектирования печатной платы усилителя мощности. Упаковка схемы на плату. Процедура автоматической трассировки печатной платы. Текстовое описание схемы электрической принципиальной.

    курсовая работа [935,9 K], добавлен 18.01.2014

  • Типовая схема процесса автоматизированного проектирования РЭС. Классификация проектных задач решаемых в процессе проектирования РЭС. Структура САПР, математическое обеспечение, лингвистическое обеспечение. Языки диалогов их разновидности и типы.

    реферат [108,1 K], добавлен 10.12.2008

  • Знакомство с автоматизированными зарядными устройствами аккумуляторных батарей: этапы разработки, обзор устройств. Анализ главных экономических затрат на разработку оборудования. Характеристика технологий и средств разработки автоматизированных устройств.

    дипломная работа [969,8 K], добавлен 09.06.2014

  • Анализ и назначение сверхбольших интегральных схем программируемой логики. Сущность, особенности, структура и классификация микропроцессоров. Общая характеристика и задачи системы автоматизированного проектирования матричных больших интегральных схем.

    курсовая работа [447,3 K], добавлен 31.05.2010

  • Изучение различных типов устройств СВЧ, используемых в схемах распределительных трактов антенных решеток. Практические расчеты элементов автоматизированного проектирования устройств СВЧ на основе метода декомпозиции. Конструирование баз и устройств СВЧ.

    контрольная работа [120,9 K], добавлен 17.10.2011

  • Обзор схемотехнических решений устройств частотной селекции диапазона сверхвысоких частот. Системы автоматизированного проектирования объемных моделей. Математическая модель конструктивных реализаций частотных фильтров, компьютерное моделирование.

    дипломная работа [2,6 M], добавлен 09.07.2012

  • Временная избыточность цифровых систем управления. Построение структурной схемы. Преобразование структурной схемы и определение показателей надёжности. Расчет вероятности безотказной работы системы. Программный комплекс автоматизированного расчета.

    дипломная работа [3,9 M], добавлен 16.06.2015

  • Волоконно-оптическая линия связи как вид системы передачи, при котором информация передается по оптическим диэлектрическим волноводам, знакомство с особенностями проектирования. Анализ этапов расчета параметров кабеля и длины регенерационного участка.

    курсовая работа [1,6 M], добавлен 28.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.