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

Розробка та моделювання декодера для семисегментного індикатора

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

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

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

Рік:
2015
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Мови опису апаратних засобів
Група:
КІ-44

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 2 з курсу „ Мови опису апаратних засобів ” Тема: Розробка та моделювання декодера для семисегментного індикатора Львів – 2005 Мета роботи: вивчити методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчитись моделювати поведінку об'єктів в САПР Active-HDL. Теоретичні відомості: Для візуалізації процесів, що протікають в складному цифровому пристрої, необхідно виводити значення сигналів на 7-сегментний індикатор. Необхідно розробити на VHDL пристрій "декодер", що перетворює вхідний 4-розрядний двійково-десятковий код у сигнал для одного розряду 7-сегментного індикатора. Кожний розряд індикатора являє собою 7 сегментів, подання логічної одиниці на які викликає їх свічення. Наприклад, подання на індикатор числа "1101101" приведе до висвічення цифри "3": Інтерфейс декодера: 4-розрядний вхідний порт X типу std_logic_vector (3 downto 0), вихідний 7-розрядний порт Y типу std_logic_vector (6 downto 0): Якщо на вхід Х пристрою об'єкта поданий код від 0 до 9, декодер повинен сформувати на виході Y сигнал, який задає зображення цього числа. Для кодів 10..15 на виході формується сигнал "0000000" (жоден сегмент індикатора не світиться). Декодер повинен оновлювати сигнал Y кожний раз, коли змінюється значення вхідного порту Х. Рекомендації до створення VHDL-опису: Можливі значення вихідного сигналу задавати за допомогою констант. Для перетворення вхідного сигналу з типу std_logic_vector в тип integer використовувати функцію Conv_Integer. Приклад її застосування: n := Conv_Integer(S) , де n - змінна типу integer, S - змінна або сигнал типу std_logic_vector. Для того, щоби використовувати цю функцію, необхідно підключити відповідний пакет підпрограм, додавши рядок use IEEE.STD_LOGIC_UNSIGNED.all; на початку файлу опису. При застосуванні оператора case використати можливість вибору алтернативи для всіх можливих значень змінної або сигналу. Порядок виконання роботи: Створив новий проект в Active-HDL. Створив об'єкт декодера та описав на VHDL його поведінку. Скомпілював створений об'єкт (меню Design \ Compile, або клавіша <F11>). У вікні Design Browser для встановлення верхнього рівня моделювання (Top Level) вибрав об'єкт-декодер. Ініціалізував моделювання об'єкту (меню Simulation \ Initialize Simulation). Створив в проекті новий файл Waveform Viewer (меню File \ New \ Waveform). Вставив в вікно Waveform Viewer вхідний та вихідний сигнали декодера (меню Waveform \ Add Signals). Призначив вхідному сигналу декодера стимулятори (меню Waveform \ Stimulators). Запустив процес симуляції декодера (меню Simulation \ Run). Дослідив та перевірив отримані часові діаграми роботи декодера. Змінюючи стимулятори на вхідних портах декодера, перевірив коректність його роботи для всіх можливих значень на вході. Текст VHDL-опису декодера. library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Decoder is port( X : in STD_LOGIC_VECTOR(3 downto 0); Y : out STD_LOGIC_VECTOR(6 downto 0) ); end Decoder; architecture Dec of Decoder is begin process(X) variable n:integer; begin n:=Conv_Integer(X); case n is when 0 => Y <= "1110111"; when 1 => Y <= "0100100"; when 2 => Y <= "1011101"; when 3 => Y <= "1101101"; when 4 => Y <= "0101110"; when 5 => Y <= "1101011"; when 6 => Y <= "1101111"; when 7 => Y <= "1010010"; when 8 => Y <= "1111111"; when 9 => Y <= "1101111"; when others => Y <= "0000000"; end case; end process; end Dec; Часові діаграми роботи декодера.  Висновки: виконуючи дану лабораторну роботу, я вивчив методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчився моделювати поведінку об'єктів в САПР Active-HDL на прикладі моделювання декодера.
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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