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

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

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

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

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

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

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра «Електронні обчислювальні машини» / Лабораторна робота №2 “Розробка та моделювання декодера для семисегментного індикатора” з дисципліни: “ Моделювання комп'ютерних систем ” Львів - 2013 Порядок виконання роботи: 1. Створити новий проект в Active-HDL. 2. Створити об'єкт декодера та описати на VHDL його поведінку. 3. Скомпілювати створений об'єкт (меню Design \ Compile, або клавіша <F11>). 4. У вікні Design Browser для встановлення верхнього рівня моделювання (Top Level) вибрати об'єкт-декодер. 5. Ініціалізувати моделювання об'єкта (меню Simulation \ Initialize Simulation). 6. Створити в проекті новий файл Waveform Viewer (меню File \ New \ Waveform). 7. Вставити в вікно Waveform Viewer вхідний та вихідний сигнали декодера (меню Waveform \ Add Signals). 8. Призначити вхідному сигналу декодера стимулятори (меню Waveform \ Stimulators). 9. Запустити процес симуляції декодера (меню Simulation \ Run). 10. Вивчити отримані часові діаграми роботи декодера. 11. Змінюючи стимулятори на вхідних портах декодера, перевірити коректність його роботи для всіх можливих значень на вході. 12. Підготувати звіт до захисту. Теоретична частина: Для візуалізації процесів, що протікають в складному цифровому пристрої, необхідно виводити значення сигналів на 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 кожний раз, коли змінюється значення вхідного порту Х. Назва та мета виконання лабораторної роботи Назва: Розробка та моделювання декодера для семисегментного індикатора. Мета: Вивчити методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчитись моделювати поведінку об'єктів в САПР Active-HDL. Опис засобів Active-HDL для моделювання об’єктів Головними засобами Active-HDL для моделювання об’єктів є: Waveform Viewer – цей модуль дозволяє переглядати вхідні та вихідні сигнали у вигляді часових діаграм що дозволяє змоделювати потрібний об’єкт без помилок перевіривши у Waveform Viewer усі можливі стани моделі Simulators – набір симуляторів які дозволяють симулювати роботу реального об’єкту генеруючи потрібні для тестування сигнали у потрібній послідовності, у програмі Active-HDL є декілька симуляторів, наприклад – Лічильник, клавіатура, годинник, введення формули, та системи випадкових чисел. HDL Editor - текстовий редактор, призначений для файлів редагування файлів HDL. Він відображає окремі категорій синтаксису в різних кольорах. Редактор тісно інтегрований з мовою VHDL для включення налагодження коду джерела. Block Diagram Editor - редактор блок-схем який являє собою графічний інструмент, призначений для створення блок-схем. Редактор автоматично переводить графічно розроблені дизайни моделей в VHDL або Verilog код. Language Assistant - є допоміжним інструментом, який надає ряд VHDL і Verilog моделювання типових шаблонів, логіки і функціональних блоків. Він інтегрований з редактором HDL, так що ми можемо автоматично вставляти потрібні шаблони в редаговані вихідні файли. Language Assistant дозволяє нам визначити наші власні шаблони. Memory View - є інструментом налагодження який відображає вміст пам'яті визначений в конструкції (наприклад, об'єкти двовимірний масив ). Console - вікно консолі являє собою інтерактивний ввід-вихід тексту пристрою, який: Забезпечує запис Active-HDL макросів і користувальницьких сценаріїв Тексти повідомлень, що генеруються Active-HDL. State Machine Editor - редактор автоматів з кінцевими станами – графічний інструмент, розроблений для редагування діаграм кінцевого автомата. Редактор реалізує автоматичний перевід графічних примітивів в коди VHDL. Waveform Editor - редактор, призначений для графічного відображення та редагування результатів симуляції - часових діаграм. List - вікно списка, показує результати моделювання, виконані в виведеному на таблиці текстовому форматі. Це дозволє нам прослідкувати за результатами моделювання з точністю до дельти циклу. Processes - вікно процесів, показує діюче значення одночасних процесів в розробленому проекті протягом моделювання. Програма Active-HDL повністю підтримує мову VHDL тому у ній є достатньо засобів для моделювання, завдяки доступним функціям if, case, while, for можна повністю описати архітектуру та інтерфейс моделі. Текст 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 decoder of decoder is begin process (X) subtype TOutput is STD_LOGIC_VECTOR(6 downto 0); constant ZERO: TOutput := "1110111"; constant ONE: TOutput := "0100100"; constant TWO: TOutput := "1011101"; constant THREE: TOutput := "1101101"; constant FOUR: TOutput := "0101110"; constant FIVE: TOutput := "1101011"; constant SIX: TOutput := "1111011"; constant SEVEN: TOutput := "0100101"; constant EIGHT: TOutput := "1111111"; constant NINE: TOutput := "1101111"; constant GT_NINE:TOutput := "0000000"; begin if X'event then c1: case Conv_Integer(X) is when 0 => Y <= ZERO; when 1 => Y <= ONE; when 2 => Y <= TWO; when 3 => Y <= THREE; when 4 => Y <= FOUR; when 5 => Y <= FIVE; when 6 => Y <= SIX; when 7 => Y <= SEVEN; when 8 => Y <= EIGHT; when 9 => Y <= NINE; when others => Y <= GT_NINE; end case c1; end if; end process; end decoder; Часові діаграми роботи декодера / Висновки Під час виконання цієї лабораторної роботи я вивчив методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчитись моделювати поведінку об'єктів в САПР Active-HDL. А також дізнався що у мові VHDL присутні оператори процедурних мов програмування. Такі як case, if і тд. Також є можливість оголошувати константи та нові типи даних.
Антиботан аватар за замовчуванням

27.05.2014 23:19

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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