N_N_EOM (722406), страница 6
Текст из файла (страница 6)
На малюнку 6.20 і 6.21 приведені блок-схеми алгоритма ділення десяткових чисел.
Вхід DDIV
Вихід
малюнок 6.20 Чу стр. 265
малюнок 6.21 Чу стр. 266
Додовання і віднімання, які використовуються цим алгоритмом, виконуються підпослідовністю SUM – DIF, а перевірка переповнення – з допомогою підпослідовності DSTEST. З малюнку 6.20 видно, що ділення починається з скидання регістру WC в 0 і звернення до підпослідовності DSTEST з цілью перевірки можливості переповнення при діленні. Підпослідовніст DSTEST, зображена в виді блок-схеми на малюнку 6.21, в свою чергу починається з звернення до підпослідовності SUM – DIF; останні здійснює віднімання дільника, який знаходиться в масиві регістрів R, з старшої частини діленого, який знаходиться в масиві регістрів A. Різниця залишається в масиві регістрів A.
Потім виконується перевірка, яка дозволяє встановити, чи не містить регістр OV позики. Якщо регістр OV містить 0, значить місце переповнення при діленні немає, і ділене відновлюється шляхом звернення до підпослідовності SUM – DIF, здійснюється додавання дільника з масива регістрів R і різниці масива регістрів A. В цей момент виконання підпослідовності DSTEST закінчується скидуванням регістра DSTEST в 0.
Після повернення з підпослідовності DSTEST до підпослідовності ділення виконується перевірка регістра DV на рівність 1. Випадок рівності DV одиниці вказує на переповнення при діленні, що викликає припинення операції ділення. Якщо ж в індикаторі переповнення DV міститься нуль, ділення продовжується. Так як успішний вихід перевірки умови переповнення при діленні означає, що вміст масива регістрів A менше дільника, який знаходиться в масиві регістрів R, ділене в масиві регістрів A множиться на 10 шляхом зсуву на одну десяткову цифру вліво.
Як видно з малюнка 6.20, в алгоритмі є два цикла – внутрішній і зовнішній. Внутрішній цикл починаєтсья з встановлення лічильника DVC в 0. Потім починається внутрішній цикл додавання-віднімання. В внутрішньому циклі виконується звертання до підпослідовності SUM –DIF, яка здійснює додавання або віднімання, а також перевірки виникнення позики при відніманні.Якщо позики немає, лічильник DVC збільшується на 1, і керування передається до початку внутрішнього циклу. Цикл віднімання повторюється до тих пір, поки не виникне позика, на чому виконання циклу закінчується. Наявність позики означає, що вміст лічильника DVC є цифра частки; значення вмісту DVC пересилається в субрегістр Q(,8). Лічильник WC збільшується на 1, після чого його нове значення порівнюється з константою 8. Якщо вміст WC дорівнює 8, касрегістр A зсувається вліво на одну десяткову цифру, і управління передається до початку зовнішнього циклу. Зовнішній цикл повторяється до тих пір, поки лічильник WC на стане рівним 8. В цей момент визначаються знаки частки і залишку, які поміщаються в регістри SA і SQ відповідно. На цьому виконання операції ділення закінчується.
2.9 КМОН
З багатьох серій цифрових мікросхем на польових транисторах найбільше використання одержали серії мікросхем КМОП.
Скорочено КМОП – це початкові букви чотирьох слів з повного визначення: комплементарні польові транзистори з структурою металл – окисел – напівпровідник. Слово комплементарний переводиться як взаємно доповнюючий. Так називаються пару транзисторів, які подібні по абсолютним значенням параметрів, але з напівпровідниковими структурами, взаємно відображені як би в вигляді негатива і позитива. В біполярній схемотехніці – це транзистори n-p-n і p-n-p, в польовій p-канальні і n-канальні. Тут p – перша буква від слова positive,
n – negative.
Цікаво, що на перших етапах розвитку біполярних цифрових мікросхем пророкували широке розповсюдження комплементарних біполярних логічних елементів на n-p-n і p-n-p транзисторах. Для прикладу, якщо в ТТЛ вдалось би замінити вихідний каскад на двохтактний комплементарний, принципово збільшилась би економічність елемента. Але біполярна комплементарна транзисторна логіка не прижилась через труднощі виготовлення на кристалі великої кількості компактних по площині і високоякісних по параметрах інтегральних p-n-p транзисторів.
Нагадаємо, що в аналоговій схемотехніці, де p-n-p транзистори просто необхідні як для спрощення схемотехніки, так і для покращення властивостів підсилювачів, проблема створення добрих p-n-p транзисторів для технологів все ж таки існує. Тому реально біполярні мікросхеми ТТЛмають на виході так називаємі квазікомплементарний каскад. На кристалі роблять тільки n-p-n транзистори. Ця компромісна схема елемента ТТЛ вийшла оптимальною і перспектвною на багато десятеліть.
Перші спроби випускати серії простих польових елементів, подібний по схемі з РТЛ, до успіху не привели. Логічні елементи виходили малошвидкодіючі, оскільки внутрішній опір канала у польового транзистора на порядок більше,
чим опір між колектором і емітером насиченого біполярного транзистора. Однополярні мікросхеми МОП не відрізнялись успіхом ні перешкодостійкістю,
ні малою потребуючою силою. Добрі результати дало використання двополярного інвертора, який побудований на комплементарній польовій парі.
Тепер можна конкретно вибрати необхідні елементи КМОН для реалізації даної схеми, хоча при проектуванні постійно перевірялася можливість втілення схем за допомогою стандартних мікросхем серій КМОН.
2.10 Мікросхеми
Отже:
- як D-тригери беремо мікросхему К176ТМ2
14
7
Ця мікросхема містить два D-тригера і є корисна тим, що має інверсні виходи, а також має входи скидання (Reset).
Довжина тактового імпульсу не повинна бути меншою 100 нс.
Час встановлення виходів – не менше 25 нс.
Логічні мікросхеми також легко підібрати.
К561ЛА7 К561ЛА8 К561ЛА9 К561ЛИ2
Хоча мікросхеми серії К561 і підтримують напругу живлення до 15 Вольт (чим більша напруга, тим більша швидкодія) але ми змушені використовувати мікросхеми старішої серії К176, максимальна напруга живлення яких – 9 Вольт. Тому напруга живлення всього автомата не повинна перевищувати 9 Вольт,
а в ідеальному випадку бути рівною цьому значенню.
3. Розробка графу
Будується на основі автомату Мура, що використовує алгоритм двійкового ділення (паралельний пристрій). Хоча за умовою я повинна розробити пристрій для ділення десяткових чисел, але, враховуючи, що блок-схема десяткового ділення складніша у два рази (Каган) та маючи КМОН, яка є повільною, я буду використовувати двійковий алгоритм (Чу, 23) та шифратори і дешифратори. Модифікований алгоритм приведе до такого графа:
CM – дозвіл
___
CM – логічна операція множення
X0: SR(M) <= AC(M)
X1: SR(S) = AC(S)
X2: SC = 23
Стани в автоматі Мура відповідають таким мікрокомандам:
Z0: SM 1
Z1: AC(M) – AC(M)’
Z2: MQ(S) 0
Z3: MQ(S) 1
Z4: SC 0
Z5: AC(M) – MQ(M) AC(1 – 22) – MQ(23)’ – MQ(1 – 22)
Z6: MQ(22) 1
AC(M) AC(M) add SR(M)
Z7: SC countup SC
Z8: AC(M) AC(M)’
В цифровому автоматі Мура в якості запам’ятовуючих елементів використовується двохтактні тригери, що дає можливість уникнути ефекту гонок. Виберемо D – тригери.
Кількість станів цифрового автомату забезпечать чотири двохтактні
D – тригери. Для кодування станів виберемо код “8421”, який є найкращий для машинної обробки.
4. Розробка управляючого блоку.
Таблиця кодування станів ЦА Мура | |||||||||
E | F | G | H | E | F | G | H | ||
S0 | 0 | 0 | 0 | 0 | S5 | 0 | 1 | 0 | 1 |
S1 | 0 | 0 | 0 | 1 | S6 | 0 | 1 | 1 | 0 |
S2 | 0 | 0 | 1 | 0 | S7 | 0 | 1 | 1 | 1 |
S3 | 0 | 0 | 1 | 1 | S8 | 1 | 0 | 0 | 0 |
S4 | 0 | 1 | 0 | 0 |
де i Zi = Si (кодуємо кодом 8421)
Визначимо умови станів для управляючого автомату
Ready – сигнал готовності до початкувиконання операції
Sync – синхронізуючий сигнал
При використанні D – тригера ми отримаємо наступний управляючий автомат:
5. Розробка операційного блоку
5.1 Основна дія
Тепер, коли ми маємо готовий управляючий автомат, можна приступати до проектування операційного автомата. Для виконання ділення нам необхідно мати вісім чотирьохрозрядні суматори і одинадцять чотирьохрозрядних регістри, не враховуючи супроводжуючих логічних схем.
Всі необхідні елементи легко можна знайти в (3) сторінки 193 – 290.
В якості базового суматора можна вибрати К561ИМ1. Єдиною позитивною рисою цієї мікросхеми є те, що її характеристики детально розписані
в (3) ст. 267.
Недоліки:
– страшенно мала швидкість (хоча, можливо, і не погана, як на елемент КМОН), час спрацювання – 550 нс. Тобто при послідовному під`єднанні чотирьох суматорів, як у нашому випадку, швидкість спрацювання становитиме 4.4 мкс.
– відсутність синхронізуючого входу. Цей недолік змушує нас вводити ще чотири чотирьохрозрядні регістри для збереження сум часткових добутків.
У ролі робочих регістрів буде виступати мікросхема К561ИР9.
16
9
Q0
1
10
11
Q1
15
12
7
Q2
14
5
13
6
Q3
2
4
3
8
Це є послідовно-паралельний регістр.
P/S = 0 – ввімкнено послідовний режим. При приході на C додатнього імпульсу вміст регістра буде зміщено вліво і в D0 буде записано біт з JK–входу.
P/S = 1 – при приході додатнього імпульсу на синхронізуючий вхід з входів D0 – D3 буде принято чотири біти.
R – при приході на цей вхід додатнього імпульсу регістр безпосередньо (асинхронно) буде скинутий в нулі.
T/C – перемикає виходи. Якщо T/C=1 то на виходах пряме число (Q0 – Q3), інакше на виходах будуть інвертовані рівні.
Час встановлення регістра при живленні 10 Вольт приблизно становить
200 нс.
5.2 Додаткова операція
Додаткова операція.
Основні алгоритми виконання
порозрядних логічних операцій.
Всі способи виконання порозрядних логічних операцій можна розбити
на дві групи:
– послідовні;
– паралельні.
Для простоти обробки чисел візьмемо під знаковий розряд 23.
Послідовний спосіб добре описаний в (2), стор. 145. Він полягає у тому,
що аргументи записуються в регістри і потім послідовно, біт за бітом, перебираються і відповідний результат записується у регістри результату. Коротко такий алгоритм представляється так:
1. Записати аргументи в регістри RGA та RGB.
2. Якщо ми пройшли всі розряди, то кінець.
3. Виконуємо задану логічну операцію над нульовими розрядами RGA та RGB і записуємо результат в старший розряд RGC.
4. Зсуваємо RGA, RGB та RGC на один розряд вправо.
5. Переходимо на 2.
Після n ітерацій в регістрі RGC матимемо результуюче значення,
де n – розрядність задачі.
Такий метод потребує мінімальної кількості логічних схем, однак є дуже повільним. Саме через недостатню швидкість виконання ми змушені відмовитися від цього методу, бо елементи КМОН самі по собі не відрізняються великою швидкістю.
Якщо взяти частоту шини 0.25 мегагерц, як того вимагала основна задача, то для опрацювання 24 розрядів необхідно буде 96 мікросекунди – гігантський інтервал часу простоювання системи вцілому. Тому у нашому випадку доцільніше використовувати другий метод, тобто метод паралельної обробки. Хоча він і потребуватиме в 24 разів більше логічних схем, однак можна зекономити на регістрах аргументів, приймаючи їх безпосередньо з шини. Для результату все ж доведеться використати регістр, щоб забезпечити роботу в режимі автомату із внутрішньою пам`яттю.
К561ЛА7
. . .
. . .
6. Зауваження до схеми автомату
виконання основної операції
Оскільки вибраний лічильник не може рахувати у зворотньому напрямку, на початку роботи у нього записується не 23, а 0. Тепер при виконанні ітерацій множення умовою виходу рівність лічильника 23.
Обов'язковим є заземлення всіх входів мікросхем що не використовуються ( див.(3) стор. 195). Ця умова спричинена специфікою КМОН - елементів і при невиконанні її мікросхеми можуть вийти з ладу.
До кожної мікросхеми необхідно підвести живлення і землю живлення:
– для мікросхем К561ИР9, К561ИМ1, К176ИЕ19 живлення (+9 Вольт)
і землю подавати на 16 і 8 ножки відповідно;
– для інших мікросхем живлення і землю подавати на 14 і 7 ножки відповідно.
6.1 Часові характеристики схеми
Швидкість системи визначається швидкістю спрацювання найповільніших її вузлів. Наша схемі є паралельним пристроєм.Це означає, що операції виконуються за один машинний такт. Тут можна виділити такі частини: занесення даних, ініціалізація, 23 такти за лічильником, завершення ділення. Враховуючи, що час спрацювання одного суматора становить не менше 550 нс. отримаємо, що лише для виконання додавання необхідно 4.4 мкс. Додавши ще час занесеня в регістр (200 нс.) а також час перемикання тригерів станів плюс супроводжуючої логіки, матимемо, що тривалість високого рівня синхронізуючого імпульсу повинна бути не менше 6 мкс. Час нульового рівня синхросигналу повинен бути достатнім
для спрацювання логічних схем умов, тобто приблизно не менше 2 мкс.
Таким чином очевидно, що період синхросигналу не повинен бути меншим, ніж 4 мкс, і наш автомат працюватиме на частотах не більше 0.16 мегагерц.
Для комп`ютера це звичайно ж замало, однак для якоїсь простої системи із обмеженими запасами енергії повинно бути достатньо.
Бажана форма сигналу
2 мкс
6 мікросекунд
Елементи КМОН дуже чутливі до крутизни фронтів синхронізуючих імпульсів. Якщо час активізуючого фронту перевищить якесь певне критичне значення (для кожної серії воно своє) пристрій не спрацює належним чином (3).
Висновок
Ми розробили автомат для ділення десяткових чисел. Всередині ми працювали з двійковими числами, перетворюючи їх на вході та виході у десяткові. Недоліком цього автомату є мала швидкодія, так як елементною базою для нас служили КМОН – технології. На сьогоднішній час розроблені спеціальні мікропроцесори, які виконують задану дію. Затрати на них є значно меншими.
На початок і кінець автомату я поставила перетворювач з двійково-десяткового у двійковий та з двійкового у двійково-десятковий. Мікросхеми К155ПР6 та К155ПР7 належать до логіки ТТЛ, тому їм передували перетворювачі рівнів від КМОН до ТТЛ К176ПУ1 та К176ПУ2. На виходах стоїть мікросхема К156ПУ6. Я використала мікросхеми ТТЛ тому, що в КМОН логіці таких мікросхем немає, а працювати з десятковими або двійково-десятковими числами є важко.
Список літератури
1. Методичні вказівки до курсового проекту з курсу “Схемотехніка ЕОМ”
для студентів спеціальності 6.08.04 “Комп’ютерні науки”.
Львів ДУ”ЛП”, 1995.
2. Каган Б. М. Электронные вычислительные машины и системы.
Москва: Энергоатомиздат, 1985.
3. Шило В.Л. Популярные цифровые микросхемы: Справочник.
Москва: Радио и связь, 1987.
4. ЕСКД. Правила выполнения электрических схем.
Москва: Издательство стандартов, 1976.
5. Обозначения условные графические в схемах. Двоичные логические
элементы ГОСТ 2.743 – 72
Москва: Государственный комитет стандартов совета министров СССР.
6. Я. Чу Организация ЭВМ и микропрограммирование.
Москва. Мир, 1975.
Зміст
1. Завдання 2
2. Огляд і аналіз літературних джерел 3
2.1 Поняття про комбінаційну схему та цифровий автомат 3
2.2 Декомпозиція обчислювального пристрою на операційний
і керуючий блоки 6
2.3 Кодування десяткових чисел 7
2.4 Управляючий автомат 8
2.5 Керуючі автомати з “твердою” логікою 9
2.6 Система логічних елементів 10
2.7 Двійково десятковий перетворювач 11
2.8 Структура і мікропрограми АЛП для ділення чисел
з фіксованою крапкою 13
2.8.1 Арифметичний пристрій з фіксованою крапкою 20
2.8.1.1 Ділення 23
2.8.1.2 Мікропрограми арифметичного пристрою 26
2.8.2 Послідовний арифметичний пристрій 27
2.8.2.1 Представлення чисел 28
2.8.2.2 Повний суматор – віднімач 29
2.8.2.3 Структура 30
2.8.3 Ділення двійкових чисел 32
2.8.3.1 Умова припинення ділення 33
2.8.3.2 Блок-схема алгоритму 34
2.8.4 Алгоритм десяткового ділення 36
2.9 КМОН 39
2.10 Мікросхеми 40
3. Розробка графа 41
4. Розробка управляючого блоку 43
5. Розробка операційного блоку 45
5.1 Основна дія 45
5.2 Додаткова операція 46
6. Зауваження до схеми автомату виконання основної операції 48
6.1 Часові характеристики схеми 49
Висновки 50
Список літератури 51
58