Розробка цифрового нерекурсивного CIX (FIR) фільтра

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Основи проектування цифрових засобів на ПЛІС

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка» Звіт з лабораторної роботи №5 з дисципліни:«Основи проектування цифрових засобів на ПЛІС» на тему: «Розробка цифрового нерекурсивного CIX (FIR) фільтра» Львів-2017 Тема: Розробка цифрового нерекурсивного CIX (FIR) фільтра. Мета роботи: Розробити цифровий нерекурсивний СІХ (FIR) фільтр. Постановка задачі: розробити цифровий нерекурсивний СІХ (FIR) фільтр. Завдання: 5. 97, 97, 97, 106, 106. Оптимізація чисел Переведемо дані числа у двійкові: 10610 = 11010102 9710 = 11000012 В даному випадку нам не потрібно оптимізовувати числа. VHDL-реалізація першого перемножувача library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity kiv_mod1 is Port ( KIV_A : in STD_LOGIC_VECTOR (7 downto 0); KIV_out1 : out STD_LOGIC_VECTOR (15 downto 0)); end kiv_mod1; architecture Behavioral of kiv_mod1 is signal kiv_prod,kiv_p7,kiv_p6,kiv_p5,kiv_p4,kiv_p3,kiv_p2,kiv_p1,kiv_p0:unsigned (15 downto 0); begin kiv_p0 <="00000000" & unsigned (kiv_A) & ""; kiv_p5 <="000" & unsigned (kiv_A) & "00000"; kiv_p6 <="00" & unsigned (kiv_A) & "000000"; kiv_prod <= kiv_p0+kiv_p5 +kiv_p6; kiv_out1 <= std_logic_vector (kiv_prod); end Behavioral;   VHDL-реалізація другого перемножувача library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity kiv_mod2 is Port ( KIV_A : in STD_LOGIC_VECTOR (7 downto 0); KIV_out2 : out STD_LOGIC_VECTOR (15 downto 0)); end kiv_mod2; architecture Behavioral of kiv_mod2 is signal kiv_prod, kiv_p7,kiv_p6,kiv_p5,kiv_p4,kiv_p3,kiv_p2,kiv_p1,kiv_p0:unsigned (15 downto 0); begin kiv_p1 <="0000000" & unsigned (kiv_A) & "0"; kiv_p3 <="00000" & unsigned (kiv_A) & "000"; kiv_p5 <="000" & unsigned (kiv_A) & "00000"; kiv_p6 <="00" & unsigned (kiv_A) & "000000"; kiv_prod <= kiv_p1 +kiv_p3+kiv_p5 +kiv_p6; kiv_out2 <= std_logic_vector (kiv_prod); end Behavioral;   Реалізація схеми CIX фільтру у Xilinx / Рис. 1. Схема CIX фільтру з синхронізацією виводу результату опрацювання Результат синтезу схеми CIX фільту, розробленого на основі ipcore Створюємо CIX-фільтр: / Рис. 2. Створення CIX-фільтру на основі IPCore VHDL-код тестового стенду 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 kiv_sh2_kiv_sh2_sch_tb IS END kiv_sh2_kiv_sh2_sch_tb; ARCHITECTURE behavioral OF kiv_sh2_kiv_sh2_sch_tb IS COMPONENT kiv_sh2 PORT( KIV_A : IN STD_LOGIC_VECTOR (7 DOWNTO 0); CLK : IN STD_LOGIC; CE : IN STD_LOGIC; CLR : IN STD_LOGIC; res_ip : OUT STD_LOGIC_VECTOR (16 DOWNTO 0); rfd : OUT STD_LOGIC; rdy : OUT STD_LOGIC; res : OUT STD_LOGIC_VECTOR (15 DOWNTO 0)); END COMPONENT; SIGNAL KIV_A : STD_LOGIC_VECTOR (7 DOWNTO 0) :=x"00"; SIGNAL CLK : STD_LOGIC :='0'; SIGNAL CE : STD_LOGIC :='1'; SIGNAL CLR : STD_LOGIC :='0'; SIGNAL res_ip : STD_LOGIC_VECTOR (16 DOWNTO 0); SIGNAL rfd : STD_LOGIC; SIGNAL rdy : STD_LOGIC; SIGNAL res : STD_LOGIC_VECTOR (15 DOWNTO 0); BEGIN UUT: kiv_sh2 PORT MAP( KIV_A => KIV_A, CLK => CLK, CE => CE, CLR => CLR, res_ip => res_ip, rfd => rfd, rdy => rdy, res => res ); clk_process : PROCESS BEGIN CLK <='0'; WAIT FOR 10 ns; CLK <= '1'; WAIT FOR 10 ns; END PROCESS; data_change_process : PROCESS VARIABLE I : INTEGER; BEGIN for i in 0 to 3 loop WAIT FOR 20 ns; kiv_A <= conv_std_logic_vector(conv_integer(kiv_A) + 1,8); end loop; kiv_a<="00000000"; for i in 0 to 4 loop wait for 20 ns; end loop; for i in 0 to 3 loop WAIT FOR 20 ns; kiv_A <= conv_std_logic_vector(conv_integer(kiv_A) + 2,8); end loop; kiv_a<="00000000"; for i in 0 to 4 loop wait for 20 ns; end loop; END PROCESS; -- *** Test Bench - User Defined Section *** tb : PROCESS BEGIN WAIT; -- will wait forever END PROCESS; -- *** End Test Bench - User Defined Section *** END;   Часова діаграма для перевірки результатів обчислень / Рис. 3. Часова діаграма результатів Висновок: на даній лабораторній роботі я навчився розробляти цифровий нерекурсивний СІХ (FIR) фільтр.
Антиботан аватар за замовчуванням

22.03.2018 19:03-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!