Цепочка сдвиговых регистров

Как я могу реализовать эту схему в виде цепочки сдвиговых регистров в Verilog.

Здесь a и b - константы, а A - 32-битный регистр

A = A(t-7) + A(t-16) + a.A(t-2) + b.A(t-15) for 16<= t <= 63

Спасибо

1 ответ

Решение

Реализация - это прямое отображение вашей формулы в регистр сдвига и некоторую связующую логику, или, более формально, в конечный автомат. Я считаю, что ваша формула:

for 16<= t <= 63:
A(t)  = A(t-7) + A(t-16) + a.A(t-2) + b.A(t-15)

A - это ваша выходная переменная (или выходная функция), текущее значение которой зависит от ее значений в t-7, t-2, а также t-15, Это означает, что вам нужно сохранить 15 предыдущих значений (например, с помощью регистра сдвига). Как только вы получите эти значения, вычислить ваш результат очень просто.

В сети есть много примеров реализации регистра сдвига Verilog. Самый простой способ - описать один модуль регистра, а затем создать его несколько раз.

Другие вопросы по тегам