МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
||||||||||||||||
Побудова граф-алгоритму ШПФ з основою 2 наведена в попередніх розділах.При апаратній реалізації графу ШПФ виникають незручності через неспівпадіння адрес комірок пам'яті з яких потрібно вичитувати елементи на кожному ярусі. Тому на рис.6.2. наведений граф, де для кожної базової операції на будь-якому ярусі дані беруться і записуються за тими самими адресами що і на попередньому ярусі (з заміщенням). Рис.6.2. Модифікований граф 16-ти точкового ШПФ за основою 2 з прорідженням за частотою. Спрощена проекція потокового графу ШПФ на вертикальну площину показана на рис. 6.3 Рис. 6.3. Спрощена проекція графу на вертикальну площину. де використані такі позначення: - Memory array – масив елементів пам'яті для зберігання проміжних результатів обробки; - MUX – вхідні мультиплексори для вибору вхідних даних на першому циклі, та проміжних даних не решті циклах роботи пристрою; - F1,F2,…,F8 – вузли обробки (двохточкові ШПФ) На рис. 6.3 не наведені повертаючі множники та виходи пристрою (ілюструється лише потік даних при обробці). Формат вхідних та вихідних даних Вхідні та вихідні дані є комплексними числами виду А=ar+jbi, де аr – дійсна частина, bi – уявна частина, j- уявна одиниця. Для їх кодування використовуються 32 розряди, причому 16 старших розрядів для кодування дійсної частини, 16 молодших для кодування уявної частини. Рис. 6.4. Формат вхідних та вихідних даних Дійсна і уявна частина є знаковими числами з фіксованою комою. Розряди 31 та 15 використовуються для кодування знаків, 30-24 та 14-8 для кодування цілих частин, 23-16 та 7-0 для кодування дробових частин дійсної та уявної складових числа відповідно до рис. 7. Інтерфейс пристрою Пристрій має 16 паралельних вхідних портів для прийому даних та два вхідні порти для керуючих сигналів – це сигнали RST (Reset – початковий скид) та CLK(Clock – синхронізація). Результати обробки вхідних даних видаються по 16-х паралельних вихідних портах. Всі порти, крім RST i CLK є 32-х розрядні.
Розробка структурної схеми процесора Структура процесора наведена на рис. 6,5. Дані надходять по 16-ти паралельних портах і проходячи через мультиплексори записуються у відповідні регістри. Мультиплексорами управляє керуючий автомат (Control Unit) по лінії SEL. При SEL = 0, в регістри записуються вхідні дані, при SEL = 1 – проміжні дані. Далі дані з регістрів поступають на входи двохточкових ШПФ та на наступному циклі знову записуються до відповідних регістрів. На останньому циклі, керуючий автомат генерує сигнал oen, за яким дані записуються в регістри та поступають на вихідні порти у біт-інверсному порядку. В ПЗП (ROM) зберігаються повертаючі множники, що є константами і подаються на двохточкові ШПФ через комутуючу мережу. Роботою комутуючої мережі (Comunication Network) управляє керуючий пристрій по лініях DC[3:0]. Далі детальніше розглянемо кожний з основних вузлів, на базі яких побудована структура процесора. Двохточкові ШПФ (fft0 – fft7) Вузол для обчислення двохточкового ШПФ наведений на рис. 9. На входи пристрою поступають два 32-х розрядних числа А і В та два 16-ти розрядних числа Wr i Wi. На виході отримуємо два 32-х розрядних числа X=A+B i Y=(A-B)WN. Рис. 6.7 Внутрішня структура двохточкового ШПФ Комутаційна мережа (Comunication Network) Комутаційна мережа використовується для комутації двохточкового ШПФ з потрібним номером ПЗП у відповідні моменти часу (на відповідних робочих циклах пристрою). Вона складається із набору з’єднаних буферів, якими управляє керуючий автомат по лініях DC[3:0]. Встановлюючи потрібні значення сигналів на лініях керування він дозволяє або забороняє видачу даних на виході кожного з буферів. В момент часу на операційний пристрій можуть поступати дані тільки з одного буфера. На рис. 6.8. зображено підключення одного з операційних пристроїв до ПЗП.
Рис. 6.5. Структурна схема процесора обчислення 16-ти точкового ШПФ за основою 2
Рис. 6.8. Підключення двохточкового ШПФ до ПЗП через комутаційну мережу. Вибір кількості і об’єму ПЗП Для вибору кількості і об’єму ПЗП необхідно провести аналіз кількості і значень повертаючих множників. Для алгоритму 16-ти точкового ШПФ за основою 2 необхідно зберігати в пам’яті 8 значень повертаючих множників WN. WN = wr + jwi є комплексним числом, та має косинусну складову wr i синусну складову wi. На рис.11 графічно показані значення функцій cos(t) та sin(t). Рис. 6.9. Значення функцій cos i sin на періоді 2рі. З рис. 6.9 видно, що деякі з коефіцієнтів співпадають за значенням між собою, а саме: Wr0 = Wi4, Wr1 = Wi3 = Wi5, Wr2 = Wi2 = Wi6, Wr3 = Wi1 = Wi7, Wr4 = Wi0. Залишаються Wr5, Wr6, Wr7. Провівши такий аналіз приходимо до висновку – необхідно 8 16-ти розрядних ПЗП об'ємом в 1 комірку. Керуючий автомат (Control Unit) Керуючий автомат здійснює управління роботою процесора. Отримуючи сигнали RST i CLK він формує всі необхідні сигнали управління, а саме: - SEL – для управління роботою мультиплексорів; - DC[3:0] – чотирьохрозрядний сигнал для управління комутаційною мережею; - OEN – сигнал дозволу видачі вихідних даних На рис. 6.10 зображено граф керуючого автомату. При поступленні сигналу RST = 1 керуючий автомат переходить в початковий стан INIT. При встановлені RST в нуль автомат переходить з початкового стану в стан S0, далі в S1, і так далі як зображено на рис. 12. З стану S5 автомат повертається в стан S0. Перехід із стану в стан здійснюється по зростаючому фронту сигналу CLK. На відповідних станах керуючий автомат формує необхідні керуючі сигнали у відповідності до рис. 12. Рис. 6.10 Граф керуючого автомату. На рис.6.11 наведена симуляційна часова діаграма функціонування керуючого автомату. Рис.6.11. Симуляційна часова діаграма функціонування керуючого автомату. Тестування пристрою Для тестування пристрою формується тестова послідовність такого типу: Моделюються сигнали Acos(kt) i Asin(kt). Далі беруться значення цих сигналів у відповідних точках: ділянка на якій розглядається сигнал розбивається на 16 відліків і в кожній точці отримуються необхідні для проведення тестів значення. Значення отримані в результаті обчислення Acos(kt) є дійсними складовими вхідних даних, а Asin(kt) – уявними. Для побудови даної тестової послідовності була розроблена програма для обчислення виразів sin(kt) i cos(kt) при 1£ k £ 16. Програма складається з процедури переводу числа з десяткової системи числення в двійкову та тіла програми де в циклі обчислюються значення sin(kt) i cos(kt), які передаються як параметри процедурі для переведення в двійкову систему Лістинг програми: Program Garmonik_Form; uses CRT; type form = array [0..15] of byte; const p : byte = 180; var k,i,j : byte; y,x,dx,z,t,dg,g,gr : real; Real_,Image:form; procedure DEC2HEX (dec:real;var A:form); var zila,drob,sum:real; begin for i:= 15 downto 0 do A[i] := 0; if dec >= 0 then A[15] := 0 else A[15] := 1; zila := abs(int(dec)); drob := abs(frac(dec)); if drob = 0 then if zila = 1 then A[8] := 1 else A[15] := 0 else begin sum := drob; for i:=7 downto 0 do begin sum := sum*2; if sum >= 1 then begin A[i] := 1; sum:=sum-1 end end end end; begin clrscr; k := 15; dx := Pi/8; dg := p/8; while k <= 15 do begin x := 0; g:= 0; while x < 2*Pi do begin t := x*k; gr := g*k; y := cos(t); DEC2HEX(y,Real_); z := sin(t); DEC2HEX(z,Image); write(gr:3:1,' y= ',y:3:5,' z= ',z:3:5,' '); for i:=15 downto 0 do write(Real_[i]); write(' '); for i:=15 downto 0 do write(Image[i]); writeln; x := x + dx; g := (g + dg); end; inc(k) end; readln end. За результатами отриманими в результаті виконання даної програми будується набір тестових послідовностей та формується script – файл для тестування пристрою засобами пакету Active HDL. Нижче наведений текст скрипт-файлу: acom $DSN/src/ButterFly.vhd acom $DSN/src/OperationUnit.vhd asim fft fft force IN0 16#01000000 150ns, 16#00EC0061 650ns, 16#00B500B5 1150ns, 16#006100EC 1650ns, 16#00000100 2150ns,16#806100EC 2150ns, 16#80B500B5 2650ns, 16#80EC0061 3150ns, 16#81000000 3650ns, 16#80EC8061 4150ns, 16#80B580B5 4650ns, 16#806180EC 5150ns, 16#00008100 5650ns, 16#006180EC 6150ns, 16#00B580B5 6650ns, 16#00EC8061 7150ns, 16#01000000 7650ns force IN1 16#01000000 150ns, 16#00B500B5 650ns, 16#00000100 1150ns, 16#80B500B5 1650ns, 16#81000000 2150ns,16#80B580B5 2150ns, 16#00008100 2650ns, 16#00B500B5 3150ns, 16#01000000 3650ns, 16#00B500B5 4150ns, 16#00000100 4650ns, 16#80B500B5 5150ns, 16#81000000 5650ns, 16#80B580B5 6150ns, 16#00008100 6650ns, 16#00B580B5 7150ns, 16#01000000 7650ns force IN2 16#01000000 150ns, 16#006100EC 650ns, 16#80B500B5 1150ns, 16#80EC8061 1650ns, 16#00008100 2150ns,16#00EC8061 2150ns, 16#00B500B5 2650ns, 16#806100EC 3150ns, 16#81000000 3650ns, 16#806180EC 4150ns, 16#00B580B5 4650ns, 16#00EC0061 5150ns, 16#00000100 5650ns, 16#80EC0061 6150ns, 16#80B580B5 6650ns, 16#006180EC 7150ns, 16#01000000 7650ns force IN3 16#01000000 150ns, 16#00000100 650ns, 16#81000000 1150ns, 16#00008100 1650ns, 16#01000000 2150ns,16#00000100 2150ns, 16#81000000 2650ns, 16#00008100 3150ns, 16#01000000 3650ns, 16#00000100 4150ns, 16#81000000 4650ns, 16#00008100 5150ns, 16#01000000 5650ns, 16#00000100 6150ns, 16#81000000 6650ns, 16#00008100 7150ns, 16#01000000 7650ns force IN4 16#01000000 150ns, 16#806100EC 650ns, 16#80B580B5 1150ns, 16#00EC8061 1650ns, 16#00000100 2150ns,16#80EC8061 2150ns, 16#00B580B5 2650ns, 16#006180EC 3150ns, 16#81000000 3650ns, 16#006180EC 4150ns, 16#00B500B5 4650ns, 16#80EC0061 5150ns, 16#00008100 5650ns, 16#00EC0061 6150ns, 16#80B500B5 6650ns, 16#806180EC 7150ns, 16#01000000 7650ns force IN5 16#01000000 150ns, 16#80B500B5 650ns, 16#00008100 1150ns, 16#00B500B5 1650ns, 16#81000000 2150ns,16#00B580B5 2150ns, 16#00000100 2650ns, 16#80B580B5 3150ns, 16#01000000 3650ns, 16#80B500B5 4150ns, 16#00008100 4650ns, 16#00B500B5 5150ns, 16#81000000 5650ns, 16#00B580B5 6150ns, 16#00000100 6650ns, 16#80B580B5 7150ns, 16#01000000 7650ns force IN6 16#01000000 150ns, 16#80EC0061 650ns, 16#00B580B5 1150ns, 16#806100EC 1650ns, 16#00008100 2150ns,16#006100EC 2150ns, 16#80B580B5 2650ns, 16#00EC0061 3150ns, 16#81000000 3650ns, 16#00EC8061 4150ns, 16#80B500B5 4650ns, 16#006180EC 5150ns, 16#00000100 5650ns, 16#806180EC 6150ns, 16#00B500B5 6650ns, 16#80EC8061 7150ns, 16#01000000 7650ns force IN7 16#01000000 150ns, 16#81000000 650ns, 16#01000000 1150ns, 16#81000000 1650ns, 16#01000000 2150ns,16#81000000 2150ns, 16#01000000 2650ns, 16#81000000 3150ns, 16#01000000 3650ns, 16#81000000 4150ns, 16#01000000 4650ns, 16#81000000 5150ns, 16#01000000 5650ns, 16#81000000 6150ns, 16#01000000 6650ns, 16#81000000 7150ns, 16#01000000 7650ns force IN8 16#01000000 150ns, 16#80EC8061 650ns, 16#00B500B5 1150ns, 16#806180EC 1650ns, 16#00000100 2150ns,16#006180EC 2150ns, 16#80B500B5 2650ns, 16#00EC8061 3150ns, 16#81000000 3650ns, 16#00EC0061 4150ns, 16#80B580B5 4650ns, 16#006100EC 5150ns, 16#00008100 5650ns, 16#806100EC 6150ns, 16#00B580B5 6650ns, 16#80EC0061 7150ns, 16#01000000 7650ns force IN9 16#01000000 150ns, 16#80B580B5 650ns, 16#00000100 1150ns, 16#00B580B5 1650ns, 16#81000000 2150ns,16#00B500B5 2150ns, 16#00008100 2650ns, 16#80B500B5 3150ns, 16#01000000 3650ns, 16#80B580B5 4150ns, 16#00000100 4650ns, 16#00B580B5 5150ns, 16#81000000 5650ns, 16#00B500B5 6150ns, 16#00008100 6650ns, 16#80B500B5 7150ns, 16#01000000 7650ns force IN10 16#01000000 150ns, 16#806180EC 650ns, 16#80B500B5 1150ns, 16#00EC0061 1650ns, 16#00008100 2150ns,16#80EC0061 2150ns, 16#00B500B5 2650ns, 16#006180EC 3150ns, 16#81000000 3650ns, 16#006100EC 4150ns, 16#00B580B5 4650ns, 16#80EC8061 5150ns, 16#00000100 5650ns, 16#00EC8061 6150ns, 16#80B580B5 6650ns, 16#806100EC 7150ns, 16#01000000 7650ns force IN11 16#01000000 150ns, 16#00008100 650ns, 16#81000000 1150ns, 16#00000100 1650ns, 16#01000000 2150ns,16#00008100 2150ns, 16#81000000 2650ns, 16#00000100 3150ns, 16#01000000 3650ns, 16#00008100 4150ns, 16#81000000 4650ns, 16#00000100 5150ns, 16#01000000 5650ns, 16#00008100 6150ns, 16#81000000 6650ns, 16#00000100 7150ns, 16#01000000 7650ns force IN12 16#01000000 150ns, 16#006180EC 650ns, 16#80B580B5 1150ns, 16#80EC0061 1650ns, 16#00000100 2150ns,16#00EC0061 2150ns, 16#00B580B5 2650ns, 16#806180EC 3150ns, 16#81000000 3650ns, 16#806100EC 4150ns, 16#00B500B5 4650ns, 16#00EC8061 5150ns, 16#00008100 5650ns, 16#80EC8061 6150ns, 16#80B500B5 6650ns, 16#006100EC 7150ns, 16#01000000 7650ns force IN13 16#01000000 150ns, 16#00B580B5 650ns, 16#00008100 1150ns, 16#80B580B5 1650ns, 16#81000000 2150ns,16#80B500B5 2150ns, 16#00000100 2650ns, 16#00B500B5 3150ns, 16#01000000 3650ns, 16#00B580B5 4150ns, 16#00008100 4650ns, 16#80B580B5 5150ns, 16#81000000 5650ns, 16#80B500B5 6150ns, 16#00000100 6650ns, 16#00B500B5 7150ns, 16#01000000 7650ns force IN14 16#01000000 150ns, 16#00EC8061 650ns, 16#00B580B5 1150ns, 16#006180EC 1650ns, 16#00008100 2150ns,16#806180EC 2150ns, 16#80B580B5 2650ns, 16#80EC8061 3150ns, 16#81000000 3650ns, 16#80EC0061 4150ns, 16#80B500B5 4650ns, 16#806100EC 5150ns, 16#00000100 5650ns, 16#006100EC 6150ns, 16#00B500B5 6650ns, 16#00EC0061 7150ns, 16#01000000 7650ns force IN15 16#01000000 150ns, 16#01000000 650ns, 16#01000000 1150ns, 16#01000000 1650ns, 16#01000000 2150ns,16#01000000 2150ns, 16#01000000 2650ns, 16#01000000 3150ns, 16#01000000 3650ns, 16#01000000 4150ns, 16#01000000 4650ns, 16#01000000 5150ns, 16#01000000 5650ns, 16#01000000 6150ns, 16#01000000 6650ns, 16#01000000 7150ns, 16#01000000 7650ns
force CLK 0 0, 1 50ns, -r 100ns force RST 1 0, 0 110ns run 8000ns
Читайте також:
|
|||||||||||||||||
|