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

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

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

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

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

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра «Електронні обчислювальні машини» / Лабораторна робота №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:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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