Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Metod_labs_v5

.pdf
Скачиваний:
17
Добавлен:
12.02.2016
Размер:
4.03 Mб
Скачать

Рис.9. Часові діаграми моделювання конвеєрного перемножувачів на основі структури типу «Дерево»

Створюєм новий модуль Project -> New Source типу Schematic.

Розміщуємо у відповідності з варіантом індивідуального завдання в схемотехнічному редакторі помножувачі, суматори та регістри, сполучаємо відповідні виводи. В результаті отримуємо схему конвеєрного процесора наведеного на рис. 10.

Рис. 10. Схема реалізації заданої функції із використанням розробленого конвеєрного помножувача.

Результати моделювання схеми реалізації заданої функції засобами ISIM наведено на наступному рисунку.

Рис.11. Часові діаграми моделювання конвеєрного процесора

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1Розробити функціональну схему конвеєрного процесора (розрядність вхідних даних - 8 біт) (див. таб.1) засобами пакету Xilinx Webpack.

2Виконати логічну симуляцію конвеєрного процесора пакету Xilinx Webpack.

3Реалізувати конвеєрний процесор на основі одного з кристалів ПЛІС фірми Xilinx засобами пакету Xilinx Webpack для визначення затрат обладнання та швидкодії конвеєрного процесора.

4Виконати часову симуляцію роботи конвеєрного процесора засобами пакету Xilinx Webpack для перевірки коректності його роботи.

5Скласти та захистити звіт з лабораторної роботи.

 

 

 

Таблиця 1. Варіанти завдань.

 

 

 

 

 

Функція КОП

Функція КОП

 

 

 

 

 

 

1.

2*(a+d)-c

16.

1+a2 – (b + c)2

 

2.

5*a*b + c*d

17.

a*b + d2*(c + b)

 

3.

a2 + b*c-d2

18.

9*b + d2*(c-a)

 

4.

3*b2 – a*c

19.

k*(b + d2*c) +3

 

5.

a*b + d2*c

20.

a*(b + d)2*c + 4

 

6.

a*(d-c2) + b

21.

(c*b + d)2*a

 

7.

c - (a + b)2

22.

(a*b + d2) - t

 

8.

7 – c2 * (a+d)

23.

10 – c0 * (a+d)2

 

9.

3*(a + b*c)

24.

(5 – c2 )* (a+d)

 

10.

(3+a)2 – (b - d)2

25.

k - (t-r2) + p2

 

11.

6*a-b + c*d

26.

b*(a + b) + (d2 - c)

 

12.

c*(d-c2) + b2

27.

(a + b)*(a2 + b*c)

 

13.

a-(d-c)2 + b2

28.

d*c – (b*a + b2)

 

14.

b*d+a2 + b

29.

d*(a + b*c) - 5

 

15.

k2 + (t-r2) + p

30.

3*(a2 – b2)*(d + b*c)

 

ЛАБОРАТОРНА РОБОТА № 5

РОЗРОБКА ЦИФРОВОГО НЕРЕКУРСИВНОГО СІХ (FIR) ФІЛЬТРА

Мета роботи: розробити цифровий нерекурсивний СІХ (FIR) фільтр.

МЕТОДИЧНІ ВІДОМОСТІ Фільтри зі скінченною імпульсною характеристикою (СІХ-фільтри)

широко використовуються в системах цифрової обробки сигналів через їхню високу швидкодію та лінійну фазову характеристику. Реалізація СІХ-фільтрів на програмованих логiчних iнтегральних схемах (ПЛІС) має ряд переваг: це висока продуктивність, малі апаратні витрати, швидке перенастроювання та висока якість фільтрування завдяки повній адаптації реалізованої структури алгоритму фільтрації, сумiсна реалiзацiя з iншими блоками обробки в межах системи на кристалi.

Фільтр зі скінченною імпульсною характеристикою (нерекурсивний фільтр, СІХ-фільтр) — один з видів електронних фільтрів, характерною особливістю якого є обмеженість по часу його імпульсної характеристики (з якогось моменту часу вона стає вона стає точно рівною нулеві). Такий фільтр називають ще нерекурсивним через відсутність зворотного зв'язку. Знаменник передаточної функції такого фільтру — певна константа.

Обчислення СІХ -фільтра полягає в знаходженні наступної суми добутків:

yn = a1xn +…+ akxn-k+1+… +aKxn-K+1,

(1)

де xn - вхідні дані, ak - коефіцієнти імпульсної характеристики, K - довжина імпульсної характеристики, yn - вихідні результати з індексом n.

