1 плеча і записується в вихідний регістр.
На рис. 4 (а) представлений фрагмент функціональної схеми суматора для підстави 13.
Малюнок 4 (а) - Фрагмент функціональної схеми модулярного суматора
На рис. 4 (б) зображений модулярні суматор.
Призначення вхідних і вихідних сигналів:
) керуючі входи:
· S1 - запис даних по порту А,
· S2 - запис даних по порту В,
· S3 - видача результату,
· CLK - системний синхроимпульс (виробляється тактовим генератором),
· R - скидання.
) входи даних:
· А [77 .. 0] - порт А для вхідних 78-розрядних даних,
· В [77 .. 0] - порт В для вхідних 78-розрядних даних,
· Q [77 .. 0] - порт Q для вихідних 78-розрядних дані.
Малюнок 4 (б) - УДО модулярного суматора
4.1 Приклади функціонування суматора за модулем m
Зробимо перевірку працездатності суматора підсумовуванням чисел по модулю 13.
Приклад 1.
Дано: А=9=001001 2, В=8=001000 2, Коригування 51=110 011 2.
При виникненні одиниці переносу результат знімається з плеча мультиплексора data1x [6 .. 0] і він дорівнює 000 100 2=4.
Перевірка:
(А + В) mod 13=(9 + 8) mod 13=4.
На рис. 4.1 (а) представлена ??тимчасова діаграма рішення даного прикладу в QUARTUS II.
Малюнок 4.1 (а) - Рішення Прімера 1 в QUARTUS II
Приклад 2.
Дано: А=2=000010 2, В=5=000 101 2, Коригування 51=110 011 2
000101110011
000111 111010
Одиниці перенесення немає - результат знімається з плеча мультиплексора data0x [6 .. 0] і він дорівнює 000 111 2=7.
Перевірка:
(А + В) mod 13=(2 + 5) mod 13=7.
На рис. 4.1 (б) представлена ??тимчасова діаграма рішення даного прикладу в QUARTUS II.
Малюнок 4.1 (б) - Рішення Прімера 2 в QUARTUS II
4.2 Приклад керуючого пристрою сумматором по модулю m
Приклад керуючого пристрою сумматором наведений на малюнку 4.2. На входи надходять осведомітельних сигнали p [12 .. 0], а на виході з'являються відповідні керуючі сигнали S [3 .. 0]. Сигнал Z - позначає закінчення операції.
Малюнок 4.2 - Управляє пристрій сумматором
Приклад мікропрограми:
module UA
(
/ / {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!, p, Z, S
/ / {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
);
/ / Port Declaration
/ / {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! clk; [12:0] p; Z; [3:0] S;
/ / {{...