Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №2
З курсу „Мови опису апаратних засобів”
на тему:
“ Розробка та моделювання декодера для семисегментного індикатора”
Тема роботи: Розробка та моделювання декодера для семисегментного індикатора.
Мета роботи: вивчити методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчитись моделювати поведінку об'єктів в САПР Active-HDL.
Теоретична частина
Для візуалізації процесів, що протікають в складному цифровому пристрої, необхідно виводити значення сигналів на 7-сегментний індикатор. Необхідно розробити на VHDL пристрій "декодер", що перетворює вхідний 4-розрядний двійково-десятковий код у сигнал для одного розряду 7-сегментного індикатора. Кожний розряд індикатора являє собою 7 сегментів, подання логічної одиниці на які викликає їх свічення. Наприклад, подання на індикатор числа "1101101" приведе до висвічення цифри "3":
Якщо на вхід Х пристрою об'єкта поданий код від 0 до 9, декодер повинен сформувати на виході Y сигнал, який задає зображення цього числа. Для кодів 10..15 на виході формується сигнал "0000000" (жоден сегмент індикатора не світиться). Декодер повинен оновлювати сигнал Y кожний раз, коли змінюється значення вхідного порту Х.
Текст VHDL-опису декодера :
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity decoder is
port(
X : in STD_LOGIC_VECTOR(3 downto 0);
Y : out STD_LOGIC_VECTOR(6 downto 0)
);
end decoder;
--}} End of automatically maintained section
architecture decode of decoder is
constant Y0 : STD_LOGIC_VECTOR := "1110111";
constant Y1 : STD_LOGIC_VECTOR := "0100100";
constant Y2 : STD_LOGIC_VECTOR := "1011101";
constant Y3 : STD_LOGIC_VECTOR := "1101101";
constant Y4 : STD_LOGIC_VECTOR := "0101110";
constant Y5 : STD_LOGIC_VECTOR := "1101011";
constant Y6 : STD_LOGIC_VECTOR := "1111011";
constant Y7 : STD_LOGIC_VECTOR := "0100101";
constant Y8 : STD_LOGIC_VECTOR := "1111111";
constant Y9 : STD_LOGIC_VECTOR := "1101111";
constant other : STD_LOGIC_VECTOR := "0000000";
begin
process(X)
begin
case(X) is
when "0000" => Y <= Y0;
when "0001" => Y <= Y1;
when "0010" => Y <= Y2;
when "0011" => Y <= Y3;
when "0100" => Y <= Y4;
when "0101" => Y <= Y5;
when "0110" => Y <= Y6;
when "0111" => Y <= Y7;
when "1000" => Y <= Y8;
when "1001" => Y <= Y9;
when others => Y <= other;
end case;
end process;
end decode;
Часові діаграми роботи декодера :
Висновки: В даній лабораторній роботі було вивчено методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, освоєно засоби моделювання поведінки об'єктів в САПР Active-HDL.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!