Лабораторна робота №4

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

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

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

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Проектування спеціалізованих комп’ютерних систем

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

Міністерство освіти та науки України Національний університет ”Львівська політехніка” ІКТА Кафедра СКС  Лабораторна робота №4 з дисципліни «ДОСЛІДЖЕННЯ ТА ПРОЕКТУВАННЯ СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ СИСТЕМ Ч.1» Лабораторна робота №4 Тема робота: Обчислення математичного виразу на лабораторній платі DE0. Мета роботи: навчитися на мові опису апаратних засобів обчислювати математичний вираз з виводом результату на семисегментні індикатори плати DE0 застосовуючи наявні кнопки. Хід роботи: Підключаю лабораторну плату DE0  Пишу програмний код для обчислювання математичного виразу  Провіряю вірність написання програмного коду  Задаєю математичний вираз згідно варіанту  Задаю параметри  Перевірка роботоздатності …  Програмний код: module lab4 ( clk, push_button, seg71, seg72, seg73, seg74 ); input wire clk; input wire push_button; output reg [7:0] seg71; output reg [7:0] seg72; output reg [7:0] seg73; output reg [7:0] seg74; reg [3:0] operand_a = 0; reg [3:0] operand_b = 0; reg [7:0] res = 0; reg [24:0] delay_reg = 0; //кожному шістнадцятковому значенню присвоюємо код цифри на 7сег. індикаторі always @(posedge clk) case(operand_a) // P6543210 4'h0 : seg71 <= 8'b11000000; 4'h1 : seg71 <= 8'b11111001; 4'h2 : seg71 <= 8'b10100100; 4'h3 : seg71 <= 8'b10110000; 4'h4 : seg71 <= 8'b10011001; 4'h5 : seg71 <= 8'b10010010; 4'h6 : seg71 <= 8'b10000010; 4'h7 : seg71 <= 8'b11111000; 4'h8 : seg71 <= 8'b10000000; 4'h9 : seg71 <= 8'b10010000; 4'hA : seg71 <= 8'b10001000; 4'hB : seg71 <= 8'b10000011; 4'hC : seg71 <= 8'b11000110; 4'hD : seg71 <= 8'b10100001; 4'hE : seg71 <= 8'b10000110; 4'hF : seg71 <= 8'b10001110; endcase always @(posedge clk) case(operand_b) // P6543210 4'h0 : seg72 <= 8'b11000000; 4'h1 : seg72 <= 8'b11111001; 4'h2 : seg72 <= 8'b10100100; 4'h3 : seg72 <= 8'b10110000; 4'h4 : seg72 <= 8'b10011001; 4'h5 : seg72 <= 8'b10010010; 4'h6 : seg72 <= 8'b10000010; 4'h7 : seg72 <= 8'b11111000; 4'h8 : seg72 <= 8'b10000000; 4'h9 : seg72 <= 8'b10010000; 4'hA : seg72 <= 8'b10001000; 4'hB : seg72 <= 8'b10000011; 4'hC : seg72 <= 8'b11000110; 4'hD : seg72 <= 8'b10100001; 4'hE : seg72 <= 8'b10000110; 4'hF : seg72 <= 8'b10001110; endcase always @(posedge clk) case(res[3:0]) // P6543210 4'h0 : seg73 <= 8'b11000000; 4'h1 : seg73 <= 8'b11111001; 4'h2 : seg73 <= 8'b10100100; 4'h3 : seg73 <= 8'b10110000; 4'h4 : seg73 <= 8'b10011001; 4'h5 : seg73 <= 8'b10010010; 4'h6 : seg73 <= 8'b10000010; 4'h7 : seg73 <= 8'b11111000; 4'h8 : seg73 <= 8'b10000000; 4'h9 : seg73 <= 8'b10010000; 4'hA : seg73 <= 8'b10001000; 4'hB : seg73 <= 8'b10000011; 4'hC : seg73 <= 8'b11000110; 4'hD : seg73 <= 8'b10100001; 4'hE : seg73 <= 8'b10000110; 4'hF : seg73 <= 8'b10001110; endcase always @(posedge clk) case(res[7:4]) // P6543210 4'h0 : seg74 <= 8'b11000000; 4'h1 : seg74 <= 8'b11111001; 4'h2 : seg74 <= 8'b10100100; 4'h3 : seg74 <= 8'b10110000; 4'h4 : seg74 <= 8'b10011001; 4'h5 : seg74 <= 8'b10010010; 4'h6 : seg74 <= 8'b10000010; 4'h7 : seg74 <= 8'b11111000; 4'h8 : seg74 <= 8'b10000000; 4'h9 : seg74 <= 8'b10010000; 4'hA : seg74 <= 8'b10001000; 4'hB : seg74 <= 8'b10000011; 4'hC : seg74 <= 8'b11000110; 4'hD : seg74 <= 8'b10100001; 4'hE : seg74 <= 8'b10000110; 4'hF : seg74 <= 8'b10001110; endcase always @(posedge clk) begin //оскільки при натисканні кнопки може виникати "деренчання" //відповідно вводимо затримку if(push_button == 0 && delay_reg == 0) delay_reg <= delay_reg + 1'b1; else if(delay_reg != 0) begin delay_reg <= delay_reg + 1'b1; if(delay_reg[24] == 1'b1) delay_reg <= 0; end //щоб уникнути "деренчання" виконуємо нову операцію після затримки if(delay_reg[24] == 1'b1) begin operand_a <= operand_a + 1'b1; operand_b <= operand_b + 2'b10; end res <= operand_a + operand_b; end endmodule КОНТРОЛЬНІ ЗАПИТАННЯ Призначення кнопок на платі DE0. Забезпечують користувачам простий механізм для перевірки, якщо кнопки і перемикачі функціонують нормально. Таким чином, він може бути використаний для усунення неполадок Який рівень сигналу подається на виводи кнопок? Висновок: На цій лабораторній роботі я навчився на мові опису апаратних засобів обчислювати математичний вираз з виводом результату на семисегментні індикатори плати DE0 застосовуючи наявні кнопки .
Антиботан аватар за замовчуванням

15.12.2014 21:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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