Схема управління цифрового автомату для виконання операції ділення двійкових чисел
Проект цифрового автомату для виконання арифметичної операції ділення двійкових чисел на суматорі. Мінімізація аналітичних функцій із застосуванням методів: невизначених коефіцієнтів, карт Карно та кубів. Побудова схеми-управління на логічних базисах.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 30.11.2016 |
Размер файла | 574,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Вступ
Інформатизація суспільства - найважливіша задача, яка стоїть перед нашою країною і потребує інтенсивного розвитку обчислювальної техніки та інших засобів обробки інформації.
Всі різноманітні засобі цифрової техніки: ЕОМ, мікропроцесорні системи вимірів і автоматизації технологічних процесів, цифрового зв'язку телебачення і т.д. будуються на єдиній елементній базі, в склад якої входять надзвичайно різні по складності мікросхеми - від логічних елементів, виконуючих найпростіші операції, до найсложніших програмованих кристалів, які містять мільйоні логічних елементів.
Широке впровадження електроніки та автоматики, практично в усі сфери діяльності людини, викликало необхідність бурхливого розвитку теоретичних основ, методів і програмних комплексів цифрового моделювання, оптимального синтезу логічних схем та автоматизованого проектування конструкторської документації цифрових пристроїв і систем.
У наш час мікроелектронна технологія має ефективні методи побудови логічних базових елементів, а математична логіка і теорія цифрових автоматів в своєму розпорядженні в загальних рисах математичним апаратом проектування мікросхем перетворення інформації, створення середніх, великих і надвеликих (СІС, ВІС, НВІС) інтегральних схем (ІС). Подальші узагальнення і розвиток теорії цифрових автоматів, веде до рішень завдань, які пов'язані з необхідністю поліпшення таких характеристик, як швидкодія, надійність, споживана потужність, габарити, вартість.
Перспективним рішенням зниження вартості проектування замовних кристалів є широке використання програмованих логічних інтегральних схем. ПЛІС представляє собою нову елементну базу цифрової техніки з функціональною повнотою замовних "жорстких" БІС і гнучкістю мікропрограмних автоматів.
1. Загальні відомості
1.1 Формат представлення чисел в формі з рухомою комою
У цьому випадку в нормальній формі число записується
де N - машинне нормалізоване число; m - мантиса числа;
P - порядок (характеристика) числа.
Таке подання, в загальному випадку, не є однозначним. Тому, для нормалізованого числа вводять, як правило, обмеження. Найбільш зручним і поширеним є вимога виду
де q - основа системи. У цьому випадку абсолютна значення мантиси може бути в межах від 0,1 * q-1 до (0,1 * q-1 0,1 * q-2... 0,1 * qn), тобто до 1, якщо n прямує до нескінченності, де n - кількість розрядів запису мантиси (без знака).
Положення коми не постійно і залежить від записаного в розряди "Порядку" числа. Така форма представлення числа в комп'ютері називається форматом з плаваючою комою (крапкою).
Формат представлення, цілої частини числа, визначається знаком порядку і числом порядку, може змінюватися. Але завжди формат числа повинен містити знак числа, мантису, знак порядку, порядок. Порядок визначає скільки розрядів мантиси після знака необхідно відрахувати, щоб поставити кому відокремлює дробову частину числа.
Отже, перш ніж записати число в цифровий автомат з його розрядної сіткою, це число нормалізують, тобто приводять до вигляду, коли в старшому розряді мантиси стоїть 1. Всі інші форми називають ненормалізованими.
Порядок - це показник ступеня, на який потрібно помножити або розділити (для негативного знаку порядку) мантису для отримання цілої частини числа.
Приклад.
+0,11101011*25, запишемо це число в машинній формі 00/11101011/00/101.
1.2 Коди двоїчних чисел
Прямим кодом називається представлення чисел в стандартному вигляді. Наприклад число 10, то його прямий код=1010.
Зворотним кодом числа NM = 1, a1, a2,..., an називається таке машинне зображення числа, для якого aі = 0, якщо воно дорівнювало "1" і навпаки, аі = 1, якщо воно дорівнювало "0". Інакше, зворотним кодом двійкового числа є інверсне зображення цього числа, тобто всі розряди вихідного бінарного числа, приймають зворотне значення. Наприклад число 10, його зворотний код 0101.
Додатковий код числа N = - 0, a1a2.. an-таке машинне подання, в якому число записується зворотним кодом з додаванням в молодшому розряді 1. Правило перекладу з прямого коду в додатковий код наступне:
а) якщо у знаковому розряді знаходиться (q -1), то всі цифри числа, крім розрядів знаків, замінюються вирахуваннями з (q-1) значення розряду, а потім до цифри останнього молодшого розряду додається одиниця;
б) якщо у знаковому розряді знаходиться 0 (або 00), то перетворення цифр не відбувається. Наприклад число 10 додатковий код 0110.
1.3 Аналітичний метод мінімізації ФЛ
Визначення. Мінімальна форма (МКФ та МДФ) представлення ФЛ це форма, яка містить мінімальну кількість термів і змінних в термах, і не повинна допускати подальших спрощень.
Спрощення складних логічних виразів може бути здійснено на підставі застосування законів і аксіом алгебри логіки.
1.4 Мінімізація за допомогою комплекса кубів
1.4.1 Побудова комплексу кубів і його мінімального покриття
Терм максимального рангу n-куба прийнято називати 0-кубом (точка вершини) і позначають К0. Наприклад, для f (x1, x2, x3) = (0,4,7) комплекс 0-кубів буде таким
Визначення. Якщо два 0-куба з комплексу К0 розрізняються тільки по одній координаті, то два таких 0-куба утворюють один 1-куб. Він представляється загальними елементами 0-кубів, причому на місці координати, по якій розрізняються 0-куби, вказують символ Х, що позначає незалежну координату (змінну). Різниця координат визначають послідовним порівнянням першого куба з іншими, потім другого з іншими і так далі. Наприклад, два 0-куба 000 і 100 розрізняються тільки по одній координаті, і вони утворюють 1-куб (відрізок), якому відповідає ребро тривимірного куба. За-зауважимо, що 0-куб 111 не склеюється, тому що відрізняється більше ніж по одній координаті. Вся множина 1-кубів функції називається кубічним комплексом К-один і позначається-К1.
Комплекс К1 будується за комплексом К0 шляхом їх порівняння і визначає все безліч ребер, на кінцях яких функція приймає поодинокі значення. Якщо два 1-куба з комплексу К1 мають загальну незалежну компоненту і розрізняються лише по одній координаті, то вони утворюють один 2-куб. Це грань для тривимірного куба. Всі безліч 2-кубів, побудованого з комплексу К1, утворює безліч комплексу К2 (безліч граней). Комплекс К3 = 0 - відсутня в тривимірному кубі (часто r-куб називають інтервалом (відстанню) r-порядку). Перед побудовою чергового куба необхідно відзначити ті куби, які склеїлися хоча б один раз. Наприклад, зірочкою *. Це необхідно, тому що можуть бути невідмічені (не склеїлися) куби про які забувати не можна. Вони є самостійними импликантами, які так само включають в загальне покриття кубів С (f). Для нашого прикладу, загальне покриття буде виглядати
1.5 Метод невизначених коефіцієнтів
Розглянутий метод можна застосовувати для мінімізації функцій алгебри логіки від будь-якого числа аргументів. Однак, для простоти викладу приймемо n = 3.
У загальному випадку, будь-яку ФЛ можна представити у вигляді універсальної ДНФ з невизначеними коефіцієнтами виду, наприклад, . Верхній індекс відображає значення змінних у термі, нижній - індекси змінних, що входять в терм. За коефіцієнтом можна записати сам терм. Наприклад, =x1x3. Кожному коефіцієнту можна присвоїти значення 0 або 1, отримуючи, таким чином, необхідний терм ДНФ.
Запишемо ДНФ в загальному, універсальному вигляді.
f(x1,x2,x3)=x1++x2++x3++ +x1x2+x1+x2++x1x3+x1+ +x3++x2x3+x2+x3++ +x1x2x3+x1x2+x1x3+x1+x2x3+ +x2+x3+
Тут представлені всі можливі кон'юнктивні члени, які можуть входити в нормальну діз'юнктивну форму представлення функції f (x1, x2, x3).
Коефіцієнти k з різними індексами є невизначеними і їх значення {0,1} підбираються так, щоб отримана після цього НДФ відповідала заданій ЛФ і була мінімальною. Критерієм мінімальності є мінімальне кількість літер у записі НДФ.
Якщо тепер задавати різноманітні набори значень аргументів <x1,x2,x3> і прирівнювати отримане після цього вираз значенням функції на вибраних наборах, то отримаємо систему рівнянь для визначення коефіцієнтів k. При цьому, враховуємо наступні властивості:
х = 0; і x1 + x2 +... + хn = 1, якщо будь-xi = l також,
x1 + x2 +... + хn = 0, якщо x1 = x2 =... = хn =0.
Аналогічні таблиці (без лівої частини, де записані значення конкретної функції) можна мати заздалегідь для будь-якої кількості змінних і використовувати їх при мінімізації конкретних функцій методом аналізу їх значень на визна-лених наборах змінних.
Якщо fi = 0 на відповідному наборі змінних, то всі коефіцієнти, що входять в дане рівняння, рівні 0.
Тоді, викреслюють всі коефіцієнти, що входять у функції fi = 0. Потім треба викреслити в останніх рівності fi = 1 всі коефіцієнти, які зустрічалися раніше в fi = 0, тому що вони вже отримали значення 0. Решта коефіцієнти і визначають кон'юнкції найменшого рангу в кожному з рівнянь.
1.6 Мінімізація функції за допомогою Карт Карно
Одним із способів графічного представлення булевих функцій від невеликого числа змінних є карти Карно. Їхній різновид - карти Вейча. Карти будують як розгорнення кубів на площині. При цьому, вершини куба представляються клітинами карти, координати яких збігаються з координатами відповідних вершин куба (мінтермів). Карта заповнюється так само, як таблиця істинності: значення 1 зазначається в клітці, відповідної набору (мінтерм), на якому функція має значення 1. Значення f = 0 зазвичай на картах не відбивається.
Спосіб мінімізації ФО за допомогою карт Карно отримав широке застосування серед фахівців. Цьому сприяли досить висока формалізація дій, наочність графіки і відносно прості правила. Карти Карно представляють прямокутником (квадратом), на якому розміщують 2n клітин, де n-число змінних ФЛ. При заповненні клітин значеннями функцій 1, використовують умовні координати розміщення змінних. Координати клітин звичайно вказують з лівого боку і зверху, використовуючи код Грея. Якщо порушити місця позначення координат, то мінімальна функція не буде відповідати істині. Кожній клітині відповідає свій мінтерм, позначений перетинанням змінних рядків і стовпців. Після заповнення клітин карт одиницями, визначають сусідні клітини.
Сусідніми клітинами вважають ті заповнені клітини, які мають загальні сторони. Сусідніми вважають і клітини розташовані в протилежних крайніх рядках і (або) стовпчиках. У самому справа, якщо подумки згорнути карту, то крайні, протилежні рядки (стовпці) стануть сусідніми. Тому, наприклад, всі кутові клітини карт для двох, трьох і чотирьох змінних вважають сусідніми. При числі змінних більше чотирьох, карти Карно складаються з декількох карт для чотирьох змінних, тому, сусідніми клітинами вважають ще й ті, які перебувають на однакових координатах в сусідніх картах.
Для мінімізації функцій з числом змінних більше 7 карти Карно практично не застосовуються. Після визначення сусідніх клітин, їх об'єднують контурами об'єднання.
Контур повинен містити тільки сусідні клітини, при цьому, кількість одиниць включених в контур має бути рівним одному з чисел: 2, 4, 8, 16, 32, 64,..., 2n. Ця умова обов'язково.
Будь-який контур об'єднання може перетинатися з іншими. Тому, одні й ті ж одиниці можуть бути включені одночасно в різні контури.
Загальне число контурів повинно бути як можна меншим, тому що кожний контур об'єднання це новий мінтерм функції і чим менше їх буде, тим вона мінімальніша.
З іншого боку, загальне число об'єднаних одиниць має бути по можливості великим, так як це зменшує число змінних в мінтермі, знижуючи його ранг. Завжди об'єднання в 2k клітин (сусідніх одиниць) виключає з мінтермів k змінних, де k = 1,2,3,4,.... Необхідно пам'ятати, що об'єднання сусідніх клітин цей процес вимагає наявність досвіду щодо вибору найкращого варіанта. Тому, кожен раз при мінімізації необхідно переглядати кілька варіантів і вибирати кращий, який призводить до мінімальної функції. Після об'єднання сусідніх клітин, переходимо до запису для них мінтермів.
Кожен окремий контур об'єднання відповідає мінтерму, який інакше називають простою імпликантою. Для визначення і запису простої імпліканти, прямо по карті Карно, проводиться аналіз змінних за тими рядками і стовпцями карти, які перетинають контур об'єднаних 1 (вершин куба). Починають аналіз з першої змінної Х1.
Якщо змінна Х1 в будь-якій рядку (стовпці), що проходить через контур, не змінює значення своїй координати (тобто у всіх рядках контуру її значення або 0, або 1), то в мінтерм об'єднання записується її значення (або 0, або 1).
Якщо змінна Х1 в рядках (стовпцях), що проходять через контур, змінює значення своєї координати (тобто в одному рядку контуру її значення 0, а в іншій 1, або навпаки), то в мінтерм об'єднання записується, так звана, невизначена змінна Х на тому місці, де має записуватися значення змінної Х1. Аналогічний аналіз проводиться послідовно для всіх змінних, в результаті чого отримуємо мінтерм об'єднання. Це перший етап запису мінімальної логічної функції прямо з карти Карно. На другому етапі змінюємо значення змінних на відповідні їм змінні за правилом: якщо значення змінної 0 - то пишемо, якщо 1 - то пишемо Хі. На місці невизначеної змінної Х не пишемо нічого, тобто це місце опускаємо. Тепер з'єднавши всі мінтерм знаком диз'юнкції, одержимо мінімальну діз'юнктивну нормальну форму логічної функції (МДНФ).
При побудові мінімальної форми для кон'юнкції, карти Карно заповнюються 0, тобто мінтерм тих наборів, на яких функція дорівнює нулю. Об'єднання нулів і запис МДНФ для не функції, тобто виконують за тими ж правилами. Потім, застосувавши до лівої і правої частини рівності правило де-Моргана і перетворивши диз'юнкцію правої частини в кон'юнкцію, одержимо мінімальну кон'юнктивні нормальну форму (МКНФ) логічної функції. Таким чином, мінімальне покриття вибирається інтуїтивним шляхом на основі аналізу різних варіантів покриттів (контурів об'єднань) мінімізуюча функція.
Покриття з мінімальною ціною формується, якщо кожна істотна вершина буде покрита кубом з найбільшим числом незалежних змінних, а для покриття всіх істотних вершин буде використано найменше число кубів.
Найкращим вважається таке покриття, де мінімум контурів об'єднання. Якщо варіантів багато, то обирається той, який дає максимальну сумарну площу контурів (прямокутників). Якість мінімізації оцінюється за коефіцієнтом покриття
k = m / s,
де m - кількість прямокутників, s - їх площу. Покриття краще, чим менше k.
1.7 Ділення двійкових чисел представлених в формі з плаваючою комою на ДСДК з відновленням залишку
При діленні з плаваючою комою, саме ділення можна розділити на 3 етапи: визначення знака числа; саме ділення мантис; значення порядку.
Ділення виконується за алгоритмом з відновленням залишку на суматорі додаткового коду в такій послідовності:
- визначається знак частки за формулою
SgC = SgA+SgB;
- подання діленого і дільника в машинних кодах, коли ділене завжди, незалежно від його знаку, береться в прямому коді з позитивним знаком, а дільник завжди, незалежно від його знаку, береться в додатковому коді з від'ємним знаком;
- усунення дробової частини в дільнику, шляхом перенесення коми вправо на n розрядів (за аналогією з десятковою системою числення). Щоб дріб не змінилася, в діленому також переносять вправо кому на n розрядів;
- починаючи зі старших розрядів, до ділимого додають дільник в додатковому коді, що рівносильне вирахуванню з діленого дільника і аналізують знак проміжного залишку:
1) якщо знак проміжного залишку 00 (позитивний), то в регістр частки РГС записується 1, починаючи зі старшого розряду. Залишок зсувається на один розряд вліво (просто знакову точку перенести вправо на один розряд), зноситься наступний розряд діленого не бере участь до цього в розподілі. Після цього, проміжний залишок підготовлений до подальшого додатку діленого в додатковому коді;
2) якщо знак проміжного залишку 11 (негативний), то в регістр приватного РГС записується 0, починаючи зі старшого розряду. Залишок відновлюється шляхом додавання до нього дільника в прямому коді з позитивним знаком. Відновлений залишок зсувається вліво на один розряд (точку, яка відокремлює знак, перенести вправо на один розряд), зноситься наступний розряд діленого який не бере участь до цього в розподілі;
3) дії пункту 1 та 2 повторюються до отримання машинного нуля або заданої точності обчислення (кількість розрядів дробу після коми цілої частини числа). Кома дробу встановлюється в приватному після знесення останнього розряду цілої частини діленого.
4) результат ділення представлений в регістрі частки в прямому коді. Знак результату присвоюється відповідно до пункту 1.
5) визначити порядки А та В
- визначити різницю порядків
ДР = РА - РВ
- якщо ДР> 0, змістити мантису числа В на ДР розрядів вправо; якщо ДР <0, зрушити мантису числа А на ДР розрядів вправо; якщо ДР = 0, мантиси не зміщуються, (розряди виходять за межі розрядної сітки мантиси губляться).
Після того як порядки приведені до одного виду, то вони віднімаються, шляхом додавання порядку з від'ємним знаком в додатковому коді, до порядку другого числа, в прямому, якщо знак числа >0 або в додатковому якщо<0.
Приклад. А=+0,11101*1011 В=+0,100010*1011 С=А/В
Ділення показано в таблиці 1.1.
Таблиця 1.1 - Ділення
См |
RegС |
ЛЧ |
Коментарі |
|
00/00000 |
------- |
6 |
СМ:=0, RegА:=A, RegВ:=B ТП:=0, СТ:=6, |
|
+11,0001 11,00011 +00,1000 11,10101 |
СМ:=СМ+RegА, |
|||
SgСМ=SgRegВ? Ні. Отже, СМ:=СМ+RegВ, |
||||
-----1 |
5 |
SgСМ=SgRegА. Отже, RegС[5]:=1, ЛЧ:=ЛЧ-1, |
||
11,01010 +00,1000 11,11100 |
-----1- |
ЛЧ=0? Ні. Отже, RegС:=L(1) RegС, СМ:=L(1) CM |
||
SgСМ=SgRegВ? Ні.Отже, СМ:=СМ+RegВ, |
||||
---11 |
4 |
SgСМ=SgRegА. Так.Отже, RegС[5]:=1, ЛЧ:=ЛЧ-1, |
||
11,11000 +00,1000 00,01010 |
---11- |
ЛЧ=0? Ні.отже, RegС:=L(1) RegС, СМ:=L(1) CM, |
||
SgСМ=SgRegВ? Ні.Отже, СМ:=СМ+RegВ, |
||||
---110 |
3 |
SgСМ=SgRegА? Ні.Отже, RegС[5]:=0, ЛЧ:=ЛЧ-1, Знак суматора в цій ітерації інвертувався. Виконується відновлення залишку. SgСМ=SgRegВ? Так. |
||
00,01010 +11,0110 11,11000 |
||||
11,10000 +00,1000 00,00010 |
---110 |
ЛЧ=0? Ні.Отже, RegС:=L(1) RegС, СМ:=L(1) CM, |
||
SgСМ=SgRegВ? Ні.Отже, СМ:=СМ+RegВ, |
||||
11,00000 +00,1000 11,10010 |
--1100 |
2 |
SgСМ=SgRegА? Ні.Отже, RegС[5]:=0, ЛЧ:=ЛЧ-1, Знак суматора в цій ітерації інвертувався. Виконується відновлення залишку. SgСМ=SgRegВ? Так. |
|
11,00000 +00,1000 11,10010 |
--1100 |
ЛЧ=0? Ні.Отже, RegС:=L(1) RegС, СМ:=L(1) CM, |
||
SgСМ=SgRegВ? Ні.Отже, СМ:=СМ+RegВ, |
||||
-11001 |
1 |
SgСМ=SgRegА. Так.Отже, RegС[5]:=1, ЛЧ:=ЛЧ-1, |
||
11,00100 +00,1000 11,10110 |
-11001 |
ЛЧ=0? Ні.Отже, RegС:=L(1) RegС, СМ:=L(1) CM, |
||
SgСМ=SgRegВ? Ні.Отже, СМ:=СМ+RegВ, |
||||
110011 |
0 |
SgСМ=SgRegА. Так.Отже, RegС[5]:=1, ЛЧ:=ЛЧ-1, |
||
011001 |
ЛЧ= 0? ТАК. Вихід з циклу. Перевіряємо переповнення розрядної сітки: RegС [0] = 1? ТАК. Отже, переповнення розрядної сітки приватного має місце. Виконуємо нормалізацію результату. З цією метою мантису зрушуємо логічним зрушенням на один розряд вправо, і до порядку додаємо 1. Молодший розряд приватного віднімається з розрядної сітки і втрачається.RegС: = R (1) RegС; СМП: = СМП 1; |
Порядок частки
Рс=Ра-Рв=0.
Отже порядки віднімаються, причому порядок В береться в додатковому коді.11+01=100. В порядок записується 00,а 1 відкидається, так як пішло переповнення розрядної сітки. Результат С=00/011001/00/00.
2. Мінімізація даних функцій
Мінімізацію провести такими методами: карти Карно, аналітичним методом, кубів та невизначених коефіцієнтів.
Розрядність ЦА 24 розряди:
- 2 розряди під знак мантиси
- 2 розряди під знак порядку
- 16 розрядів під мантису
- 4 розряди під порядок
Розробка словесного алгоритму ділення
Вибір алгоритму виконання арифметичної дії цифровим автоматом над операндами - це дуже важлива та складна частина його розробки. Труднощі побудови ефективного алгоритму зв'язані з їх великою чисельністю, яка залежить від різноманітності структурно-схемних рішень, технічного обладнання, протоколів послідовності виконання дій та інше. Можна використовувати декілька засобів виконання однієї операції. Алгоритм виконання арифметичної операції ділення чисел формі з плаваючою комою, на суматорі додаткового коду за методом відновлення залишку буде мати такий вигляд:
Опис алгоритму:
встановити RegA, RegB, RegC, а також суматор мантис та суматор порядку (СмМ, СмП) в стан “нуль”.
занести до RegA число А в прямому коді.
занести до RegB число В в прямому коді.
визначити знак числа у RegC таким чином:
зробити знаки у RegA та RegB, таким чином тобто RegA(0,1):=00 та RegB(0,1):=11
в СмМ занести мантису число А з RegA в прямому коді.
додати до СмМ мантису число В з RegB в додатковому коді з відєним знаком.
визначити знак мантиси числа в СмМ: - якщо 00, тоді RegС(9):=1 та перейти до п.9; - якщо 11, тоді перейти до п.11;
зсунути СмМ на один розряд вліво: L(1,СмМ) та RegA(2,15) на один розряд вліво; перевірити наявність машинного нуля в СмМ; якщо є машинний нуль, тоді треба здвинути RegC(2,9) вліво на стільки розрядів, скільки ітерацій залишилось до 16-1, після цього перейти до п.12;
якщо цикл був виконаний 16 разів, тоді перейти до п.12. Якщо ні, тоді перейти до п.7;
до отриманого від'ємного залишку в СмМ додати для відновлення число В в додатковому коді, тобто СмМ:=Bдод перейти до п.9;
Аналізуємо розряд RegC(2): - якщо 0, тоді робимо лівий зсув RegC(2,16) на один розряд вліво (а також лівий зсув СмМ), та виконуємо ще одну ітерацію і заповнюємо RegC(17); якщо 1, тоді корегуємо порядок числа СмП+1;
На суматорі порядку СмП знаходимо порядок результату
Рc:= РA - РB.
Виконуємо це таким чином: а) інвертуємо знак порядку РB; б) визначаємо знак порядку РA:
- якщо 00, то додаємо порядок РA до СмП в прямому коді;
- якщо 11, то додаємо порядок РA до СмП в додатковому коді; в) визначаємо знак порядку РB:
- якщо 00, то додаємо порядок РB до СмП в прямому коді;
- якщо 11, то додаємо порядок РB до СмП в додатковому коді; г) визначаємо знак результату, отриманому у СмП:
- якщо 00, тоді результат позитивний і в прямому коді;
- якщо 11, тоді результат іл'ємний і в додатковому коді;
переносимо отриманий результат в СмП у відповідні розряди RegC, але обов'язково у прямому коді, тобто RegC(20,24):=СмП;
Результат, отриманий в RegC - це і є наше результат ділення С. Треба його зчитати у прямому коді до пам'яті.
Побудова блок-схеми
По даному алгоритму будуємо блок-схему, яка включає в себе різні графічні позначення умови, дії, виведення та ін.
Рисунок 2.1 - Блок схема словесного алгоритму
Рисунок 2.2 - Кодована блок-схема
Отже автомат має 16 станів, 19 мікрооперацій та 8 логічних умов.
Граф
Тепер побудуємо граф, де кожна вершина графа - це стан автомата, а переходи між цими вершинами залежність від логічної умови або виконання певної мікрокоманди. Граф зображений на рисунку 2.3:
Рисунок 2.3 - Граф станів цифрового автомата
Таблиця переходів
Тепер по заданому графу побудуємо таблицю переходів ЦА. Визначимо розрядність коду стану за формулою log2Zn=log216=4, отже нам потрібно 4 тригери аби забезпечити роботу автомата. Zn-1- це стан з якого автомат переходитьZn - це стан в який переходить Xk - це номер логічної умови, а Ym- номер мікрокоманди, де n=1…15, k=0…8, m=0…19.
Таблиця 2.1 - Переходів
№ |
Zn-1 |
Zn |
Xk |
Ym |
Код стану Zn-1 |
Код стану Zn |
J1J2J3J4 |
K1K2K3K4 |
|
0 |
Z0 |
Z1 |
- |
Y0 |
0000 |
0001 |
J1 |
- |
|
1 |
Z1 |
Z2 Z3 |
X0,X1 (X0),(X1) |
Y1,Y2 Y3 |
0001 |
0010 0011 |
J2 J1 |
K1 - |
|
2 |
Z2 |
Z0 |
- |
Y19 |
0010 |
0000 |
- |
K1K2 |
|
3 |
Z3 |
Z4 |
- |
Y4 |
0011 |
0100 |
J3 |
K1K2 |
|
4 |
Z4 |
Z5 Z6 |
X2 (X2) |
Y5 Y6 |
0100 |
0101 0110 |
J1 J2 |
- K1 |
|
5 |
Z5 |
Z7 |
- |
Y7 |
0101 |
0111 |
J1 |
- |
|
6 |
Z6 |
Z7 |
- |
Y7 |
0110 |
0111 |
J2 |
- |
|
7 |
Z7 |
Z4 Z8 |
(X3) X3 |
Y4 Y8 |
0111 0111 |
0100 1000 |
- J4 |
K1K2 K3 |
|
8 |
Z8 |
Z9 Z10 |
(X4) X4 |
Y9 Y10 |
1000 |
1001 1010 |
J1 J2 |
- K1 |
|
9 |
Z9 |
Z12 |
- |
Y12 |
1001 |
1100 |
J3 |
K2 |
|
10 |
Z10 |
Z11 Z12 |
X5 (X5) |
Y11 Y12 |
1010 |
1011 1100 |
J2,J1 J3 |
K3 K1K2 |
|
11 |
Z11 |
Z12 |
- |
Y12 |
1011 |
1100 |
J3 |
K1K2 |
|
12 |
Z12 |
Z13 |
X6,(X6) |
Y13,Y14 |
1100 |
1101 |
J1 |
- |
|
13 |
Z13 |
Z14 |
X7,(X7) |
Y15,Y16 |
1101 |
1110 |
J2 |
K1 |
|
14 |
Z14 |
Z15 |
X8,(X8) |
Y17,Y18 |
1110 |
1111 |
J1 |
- |
|
15 |
Z15 |
Z0 |
- |
Y19 |
1111 |
0000 |
- |
K1K2K3K4 |
Тепер мінімізуємо функції для кожного:J1,J2,J3,J4,K1,K2,K3,K4. Мінімізацію зробимо за допомогою карт Карно, тоді функції приймуть вигляд:
Таблиця 2.2- Карти Карно J1
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
1 |
|||
01 |
1 |
1 |
|||
11 |
1 |
1 |
|||
10 |
1 |
1 |
Таблиця 2.3- Карти Карно J2
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
||||
01 |
1 |
1 |
|||
11 |
1 |
||||
10 |
1 |
1 |
J2=
Таблиця 2.4- Карти Карно J3
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
|||||
01 |
1 |
||||
11 |
1 |
||||
10 |
J3=
Таблиця 2.5- Карти Карно J4
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
|||||
01 |
|||||
11 |
|||||
10 |
1 |
J4=
Таблиця 2.6- Карти Карно K1
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
1 |
|||
01 |
1 |
1 |
|||
11 |
1 |
1 |
|||
10 |
1 |
K1=
Таблиця 2.7- Карти Карно K2
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
||||
01 |
1 |
||||
11 |
1 |
||||
10 |
K2=
Таблиця 2.8- Карти Карно K3
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
||||
01 |
|||||
11 |
|||||
10 |
1 |
1 |
K3=
Таблиця 2.9- Карти Карно K4
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
||||
01 |
|||||
11 |
|||||
10 |
K4=
Запишемо сигнали для Ym, тобто для мікрооперацій
Y0=Z0=
Y1=Z1X0=X0
Y2=Z1X1=X1
Y3=Z1=
Y4=Z3Z7=
Y5=Z4X2=
Y6=Z4=
Y7=Z5Z6=
Y8=Z7X3=
Y9=Z8=
Y10=Z8X4=
Y11=Z10X5=
Y12=Z9Z10Z11=
Y13=Z12X6=
Y14=Z12=
Y15=Z13X7=
Y16=Z13=
Y17=Z14X8=
Y18=Z14=
Y19=Z15Z2=
3. Мінімізація функцій
Мінімізувати функції:
Y1=V(0,1,2,3,9,11)
Y2=V(4,5,6,7,8,10,11)
Y1=V(0,2,8,10,12,13,14)
Мінімізацію всіх 3 функцій картами Карно, а також першу комплексом кубів, другу аналітичним методом, а третю невизначеними коефіцієнтами. Тоді мінімізація буде мати вигляд:
Мінімізація за картами Карно відображено у таблиці 3.1
Таблиця 3.1 Карти Карно для першої функції
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
1 |
1 |
1 |
|
01 |
|||||
11 |
|||||
10 |
1 |
1 |
Y1=
Метод кубів
0000 000X
0001 00X0
0010 00X1 00XX
К0= 0011 К1= X001 K2= 00XX
1001 001X X0X1
1011 X011
Y1=
Як бачимо результати ідентичні. Побудуємо цю функцію на логічних елементах, яка відображена на рисунку 3.1.
Рисунок 3.1 Перша функція на логічних елементах
Y2
Мінімізація за допомогою карт Карно зображено в таблиці 3.2:
Таблиця 3.2 Карти Карно для другої функції
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
|||||
01 |
1 |
1 |
1 |
1 |
|
11 |
|||||
10 |
1 |
1 |
1 |
Y2=
Аналітичним методом:
Як бачимо результати ідентичні. Побудуємо схему на логічних елементах, яка зображена на рисунку3.2
Рисунок 3.2 - Друга функція на логічних елементах
Мінімізація за допомогою карт Карно зображено в таблиці 3.3:
Таблиця 3.3 - Карти Карно для третьої функції
Q3Q4 Q1Q2 |
00 |
01 |
11 |
10 |
|
00 |
1 |
1 |
|||
01 |
|||||
11 |
1 |
1 |
1 |
||
10 |
1 |
1 |
Y3=
Складемо таблицю невизначених коефіцієнтів для 4 змінних, яка матиме вигляд:
++++++++++++++=1
++++++++++++++=0
++++++++++++++=1
++++++++++++++=0
++++++++++++++=0
++++++++++++++=0
++++++++++++++=0
++++++++++++++=0
++++++++++++++=1
++++++++++++++=0
++++++++++++++=1
++++++++++++++=0
++++++++++++++=1
++++++++++++++=1
++++++++++++++=1
++++++++++++++=0
Після вичерпування всіх коефіцієнтів які дорівнюють 0, то отримаємо наступні результати:
++=1
+ =1
++++=1
++++=1
+++=1
=1
++=1
Тепер вибираємо найменші коефіцієнти, і тоді мінімальна ДНФ буде мати вигляд:
Як бачимо результати ідентичні. Схема на логічних елементах зображена на рисунку 3.3.
Рисунок 3.3 Третя функція на логічних елементах
цифровий арифметичний карно логічний
Висновки
В ході курсової роботи спроектовано цифровий автомат призначений для виконання арифметичної операції ділення двійкових чисел на суматорі додаткового коду, представлених у формі з плаваючою комою. При побудові автомата була затрачена мінімальні кількість ресурсів.
Проведена мінімізація аналітичних функцій із застосуванням основних методів: невизначених коефіцієнтів, аналітичним методом, метода карт Карно та метод кубів. Побудували алгоритм дії, побудували схему-управління на визначених логічних базисах.
При побудові логічної схеми використовували логічні елементи И,ИЛИ,НЕ, JK - тригери на цих же елементах.
Також провівши мінімізацію заданих функцій отримали мінімальну ДНФ
Література
Мальцева Л.А. Основи цифрової техніки. \Мальцев Л.А. - Москва: Радіо, 1987 - 128 с.
Савельєв К.Г. Арифметичні та логічні основи цифрових автоматів. \ Савельєв К.Г. - Київ: Вища школа, 1989 - 328 с.
Самофалов К.Г. Прикладна теорія цифрових автоматів.\ Самофалов К.Г. - Київ; Вища школа, 1987 - 375 с.
Корнійчук В.И Обчислювальна техніка на мікросхемах.\ Корнійчук В.И - Київ: Техніка, 1986 - 172 с.
Яковлєв В.Н. Довідник по мікроелектронній імпульсній техніці. /В.Н.Яковлєв - Київ: Техніка, 1985 - 456 с.
Угрюмов Е.П. Цифровая схемотехника \ Угрюмов Е.П. - Санкт-Петербург 2004 - 528 с.
Щербаков А.Н.Теоретические основы синтеза цифрових автоматов. \ Щербаков А.Н. - Запорожье 2004 - 123 с.
Размещено на Allbest.ru
...Подобные документы
Розробка схеми логічного керування роботою кавового автомату. Граф функціонування цифрового автомата. Створення таблиць переходів та виходів. Основні елементи пам’яті автомата. Створення рівнянь функції збудження. Побудова структурної схеми автомату.
курсовая работа [434,7 K], добавлен 11.01.2013Дослідження основних способів подання логічної функції: аналітичний і табличний. Мінімізація логічних функцій та карта Карно. Синтез комбінаційного пристрою на базисі Шеффера та Пірса. Побудова принципової схеми, виконаної на інтегральних мікросхемах.
курсовая работа [891,4 K], добавлен 06.08.2013Методам виконання множення, способам його прискорення і раціональній побудові пристроїв для множення завжди приділялася значна увага в розробках і в теоретичних дослідженнях з цифрової техніки. Прискорення операції множення в двійковій системі числення.
учебное пособие [590,5 K], добавлен 18.03.2009Поняття про однотактні та багатотактні схеми, різниця між ними і основні відмінності. Карта Карно – один з графічних способів подання логічних функцій. Особливості мінімізації логічних виразів за його допомогою, принципи практичного застосування.
контрольная работа [430,2 K], добавлен 17.07.2013Розробка алгоритму операцій додавання і віднімання. Написання мікропрограми операцій і побудова принципової схеми операційного блоку. Основи роботи арифметико-логічних пристроїв. Структурний синтез керуючого автомата Мура. Характеристика елементної бази.
курсовая работа [602,3 K], добавлен 17.12.2012Загальний огляд існуючих первинних перетворювачів температури. Розробка структурної схеми АЦП. Вибір п’єзоелектричного термоперетворювача, цифрового частотоміра середніх значень в якості аналого-цифрового перетворювача, розрахунок параметрів схеми.
курсовая работа [30,5 K], добавлен 24.01.2011Структурная схема цифрового устройства. Проектирование одновибратора на интегральных таймерах. Минимизация логической функции цифрового устройства по методу Квайна и по методу карт Карно. Преобразование двоичного числа. Расчет номиналов сопротивлений.
курсовая работа [319,2 K], добавлен 31.05.2012Причини для розробки цифрових пристроїв обробки інформації, їх призначення і область застосування. Блок-схема алгоритму роботи. Розробка функціональної схеми пристрою та принципової схеми обчислювального блока. Виконання операції в заданій розрядності.
курсовая работа [691,7 K], добавлен 29.09.2011Выполнение синтеза логической схемы цифрового устройства по заданным условиям его работы в виде таблицы истинности. Получение минимизированных функций СДНФ, СКНФ с использованием карт Карно. Выбор микросхем для технической реализации полученных функций.
контрольная работа [735,9 K], добавлен 10.06.2011Визначення значень та мінімізація булевої функції за допомогою метода карт Карно і метода Квайна-МакКласки. Аналіз комбінаційної схеми методом П-алгоритму. Проектування керуючих автоматів Мілі та Мура: кодування станів, побудування таблиці переходів.
контрольная работа [58,3 K], добавлен 07.10.2013Загальна характеристика та принцип дії пристроїв введення (виведення) аналогової інформації в аналого-цифрових інтерфейсах, їх структура та основні елементи. Порядок та етапи розробки структурної схеми АЦІ, необхідні параметри для даної операції.
реферат [100,9 K], добавлен 14.04.2010Лічильники з цифровими автоматами. Схемотехнічна розробка дільника частоти з коефіцієнтом ділення К = 210 на JK-тригерах. Програма розрахунку споживаної потужності на алгоритмічній мові. Принцип роботи дільника частоти згідно електричної схеми.
курсовая работа [362,0 K], добавлен 14.02.2011Вимірювання напруги. Принцип роботи цифрового вольтметру. Структурна схема цифрового вольтметра. Основні параметри цифрового вольтметра. Схема ЦВ з час-імпульс перетворенням та часові діаграми напруг. Метод час-імпульсного перетворення.
контрольная работа [84,9 K], добавлен 26.01.2007Представление чисел в дополнительном двоичном коде. Номенклатура арифметических операций в цифровом фильтре. Назначение аналого-цифрового преобразователя. Амплитудно-частотная характеристика рекурсивного фильтра. Составление схемы лабораторного макета.
реферат [215,6 K], добавлен 14.02.2016Засоби завдання автоматів з пам’ятю. Структурний синтез автоматів Мура та Мілі. Кодування вхідних сигналів і станів. Побудова кодованої таблиці переходів і виходів автомата. Мінімізація функції збудження. Вибір з довідника елементів схеми та їх параметри.
курсовая работа [813,1 K], добавлен 06.11.2013Функції та система команд мікроконтролера PIC16F84A, його технічні характеристики й організація пам'яті. Розробка керуючого автомату на мікроконтролері для пристрою світлових ефектів, побудова його електричної схеми та створення програмного забезпечення.
курсовая работа [255,0 K], добавлен 03.12.2013Розробка та формалізація алгоритму управління вузлом виготовлення глиняного брусу на базі RS-тригерної моделі. Структурна та принципова схеми системи управління, її конструктивне оформлення. Реалізація системи на дискретних логічних елементах серії К555.
курсовая работа [711,2 K], добавлен 30.09.2011Структурная схема цифрового фильтра. Расчет устойчивости, построение графиков. Виды свертки дискретных сигналов. Определение выходного сигнала в частотной области с помощью алгоритма "бабочка". Схема шумовой модели фильтра, мощность собственных шумов.
курсовая работа [641,3 K], добавлен 15.10.2013Выполнение синтеза логической схемы цифрового устройства, имеющего 4 входа и 2 выхода. Составление логических уравнений для каждого выхода по таблице истинности. Минимизация функций с помощью карт Карно, выбор оптимального варианта; принципиальная схема.
практическая работа [24,0 K], добавлен 27.01.2010Устройство жидкокристаллических, проекционных и плазменных телевизоров. Перспективы развития цифрового телевидения в России. Высокая четкость трансляций и интерактивное телевидение. Экономическая эффективность проекта внедрения цифрового телевидения.
курсовая работа [1,1 M], добавлен 04.01.2012