DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Розробка спеціалізованого перемножувача

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Звіт з лабораторної роботи №3 з дисципліни «Основи проектування цифрових засобів на ПЛІС» на тему: «Розробка спеціалізованого перемножувача» Тема: Розробка спеціалізованого перемножувача. Мета роботи: Проектування та перевірка спеціалізованого перемножувача на константу. Постановка задачі: Розробити спеціалізований перемножувач на константу. Покроковий опис кожного етапу оптимізації За варіантом, наша константа рівна: / Обраховуєм та переводимо у двійкову систему числення(32 біти, з яких першим є «0»): / / Переведемо дробову частину в десяткову систему числення: 0 110 0011 0011 0010 0100 1110 1001 10112= 166424130710 Оптимізуємо наш вираз: 0 110 0011 0011 0010 0100 1110 1001 10112 Крок1: 110112 заміняємо на 1001012 (27 на 32-5): 0 110 0011 0011 0010 0100 1110 1010 01012 Крок2: 111012 заміняємо на 1000112 (29 на 32-3): 0 110 0011 0011 0010 0101 0001 1010 01012 Отже, в оптимізованому варіанті буде на 2 одиниці менше Підкресленні одинички ми будемо віднімати. У неоптимізованого варіанту у VHDL коді число буде таким: kiv_prod <= (kiv_p0 + kiv_p1 + kiv_p3 + kiv_p4 + kiv_p7 + kiv_p9 + kiv_p10 + kiv_p11 + kiv_p14 + kiv_p17 + kiv_p20 + kiv_p21 + kiv_p24 +kiv_p25 + kiv_p29 + kiv_p30); У оптимізованого варіанту у VHDL коді число буде таким: kiv_prod <= (kiv_p5 +kiv_p12 + kiv_p14 + kiv_p17 + kiv_p20 + kiv_p21+ kiv_p24 +kiv_p25 + kiv_p29 + kiv_p30) - kiv_p0 -kiv_p2- kiv_p7 - kiv_p8; Перевірку зробимо під час побудови діаграм, зрівнявши 1 і 2 спосіб(оптимізований та неоптимізований) з 3 способом ( IP – ядро) в якому константа вже задана. Vhdl код реалізації оптимального множення на константу Розглянемо тільки оптимальний варіант множення /Результат синтезу схеми HDL Synthesis Report Macro Statistics # Adders/Subtractors : 28 40-bit adder : 24 40-bit subtractor : 4 ========================================================================= * Final Report * ========================================================================= Final Results RTL Top Level Output File Name : kiv_sw.ngr Top Level Output File Name : kiv_sw Output Format : NGC Optimization Goal : Speed Keep Hierarchy : No Design Statistics # IOs : 127 Cell Usage : # BELS : 890 # GND : 1 # INV : 107 # LUT1 : 18 # LUT2 : 64 # LUT3 : 69 # LUT4 : 96 # MULT_AND : 27 # MUXCY : 245 # MUXF5 : 2 # VCC : 1 # XORCY : 260 # IO Buffers : 127 # IBUF : 8 # OBUF : 119 ========================================================================= Device utilization summary: Number of Slices: 244 out of 6144 3% Number of 4 input LUTs: 354 out of 12288 2% Number of IOs: 127 Number of bonded IOBs: 127 out of 240 52% --------------------------- Partition Resource Summary: Delay: 22.234ns (Levels of Logic = 53) Total 22.234ns (11.634ns logic, 10.600ns route) (52.3% logic, 47.7% route) Total REAL time to Xst completion: 33.00 secs Total CPU time to Xst completion: 33.57 secs Результат синтезу схеми перемножувача розробленого на основі ip-core Створюємо IP- ядро та вибираємо розподілену пам’ять / Формуємо звіт: Timing Details: ---------------------------------------- Total 2.172ns (0.892ns logic, 1.280ns route) (41.1% logic, 58.9% route) Total REAL time to Xst completion: 14.00 secs Total CPU time to Xst completion: 13.54 secs --> Total memory usage is 427100 kilobytes Number of errors : 0 ( 0 filtered) Number of warnings : 0 ( 0 filtered) Number of infos : 0 ( 0 filtered) Vhdl код тестового стенду Код аналогічний коду з л.р. №2 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; LIBRARY UNISIM; USE UNISIM.Vcomponents.ALL; ENTITY kiv_sw_kiv_sw_sch_tb IS END kiv_sw_kiv_sw_sch_tb; ARCHITECTURE behavioral OF kiv_sw_kiv_sw_sch_tb IS COMPONENT kiv_sw PORT( KIV_A : IN STD_LOGIC_VECTOR (7 DOWNTO 0); KIV_CM : OUT STD_LOGIC_VECTOR (39 DOWNTO 0); KIV_mCM : OUT STD_LOGIC_VECTOR (39 DOWNTO 0); KIV_IP_CM : OUT STD_LOGIC_VECTOR (38 DOWNTO 0)); END COMPONENT; SIGNAL KIV_A : STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL KIV_CM : STD_LOGIC_VECTOR (39 DOWNTO 0); SIGNAL KIV_mCM : STD_LOGIC_VECTOR (39 DOWNTO 0); SIGNAL KIV_IP_CM : STD_LOGIC_VECTOR (38 DOWNTO 0); constant clk_c : time :=10 ns; BEGIN UUT: kiv_sw PORT MAP( KIV_A => KIV_A, KIV_CM => KIV_CM, KIV_mCM => KIV_mCM, KIV_IP_CM => KIV_IP_CM ); tb : PROCESS BEGIN KIV_A <="00000001"; wait for clk_c; KIV_A <="00001111"; wait for clk_c; KIV_A <="11111111"; wait for clk_c; END PROCESS; END; Часові діаграми для 3-ох варіантів. / Висновок: Після аналізу звітів можна визначити, що перемножувач з оптимізованою константою є ефективнішим, ніж перемножувач з неоптимізованою константою. У неоптимізованого варіанту затримка становить 22.071 ns, що еквівалентно 1*1000/T = 1*1000/22.071 = 45,3 MHZ, а у оптимізованого – 20.218 ns , що еквівалентно 1*1000/T = 1*1000/20.218 = 49,46 MHZ. Також присутня різниця в кількості логічних елементів(суматорів, віднімачів). В оптимізованому варіанті їх 9, а в неоптимізованому – 15. Як і в 2 лабораторній, найшвидшим виявився метод з використання IP-ядра – вбудованого інстурменту середовища XILINX. Затримка становила всього 2.172 ns що еквівалентно 1*1000/T = 1*1000/2.172 = 461 MHZ проте елементів в нього найбільше.
Антиботан аватар за замовчуванням

22.03.2018 19:07

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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