Лабораторна робота №8

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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Мови опису апаратних засобів

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

Мета роботи: Навчитися використовувати блок-діаграми (Block Diagrams) для декомпозиції складних об'єктів на структурні складові. Отримати навички застосування констант generic для проектування структурних елементів. Розробити модель 8-розрядного 7-сегментного індикатора. Теоретична частина Постановка задачі Створити блок - генератор сигналів для 8-розрядного 7-сегментного індикатора. Декодер розряду індикатора та паралельний регістр (моделі яких було розроблено в лабораторних роботах №2 і №5) мають входити до проекту як структурні складові. Інтерфейс генератора сигналів містить: вхідний 32-розрядний порт Х типу std_logic_vector (31 downto 0), на який у двійково-десятковій формі подається 8-розрядне десяткове число (на кожний десятковий розряд по 4 двійкові розряди); вхідний порт WE типу std_logic, подання '1' на який дозволяє запис у проміжний регістр блоку; сигнал синхронізації CLK типу std_logic, вісім 7-розрядних вихідних портів LCD7 … LCD0 типу std_logic_vector (6 downto 0), що підключаються безпосередньо до відповідних розрядів 7-сегментного індикатора. Схема блоку, створеною за допомогою блок-діаграм САПР Active-HDL.  Результат роботи: library IEEE; use IEEE.std_logic_1164.all; entity Gensyg is port( CLK : in STD_LOGIC; WE : in STD_LOGIC; X : in STD_LOGIC_VECTOR(31 downto 0); LCD0 : out STD_LOGIC_VECTOR(6 downto 0); LCD1 : out STD_LOGIC_VECTOR(6 downto 0); LCD2 : out STD_LOGIC_VECTOR(6 downto 0); LCD3 : out STD_LOGIC_VECTOR(6 downto 0); LCD4 : out STD_LOGIC_VECTOR(6 downto 0); LCD5 : out STD_LOGIC_VECTOR(6 downto 0); LCD6 : out STD_LOGIC_VECTOR(6 downto 0); LCD7 : out STD_LOGIC_VECTOR(6 downto 0) ); end Gensyg; architecture Gensyg of Gensyg is component decoder port ( X : in STD_LOGIC_VECTOR(3 downto 0); Y : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DeMux port ( CLK : in STD_LOGIC; X : in STD_LOGIC_VECTOR(31 downto 0); Y0 : out STD_LOGIC_VECTOR(3 downto 0); Y1 : out STD_LOGIC_VECTOR(3 downto 0); Y2 : out STD_LOGIC_VECTOR(3 downto 0); Y3 : out STD_LOGIC_VECTOR(3 downto 0); Y4 : out STD_LOGIC_VECTOR(3 downto 0); Y5 : out STD_LOGIC_VECTOR(3 downto 0); Y6 : out STD_LOGIC_VECTOR(3 downto 0); Y7 : out STD_LOGIC_VECTOR(3 downto 0) ); end component; component RegisterPE generic( BusWidth : INTEGER := 8 ); port ( CLK : in STD_LOGIC; Data_In : in STD_LOGIC_VECTOR(7 downto 0); WE : in STD_LOGIC; DATA_Out : out STD_LOGIC_VECTOR(7 downto 0) ); end component; constant DANGLING_INPUT_CONSTANT : STD_LOGIC := 'Z'; signal BUS214 : STD_LOGIC_VECTOR (3 downto 0); signal BUS260 : STD_LOGIC_VECTOR (3 downto 0); signal BUS268 : STD_LOGIC_VECTOR (3 downto 0); signal BUS276 : STD_LOGIC_VECTOR (3 downto 0); signal BUS284 : STD_LOGIC_VECTOR (3 downto 0); signal BUS292 : STD_LOGIC_VECTOR (3 downto 0); signal BUS300 : STD_LOGIC_VECTOR (3 downto 0); signal BUS312 : STD_LOGIC_VECTOR (3 downto 0); signal BUS510 : STD_LOGIC_VECTOR (31 downto 0); signal Dangling_Input_Signal : STD_LOGIC; begin U0 : decoder port map( X => BUS214, Y => LCD0 ); U1 : decoder port map( X => BUS260, Y => LCD1 ); U10 : DeMux port map( CLK => CLK, X => BUS510, Y0 => BUS214, Y1 => BUS260, Y2 => BUS268, Y3 => BUS276, Y4 => BUS284, Y5 => BUS292, Y6 => BUS300, Y7 => BUS312 ); U2 : decoder port map( X => BUS268, Y => LCD2 ); U3 : decoder port map( X => BUS276, Y => LCD3 ); U4 : decoder port map( X => BUS284, Y => LCD4 ); U5 : decoder port map( X => BUS292, Y => LCD5 ); U6 : decoder port map( X => BUS300, Y => LCD6 ); U7 : decoder port map( X => BUS312, Y => LCD7 ); U9 : RegisterPE port map( CLK => CLK, Data_In(0) => X(24), Data_In(1) => X(25), Data_In(2) => X(26), Data_In(3) => X(27), Data_In(4) => X(28), Data_In(5) => X(29), Data_In(6) => X(30), Data_In(7) => X(31), DATA_Out(0) => BUS510(24), DATA_Out(1) => BUS510(25), DATA_Out(2) => BUS510(26), DATA_Out(3) => BUS510(27), DATA_Out(4) => BUS510(28), DATA_Out(5) => BUS510(29), DATA_Out(6) => BUS510(30), DATA_Out(7) => BUS510(31), WE => WE ); Dangling_Input_Signal <= DANGLING_INPUT_CONSTANT; end Gensyg; Часова діаграма, що ілюструє роботу пристрою Висновок: Під час лабораторної роботи я навчилася використовувати блок-діаграми (Block Diagrams) для декомпозиції складних об'єктів на структурні складові, отримала навички застосування констант generic для проектування структурних елементів, розробила модель 8-розрядного 7-сегментного індикатора.
Антиботан аватар за замовчуванням

19.12.2013 23:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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