Рис. 1.1 Графічне представлення СІХ фільтра

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1.Побудувати СІХ фільтр з кількістю коефіцієнтів згідно варіанту.

2.Розробити модуль проекту, що реалізує СІХ фільтр з допомогою схематичного редактора.

a. Виконати (верифікацію) часове симулювання на основі:

i.тестової послідовності, заданої згідно варіанту;

ii.тесту, що моделює подачу на цифровий фільтр аналога дельта функції, для знаходження імпульсної характеристики фільтра.

b. Проаналізувати функціональну та технологічну схеми отримані в процесі проектування та затрати на реалізацію.

3.Реалізувати СІХ фільтр з допомогою Генератора ядер (IP Core Generator)

. Виконати (верифікацію) часове симулювання. Проаналізувати функціональні та технологічні схеми отримані в процесі проектування та затрати на реалізацію.

4.Порівняти результати отримані згідно п. 2 та п. 3. Зробити висновки.

5.Скласти та захистити звіт з лабораторної роботи.

Кількість коефіцієнтів фільтра визначається: N mod 10 + 5

Тестові послідовності вхідних сигналів згідно варіанту в таблиці 1: Таблиця 1.

Тестова вхідна послідовність

Вхідна

 

послідовність

1

0…N, 5… 0... N+8…

2

N+10…0…N+7

3

0…N+5, 0…N+5…

4

N+7…0,N,0…N+7

де N - номер студента в журналі.

Значення коефіцієнтів фільтра задає викладач.

ПРИКЛАД ВИКОНАННЯ ЗАВДАННЯ

Необхідно розробити СІХ фільтр з кількістю коефіцієнтів рівною 5. Тестова послідовність вхідних даних 1 2 3 4 0 0 0 0 0 0 2 4 6 8 0 0 0 0 0 0

Значення коефіцієнтів фільтра:

1.9,79,79,79,7,7

2.79,79,79,79,79

Реалізація завдання

Завдання реалізовується в середовищі Xilinx Webpack . Порядок виконання:

1.Створення проекту File->New Project та задання його назви.

2.Створення екземпляру модуля спеціалізованого перемножувача на константу, розробленого в другій лабораторній роботі: Project-> Add Copy of Source.

Рис. 1.2 Створення екземпляру модуля спеціалізованого перемножувача на константу

В VHDL код скопійованого компонента спеціалізованого перемножувача на константу вносимо зміни відповідно до необхідної константи перемноження.

3.Створення нову схему Project -> New Source типу Schematic.

4.Схемотехнічне проектування принципової схеми СІХ фільтра. Проаналізувавши формулу (1) в теоретичних відомостях прийнято рішення:

для реалізації перемноження вхідних даних xn на коефіцієнти імпульсної характеристики ak використовувати спеціалізовані перемножувачі на константу.

Отже для визначення результатів СІХ фільтрації необхідно знайти:

yn = a1xn +…+ akxn-k+1+… +aKxn-K+1 = a1*79 + a2*79+ a3*79 + a4*79+ a5*79

Для цього необхідно використати 5 перемножувачів на константу, 4 суматора та 4 елементи затримки (регістри).

Розміщаємо у відповідності з рис.1 в схемотехнічному редакторі помножувачі, суматори та регістри, сполучаємо відповідні виводи. В результаті отримуємо схему СІХ фільтра наведену на наступному рисунку.

Рис. 1.3 Схема реалізації СІХ фільтра

На наступній схемі доданий регістр для синхронізації виводу результату опрацювання.

Рис. 1.4 Схема СІХ фільтра з синхронізацією виводу результату опрацювання

5. Моделювання проекту засобами ISIM. Для моделювання використовується вхідна послідовність задана згідно варіанту.

5.1. Тест моделює подачу на цифровий фільтр вхідної послідовності 1 2

3 0 0 0 0 0 0 2 4 6 8 0 0 0 0 0 0

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; LIBRARY UNISIM;

USE UNISIM.Vcomponents.ALL; ENTITY GVV_FIR_GVV_FIR_sch_tb IS END GVV_FIR_GVV_FIR_sch_tb;

ARCHITECTURE behavioral OF GVV_FIR_GVV_FIR_sch_tb IS

COMPONENT GVV_FIR

 

 

 

 

PORT( GVV_A :

IN

STD_LOGIC_VECTOR

(7 DOWNTO 0);

GVV_CE

:

IN

STD_LOGIC;

 

GVV_CLK

:

IN

STD_LOGIC;

 

GVV_CLR

:

IN

STD_LOGIC;

 

GVV_F :

OUT

STD_LOGIC_VECTOR

(15 DOWNTO 0));

