2. Розробка процесора Побудова граф-алгоритму шпф з основою 2

Якщо число N є ступенем 2, то його можна записати як (N/2) * 2; аналогічно N/2 = (M/4) * 2 і т.д. В результаті елементи початкового одновимірного масиву можна розподілити таким чином, щоб елементарними операціями були двохточкові ШПФ. Для побудови графу N-точкового ШПФ з основою 2 потрібно визначити кількість ярусів (Nяр) графу та кількості метеликів (Nм) на кожному ярусі таким чином:

Nяр = Log2N, для N=16, Log216 = 4;

Nм = N/2 = 16/2= 8.

Граф-алгоритм для 16-ти точкового ШПФ за основою 2 показаний на рис. 3.

Рис.3.Граф алгоритм 16-точкове ШПФ з основою 2тапрорідженнямзачастотою

На рис. 3 кільцям відповідають двохточкові ШПФ, стрілками зображено процедуру множення на повертаючі множники. Елементи пам'яті зображено точками та пронумеровано зверху вниз.

Метелик ШПФ показаний на рис. 4, де

Рис. 4. Двохточкове ШПФ (Метелик)

X, Y - результати базової операції; А, B - вхідні відліки; WN – повертаючих множники.

Обчислення повертаючих множників WN

Для виконання кожної базової операції на вхід метелика необхідно подати повертаючий множник (коефіцієнт) Wp, де W=e-2jπ/N при прямому ШПФ і W=e2jπ/N при зворотному ШПФ. Для алгоритму ШПФ з прорідженням за часом значення р пов'язані з номерами відліків п, беруть участь у виконанні базової операції на j-й ітерації, таким співвідношенням:

(10)

де j=1 ..., r-1 - номер повертаючих коефіцієнтів, що бере участь в базовій операції; ki - розряди r-ого кода номерів операндів.

Наприклад, для N=64 і r=2 на 1-й ітерації значення р(1) для всіх груп відліків рівне 0, на 2-й ітерації р(1)=k524= =k5N/4, т. д.

На третій ітерації

і т д.

Використовуючи вираз (10) здійснюємо обчислення повертаючих множників для 16-ти точкового ШПФ за основою 2 з прорідженням по частоті. Відмінністю буде зміна порядку слідування коефіцієнтів на різних ітераціях, тобто на першій ітерації:

На другій ітерації:

На третій ітерації:

На четвертій ітерації: p=0, для всіх груп відліків

Побудова модифікованого граф ШПФ

При апаратній реалізації графу ШПФ виникають незручності через неспівпадіння адрес комірок пам'яті з яких потрібно вичитувати елементи на кожному ярусі. Тому від графу зображеного на рис.3 доцільно перейти до графу зображеного на рис.5.

З рис. 5 видно, що для кожної базової операції на будь-якому ярусі дані беруться і записуються за тими самими адресами що і на попередньому ярусі (з заміщенням).

Метелики та комірки пам’яті пронумеровані у відповідності до графу на рис. 3. Порядок слідування повертаючих множників змінюється так, як зображено на рис. 5.

Рис.5. Модифікований граф 16-ти точкового ШПФ за основою 2 з прорідженням за частотою.

Біт інверсний порядок видачі даних

Ще однією особливістю алгоритму з прорідженням за частотою є те, що прямий порядок слідування даних на вході графу змінюється двійково-інверсним на виході. Тому для видачі даних в прямому порядку потрібно здійснити двійково-інверсну перестановку за правилом описаним в табл.1.

Таблиця 1 Двійково-інверсна перестановка даних

номер

Двійкове представле-ння

Двійкова інверсія

Двійково-інверсний номер

0

0000

0000

0

1

0001

1000

8

2

0010

0100

4

3

0011

1100

12

4

0100

0010

2

5

0101

1010

10

6

0110

0110

6

7

0111

1110

14

8

1000

0001

1

9

1001

1001

9

10

1010

0101

5

11

1011

1101

13

12

1100

0011

3

13

1101

1011

11

14

1110

0111

7

15

1111

1111

15

Для реалізації пристрою обчислення ШПФ використовується одна із модифікацій графу алгоритму (рис. 5), а саме його проекція на вертикальну площину. В результаті отримуємо схему ітераційного пристрою, зображену на рис. 6. Кожній ітерації роботи пристрою відповідає один ярус потокового графу ШПФ.

Проекція потокового графу ШПФ на вертикальну площину

Спрощена проекція потокового графу ШПФ на вертикальну площину показана на рис. 6.

Рис. 6. Спрощена проекція графу на вертикальну площину.

На рис.6 використані такі позначення:

Memory array – масив елементів пам'яті для зберігання проміжних результатів обробки;

MUX–вхідні мультиплексори для вибору вхідних даних на першому циклі, та проміжних даних не решті циклах роботи пристрою;

F1,F2,…,F8–вузли обробки (двохточкові ШПФ)

На рис. 6 не наведені повертаючі множники та виходи пристрою (ілюструється лише потік даних при обробці).

Формат вхідних та вихідних даних

Вхідні та вихідні дані є комплексними числами виду А=ar+jbi, де аr – дійсна частина, bi – уявна частина, j- уявна одиниця. Для їх кодування використовуються 32 розряди, причому 16 старших розрядів для кодування дійсної частини, 16 молодших для кодування уявної частини.

Рис. 7 Формат вхідних та вихідних даних

Дійсна і уявна частина є знаковими числами з фіксованою комою. Розряди 31 та 15 використовуються для кодування знаків, 30-24 та 14-8 для кодування цілих частин, 23-16 та 7-0 для кодування дробових частин дійсної та уявної складових числа відповідно до рис. 7.

Інтерфейс пристрою

Пристрій має 16 паралельних вхідних портів для прийому даних та два вхідні порти для керуючих сигналів – це сигналиRST (Reset – початковий скид) та CLK(Clock – синхронізація). Результати обробки вхідних даних видаються по 16-х паралельних вихідних портах. Всі порти, крім RSTiCLKє 32-х розрядні.

Розробка структурної схеми процесора

Структура процесора наведена на рис. 8. Дані надходять по 16-ти паралельних портах і проходячи через мультиплексори записуються у відповідні регістри. Мультиплексорами управляє керуючий автомат (Control Unit) по лінії SEL. При SEL = 0, в регістри записуються вхідні дані, при SEL = 1 – проміжні дані. Далі дані з регістрів поступають на входи двохточкових ШПФ та на наступному циклі знову записуються до відповідних регістрів. На останньому циклі, керуючий автомат генерує сигнал oen, за яким дані записуються в регістри та поступають на вихідні порти у біт-інверсному порядку (табл.1).

В ПЗП (ROM) зберігаються повертаючі множники, що є константами і подаються на двохточкові ШПФ через комутуючу мережу. Роботою комутуючої мережі (Comunication Network) управляє керуючий пристрій по лініях DC[3:0].

Далі детальніше розглянемо кожний з основних вузлів, на базі яких побудована структура процесора.

Двохточкові ШПФ (fft0 – fft7)

Вузол для обчислення двохточкового ШПФ наведений на рис. 9. На входи пристрою поступають два 32-х розрядних числа А і В та два 16-ти розрядних числа Wr i Wi. На виході отримуємо два 32-х розрядних числа X=A+B i Y=(A-B)WN.

Соседние файлы в папке MAZ-PLIS