ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
integer pc=1;// Оголошення лічильника тактів, змінна типу integer
reg [3:0] S;// Оголошення регістра для зберігання масиву керуючих сигналів
reg Z=0;// Оголошення регістра для зберігання ознаки закінчення операції
always @ (posedge clk) / / Ця функція спрацьовує при позитивному (pos) перепаді (edge) сигналу clk (по фронту)
begin (pc)
: begin=4'b0110;// S1, s2=pc +1;
: begin (p [0] == 1) and (p [1] == 1) and ... (p [13] == 1) begin=4'b1000;// S3=pc +1;
: begin=4 «b0000;=1; S=4» b0000;
endmodule
5. Розробка помножувача по модулю m
модулярних помножувач повинен містити:
· два 78-розрядних вхідних регістри для прийому операндів з ШІВх,
· 78-розрядний регістр для видачі результату на ШІВих,
· тринадцять 7-розрядних модулярних суматорів для складання та коригування операндів,
· тридцять дев'ять 6-розрядних LUT-таблиць.
Операнди надходять в помножувач по 78-розрядної ШІВх і записуються у відповідні регістри. Виробляється вибірка значень з таблиць LUT1і LUT2. Таблиця LUT3 була замінена на 6-розрядний суматор з пункту 3.3 даного курсового проекту. Це рішення було ухвалене у зв'язку із зменшенням тимчасових витрат на обчислення значень даної таблиці і простотою реалізації суматора. Його робота описана в пункті 4. Результат складання подається в таблицю LUT4, записується у вихідний 78-розрядний регістр з подальшою видачею на ШІВих. Зміст таблиць LUT1, LUT2, LUT4 поміщено в додаток.
На рис. 5 (а) представлений фрагмент функціональної схеми помножувача для підстави 31.
Малюнок 5 (а) - Фрагмент функціональної схеми модулярного помножувача
На рис. 5 (б) зображений модулярні помножувач.
Призначення вхідних і вихідних сигналів:
) керуючі входи:
· Y1 - запис даних по порту С,
· Y2 - запис даних по порту D,
· Y3 - видача результату множення,
· S1 - запис даних у суматор по порту А,
· S2 - запис даних у суматор по порту В,
· S3 - видача результату складання,
· CLK - системний синхроимпульс (виробляється тактовим генератором),
· R - скидання.
) входи даних:
· С [77 .. 0] - порт D для вхідних 78-розрядних даних,
· D [77 .. 0] - порт C для вхідних 78-розрядних даних,
· Out [77 .. 0] - порт Out для вихідних 78-розрядних дані.
Малюнок 5 (б) - УДО модулярного помножувача
5.1 Приклади функціонування помножувача по модулю m
Зробимо перевірку працездатності помножувача множенням чисел по модулю 13.
Приклад 1.
Дано: С=7=000111 2, D=10=001 010 2.
Значенню 000111 2=7 в таблиці LUT1...