END COMPONENT;

 

 

 

 

SIGNAL GVV_A :

STD_LOGIC_VECTOR (7 DOWNTO 0):=x"01";

SIGNAL GVV_CE

:

STD_LOGIC :='1';

 

SIGNAL GVV_CLK

:

STD_LOGIC :='0';

 

SIGNAL GVV_CLR

:

STD_LOGIC :='0';

 

SIGNAL GVV_F :

STD_LOGIC_VECTOR (15 DOWNTO 0);

BEGIN

UUT: GVV_FIR PORT MAP(

GVV_A => GVV_A,

GVV_CE => GVV_CE,

GVV_CLK => GVV_CLK,

GVV_CLR => GVV_CLR, GVV_F => GVV_F

);

clk_process : PROCESS BEGIN

GVV_CLK <='0'; WAIT FOR 10 ns; GVV_CLK <= '1'; WAIT FOR 10 ns;

END PROCESS; data_change_process : PROCESS VARIABLE I : INTEGER;

BEGIN

--WAIT FOR 10 ns; for i in 0 to 3 loop

WAIT FOR 10 ns; GVV_A <=

conv_std_logic_vector(conv_integer(GVV_A) + 1,8); WAIT FOR 10 ns;

end loop;

for i in 0 to 5 loop gvv_a<="00000000"; wait for 20 ns;

end loop; --gvv_a<='0'

for i in 0 to 3 loop WAIT FOR 10 ns; GVV_A <=

conv_std_logic_vector(conv_integer(GVV_A) + 2,8); WAIT FOR 10 ns;

end loop;

for i in 0 to 5 loop gvv_a<="00000000"; wait for 20 ns;

end loop; END PROCESS;

tb : PROCESS BEGIN

WAIT; -- will wait forever END PROCESS;

END;

Результати моделювання наведені на наступному рисунку:

Рис. 1.5 Часові діаграми моделювання СІХ фільтра

5.2.Тест моделює подачу на цифровий фільтр аналога дельта функції. На виході фільтра – його імпульсна характеристика.

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; LIBRARY UNISIM;

USE UNISIM.Vcomponents.ALL; ENTITY GVV_FIR_GVV_FIR_sch_tb IS END GVV_FIR_GVV_FIR_sch_tb;

ARCHITECTURE behavioral OF GVV_FIR_GVV_FIR_sch_tb IS

COMPONENT GVV_FIR

 

 

 

 

PORT( GVV_A :

IN

STD_LOGIC_VECTOR

(7 DOWNTO 0);

GVV_CE

:

IN

STD_LOGIC;

 

GVV_CLK

:

IN

STD_LOGIC;

 

GVV_CLR

:

IN

STD_LOGIC;

 

GVV_F :

OUT

STD_LOGIC_VECTOR

(15 DOWNTO 0));

END COMPONENT;

 

 

 

 

SIGNAL GVV_A :

STD_LOGIC_VECTOR (7 DOWNTO 0):=x"00";

SIGNAL GVV_CE

:

STD_LOGIC :='0';

 

SIGNAL GVV_CLK

:

STD_LOGIC :='0';

 

SIGNAL GVV_CLR

:

STD_LOGIC :='1';

 

SIGNAL GVV_F :

STD_LOGIC_VECTOR (15 DOWNTO 0);

BEGIN

UUT: GVV_FIR PORT MAP(

GVV_A => GVV_A,

GVV_CE => GVV_CE,

GVV_CLK => GVV_CLK, GVV_CLR => GVV_CLR, GVV_F => GVV_F

);

clk_process : PROCESS BEGIN

GVV_CLK <='0'; WAIT FOR 10 ns; GVV_CLK <= '1'; WAIT FOR 10 ns;

END PROCESS;

-- *** Test Bench - User Defined Section ***

tb : PROCESS BEGIN

GVV_CLR <= '0' AFTER 4 NS;

GVV_CE <= '1' AFTER 3 NS; WAIT FOR 15 ns;

GVV_A <= "00000001"; WAIT FOR 16 ns;

GVV_A <= "00000000";

WAIT; -- will wait forever END PROCESS;

Результати моделювання наведені на рисунку:

Рис. 1.6 Часові діаграми моделювання подачі на цифровий фільтр дельта функції

6.Виконання синтезу і імплементування всього проекту.

7.Створення символу (умовного графічного позначення (УГП)) створеного нами компонента (СІХ фільтра).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]