Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
ЛАБОРАТОРНА РОБОТА № 2
З ПРЕДМЕТУ ”Мова опису програмних засобів”
НА ТЕМУ:
“ Розробка та моделювання декодера для семисегментного індикатора.”
Підготував:ст.гр.КІ-42
Трофімов О.С.
Прийняла: Колодчак О.М.
ЛЬВІВ 2005
Лабораторна робота №2
Розробка та моделювання декодера для семисегментного індикатора
Мета роботи: вивчити методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору 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 кожний раз, коли змінюється значення вхідного порту Х.
Порядок виконання роботи
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. Змінюючи стимулятори на вхідних портах декодера, перевірити коректність його роботи для
всіх можливих значень на вході.
Опис об’єкту на 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 entity;
architecture Decoder of Decoder is
-- 0123456
constant Y_00: std_logic_vector := "1110111";
constant Y_01: std_logic_vector := "0010010";
constant Y_02: std_logic_vector := "1011101";
constant Y_03: std_logic_vector := "1011011";
constant Y_04: std_logic_vector := "0111010";
constant Y_05: std_logic_vector := "1101011";
constant Y_06: std_logic_vector := "1101111";
constant Y_07: std_logic_vector := "1010010";
constant Y_08: std_logic_vector := "1111111";
constant Y_09: std_logic_vector := "1111011";
begin
process(X)
begin
case Conv_Integer(X) is
when 1 => Y<=Y_01;
when 2 => Y<=Y_02;
when 3 => Y<=Y_03;
when 4 => Y<=Y_04;
when 5 => Y<=Y_05;
when 6 => Y<=Y_06;
when 7 => Y<=Y_07;
when 8 => Y<=Y_08;
when 9 => Y<=Y_09;
when others => Y<=Y_00;
end case;
end process;
end architecture;
Часова діаграма роботи декодера
Висновок: в ході лабораторної роботи я вивчив методи опису поведінки об'єктів за допомогою архітектур та процесів, шляхи застосування оператора вибору case, навчитись моделювати поведінку об'єктів в САПР Active-HDL.