48898 (588620), страница 11
Текст из файла (страница 11)
В паралельному суматорі інформаційні біти всіх розрядів поступають на входи одночасно. Результат (сума) з’являється на виході практично миттєво. Паралельний суматор на рис. 7.5.5 відноситься до класу комбінаційних логічних схем. Для фіксації даних на входах і виходах суматорів зазвичай використовують різноманітні додаткові регістри.
7.5.2 Віднімачі
Далі буде показано, що суматори і віднімачі подібні один до одного, і, крім того напіввіднімачі та повні віднімачі використовуються аналогічно напівсуматорам та повним суматорам. Таблиця двійкового віднімання приведена нижче, в ній наведено правила віднімання двійкових чисел, що подані на рис. 7.5.6, у вигляді таблиці дійсності. Ми бачимо, що В віднімається з А (А і В – вхідні сигнали), результат (різниця) появляється на виході D1. Якщо В більше за А (як в рядку 2 таблиці), потрібно позичити 1 в сусіднього старшого розряду. Сигнал позики вказано у стовпці В0.
Табл. 7.5.2. Таблиця двійкового віднімання
Входи | Виходи | |||
А | В | Di | B0 | |
0 | 0 | 0 | 0 | |
0 | 1 | 1 | 1 | |
1 | 0 | 1 | 0 | |
1 | 1 | 0 | 0 | |
A-B | Різниця | Позика |
Рис. 7.5.6. Таблиця двійкового віднімання
При відніманні багаторозрядних двійкових чисел треба приймати до уваги позику “одиниць” в більш старших розрядах.
Таблиця дійсності, що містить всі можливі комбінації, які виникають при відніманні двійкових чисел, приведена нижче.
Табл. 7.5.3. Таблиця дійсності повного віднімача
Входи | Виходи | |||
A | В | Bin | Di | B0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
A – B – Bin | Різниця | Позика |
Умовне позначення повного віднімача показано на рис. 7.5.7,а. Ліворуч – входи А, В, Bin, праворуч – виходи Di, B0.По аналогії з повним суматором повний віднімач можливо зібрати з двох напіввіднімачів і логічного елемента АБО. На рис. 7.5.7,б показано як потрібно поєднати напіввіднімачі і логічний елемент АБО, щоб отримати повний віднімач. Розгорнута логічна схема повного віднімача наведена на рис. 7.5.7,в. Ця схема працює у відповідності до таблиці дійсності 7.5.3. При необхідності логічні елементи І та АБО можливо замінити на три логічних елемента І-НЕ. В цьому випадку ми отримаємо схему повного віднімача, аналогічну до схеми повного суматора.
а)
б)
в)
Рис. 7.5.7. Повний віднімач а) – умовне графічне позначення; б) – структурна схема для випадку використання двох напіввіднімачів і логічного елемента АБО; в) – принципова схема
Поєднуючи між собою напіввіднімачі і повні віднімачі, отримують пристрої, що називають паралельними віднімачами. Аналогічним чином до розглядуваного вище трьохрозрядного суматора збирається і паралельний віднімач. Суматор на рис. 7.5.5 називається паралельним, оскільки інформаційні біти всіх розрядів в доданках поступають на даний суматор одночасно.
На рис. 7.5.8 подано структурну схема, отримана шляхом об’єднання одного напіввіднімача і трьох повних віднімачей. Це схема 4-розрядного паралельного віднімача, який виконує операцію віднімання одного двійкового числа B3B2B1B0 з двійкового числа А3А2А1А0. Зверніть увагу, що верхній (на схемі) віднімач виконує віднімання в розряді одиниць (СМР). Вихід B0 цього віднімача пов’язаний з віднімачем розряду двійок.
Рис. 7.5.8. 4-розрядний паралельний віднімач
Взагалі вихід позики B0 кожного віднімача пов’язаний з входом позики Bin віднімача сусіднього старшого розряду. Ці лінії зв’язку “слідкують” за позиками в процесі віднімання двійкових чисел.
7.5.3 Програми реалізації суматорів, віднімачів в інтегрованому середовищі MAX+PLUS II
Програма для реалізації 4-розрядного суматора за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
SUBDESIGN add_gate
(
A[4..1], B[4..1], cin : input;
C[4..1], cout : output;
)
VARIABLE
carry_out[5..1] : node;
BEGIN
carry_out[1] = cin;
FOR i IN 1 TO 4 GENERATE
C[i] = A[i] $ B[i] $ carry_out[i];
carry_out[i + 1] = CARRY ( A[i] & B[i] # carry_out[i] & ( A[i] # B[i] ));
END GENERATE;
cout = carry_out[5];
END;
Програма для реалізації 4-розрядного віднімача за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
SUBDESIGN add_sub
(
A[4..1], B[4..1] : input = GND;
Res[4..1], Cout : output;
)
VARIABLE
S[4..1] : node;
Cout_int : node;
BEGIN
(Cout_int, S[]) = (GND, A[]) - (GND, B[]);
(Cout, Res[]) = (Cout_int, S[]);
END;
7.5.4 Результати програмної реалізації суматорів, віднімачів
На рис. 7.5.9 зображено вікно сигнального редактору проекту “add_gate”.
Рис. 7.5.9. Результати тестування 4-розрядного суматора
На рис. 7.5.10 зображено вікно сигнального редактору проекту “add_sub”.
Рис. 7.5.10. Результати тестування 4-розрядного віднімача
8. Проект реалізації COM-порту в САПР MAX+PLUS II
8.1 Теоретичні відомості про послідовні порти і протокол RS-232
Послідовний інтерфейс для передачі даних в одну сторону використовує одну сигнальну лінію, по якій інформаційні біти передаються один за одним послідовно. Такий засіб передачі і визначає назву інтерфейсу і порту, що його реалізує. Ці назви відповідають англійським термінам Serial Interface і Serial Port. Послідовна передача даних може відбуватись як в асинхронному, так і у синхронному режимах.
При асинхронній передачі кожному біту передує старт-біт, що сигналізує приймачу про початок чергової посилки, за яким зазвичай слідують біти даних і, можливо, біт паритету. Завершує посилку стоп-біт, що гарантує визначену затримку між сусідніми посилками (рис. 8.1).
Рис. 8.1. Формат асинхронної передачі
Старт-біт наступного посланого байту може посилатись в будь-який момент після закінчення стоп-біту, тобто між передачами можливі паузи нефіксованої довжини. Старт-біт, що має завжди строго визначене значення (лог. 0), забезпечує простий механізм синхронізації приймача. Приймач і передавач працюють на одній швидкості обміну, що виміряється в кількості передаваємих бітів за секунду. Внутрішній генератор синхронізації приймача використовує лічильник-дільник опорної частоти, що обнуляється в момент прийняття початку (переднього фронту) старт-біту. Цей лічильник генерує внутрішні строби, по яким приймач фіксує біти, які він приймає. В ідеальному варіанті строби розташовуються в середині бітових інтервалів, що забезпечує можливість прийняття даних і при деяких неузгодженнях швидкостей приймача і передавача.
Неважко помітити, що при передачі 8 біт даних, одного контрольного і одного стоп-біта гранично допустиме неузгодження швидкостей приймача і передавача, при якому дані будуть розпізнані вірно, не може перевищувати 5%. З врахуванням фазових змін (затягнутих фронтів сигналу) і дискретності роботи внутрішнього лічильника синхронізації реально допустимі менші відхилення частот. Чим менший коефіцієнт ділення внутрішньої частоти внутрішнього генератора (частота передачі), тем більше похибка прив’язки стробів до середині бітового інтервалу, і, відповідно, вимоги до узгодження частот найбільш строгі. Також, чим вище частота передачі, тим більше вплив факторів, що призводять до похибок.
Формат асинхронної посилки дозволяє виявляти можливі помилки передачі:
1) якщо прийнятий перепад, що сигналізує про початок посилки, а по стробу старт-біта зафіксований рівень логічного одиниці, то старт-біт вважається помилковим і приймач знову переходить до стану очікування. Про дану помилку формату приймач може і не повідомляти;
2) якщо під час, відведений під стоп-біт(и), виявлено рівень логічного нуля, фіксується помилка стоп-біта (також помилка формату);
3) якщо використовується контроль паритету, то після посилки бітів даних (перед стоп-бітом) посилається контрольний біт. Цей біт доповнює кількість одиничних біт даних до парного або непарного в залежності від прийнятої згоди. Прийняття біту з помилковим значенням контрольного біту при включеному контролі паритету призводить до фіксації помилки прийнятих даних.
Контроль формату дозволяє знаходити обрив лінії: при цьому зазвичай приймається логічний нуль, який спочатку трактується як старт-біт і нульові біти даних, але потім спрацьовує контроль стоп-біту.
Кількість біт даних може бути 5, 6, 7 або 8 (5- і 6-бітні формати мало поширені). Кількість стоп біт може бути 1, 1.5 і 2 (“півтора біта” означає лише довжину стопового інтервалу).
Асинхронний обмін в персональному комп’ютері реалізується за допомогою протоколу RC-232.
Інтерфейс RC-232 призначений для підключення апаратури, що приймає або передає дані (ООД – одно кінцевий об’єкт передачі даних або АДП – апаратура передачі даних), до одно кінцевої апаратури каналів даних. В ролі АДП може виступати комп’ютер, принтер, плоттер або інші периферійні пристрої. Цій апаратурі відповідає абревіатура DTE – Data Transfer Equipment. В ролі АКД зазвичай виступає модем, цій апаратурі відповідає абревіатура DCE – Data Communication Equipment. Кінцевою метою підключення є з’єднання двох пристроїв DTE, повна схема з’єднання приведена на рис. 8.2. Інтерфейс дозволяє виключити канал зв’язку разом з парою пристроїв DTE (модемів), поєднав пристрої безпосередньо за допомогою нуль-модемного кабелю (рис. 8.3).
Рис. 8.2. Повна схема з’єднання за RC-232
Рис. 8.3. З’єднання за RC-232 нуль-модемним кабелем
Стандарт описує керуючі сигнали інтерфейсу, пересилку даних, електричний інтерфейс і типи сполучень. Стандарт описує асинхронний і синхронний режими обміну, але COM-порти підтримують лише асинхронний режим.
8.2 Структура COM-порту при його реалізації в САПР MAX+PLUS II
Принципова структурна схема COM-порту при його реалізації в системі автоматизованого проектування MAX+PLUS II зображена на рис. 8.4. Вона являє собою розгорнутий варіант рис. 8.2, де в ролі одно кінцевого об’єкту передачі даних виступатиме пульт з 20 варіантами вихідного сигналу.