алгебри логіки, заданих в табл. 3.2 і 3.3. Після цього вказані функції реалізовуються за допомогою двійкових компонент (логічні елементи, що реалізовують операції будь-якого з функціонально повних логічних базисів). Функції, подібні заданим в табл. 3.1 і 3.2, як правило, погано мінімізуються. Тому реалізація всіх розрядів модульного суматора в порівнянні з реалізацією звичайного двійкового суматора, підсумовуючого числа з таким же числом розрядів, виявляється більш громіздкою. Це відноситься і до модульних помножувачів. Однак поява ППЗП зумовила можливість ефективної реалізації модульних операцій за допомогою методу табличної арифметики. Єдиний недолік цього методу – значні апаратурні витрати при реалізації таблиць істинності, множина зміни змінних в яких перевершує множину зміни змінних ППЗП. Це означає, що при великих значеннях модуля М апаратурна реалізація модульних операцій стає проблематичною. Останнє є обмежуючим чинником у використанні методу табличної арифметики при реалізації модульних операцій кінцевих кілець, що використовуються в ЦОС.
Таблиця 3.
Складання по модулю 3
х1 | х2
00 | 01 | 10
00 | 00 | 01 | 10
01 | 01 | 10 | 00
10 | 10 | 00 | 01
Таблиця 3.
Таблиця істинності для цифр першого розряду значень з табл. 3.1
х1 | х2
00 | 01 | 10
00 | 0 | 1 | 0
01 | 1 | 0 | 0
10 | 0 | 0 | 1
Таблиця 3.
Таблиця істинності для цифр другого розряду значень з табл. 3.1
х1 | х2
00 | 01 | 10
00 | 0 | 0 | 1
01 | 0 | 1 | 0
10 | 1 | 0 | 0
Однак потрібно відмітити, що розвиток інтегральної схемотехніки і поява ППЗП більшої місткості в деякій мірі компенсують вказаний обмежуючий чинник. Але сучасні ППЗП не дозволяють ефективно реалізувати арифметичні операції по модулю М при М > 212. Тому основним методом реалізації модульних операцій є метод додаткових зв'язків перенесень, який полягає у введенні додаткових перенесень між розрядами суматора з метою досягнення заданої величини модуля М, відмінної від величини модуля суматора без додаткових перенесень, рівної 2п, де п – число розрядів суматора. При цьому найменше число додаткових перенесень для двійкового п-розрядного суматора (усього одне додаткове перенесення з старшого розряду в молодший) виходить при виборі значення М, рівному 2 ± 1.
Рис. 3.. Схема суматора по модулю М – 2п ± 1.
На рис. 3.1 показана схема суматора п-розрядних чисел А = а1а2...ап і В = b1b1...bn по модулю М = 2п ± 1. Якщо підсумовування проводиться по модулю М = 2п – 1, то значення перенесення з старшого розряду підсумовується зі значенням молодшого розряду суми, якщо підсумовування проводиться по мо-ду-лю М = 2п + 1, то значення перенесення з старшого розряду віднімається з молод-шого розряду суми. Оскільки при підсумовуванні чисел по модулю М = 2п + доводиться відняти значення перенесення, реалізація операції суми по цьому модулю виявляється складнішою в порівнянні з реалізацією операції суми по модулю М = 2п – 1. Фактично суматор п-розрядних чисел по модулю М = 2п + 1 повинен складатися з повних однорозрядних суматорів – віднімачів, в той час як суматор п-розрядних чисел по модулю М = 2п – 1 складається з більш простих елементарних ланок – повних однорозрядних суматорів. Тому арифметика по модулю М = 2п – 1 більш переважна, ніж арифметика по модулю М = 2п + 1. Однак вибір кільця вирахування по модулю М = 2п + 1 зумовлений отримуваними ланками об'ємів ТЧП, визначених над таким кільцем і рівних ступеню 2. В цьому випадку при обчисленні ТЧП можна використати відомі швидкі алгоритми, засновані на прорідженні по частоті або за часом. Відомі також методи спрощення цієї арифметики. Апаратурна реалізація ТЧП, визначених над кільцем вирахування по модулю М = 2п + 1, може спрощуватися за рахунок вибору первісного елемента, рівного 2 або ступені 2. При цьому операції множення замінюються операціями зсуву. Це стосується ТЧП, визначених над кільцем вирахування по модулю будь-якого виду. В загальному випадку при побудові процесора ЦОС, орієнтованого не тільки на реалізацію ТЧП, необхідно реалізувати операцію модульного множення.
Помножувач п-розрядних чисел по модулю М = 2п + 1 може бути побудований на основі суматора, показаного на рис. 3.2. Однак в прямому виді використання модульного суматора неефективне через наявність циклічного перенесення, яке погіршує швидкодію схеми. Врахування циклічного перенесення краще здійснювати в подальшому такті обчислень (див. рис. 3.2). Перенесення, виникаюче при підсумовуванні двох слів часткових добутків А = а1а2...ап і В = b1b1...bn подається на молодший розряд суматора, що здійснює підсумовування подальшого слова часткових добутків С = с1с2...сп і результату суми слів А та В.
Рис. 3.. Схема матриці суматорів
Остаточна корекція суми, пов'язана з циклічним перенесенням, проводиться на додатковому (п + 1)-му кроці обчислень. Точно так само можна враховувати циклічне перенесення при послідовному обчисленні добутку.
Приклад 3.2. Наведемо укрупнену блок-схему матричного помножувача трирозрядних двійкових чисел по модулю М == 23 – 1. В матричному помножува-чі операція множення реалізовується апаратурним, а не мікропрограмним шляхом. Вироблення двох трирозрядних чисел можна записати таким чином:
Кожне слово часткових добутків необхідно привести по модулю М = 23 – 1. Для цього розряди з вагою, більшою 22, треба скласти з молодшими розрядами. Тоді
Зразкова блок-схема матриці суматорів помножувача показана на рис. 3.3. Остаточна корекція результату суми часткових творів здійснюється за допомогою суматора SM3. Тільки у цього