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

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

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

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

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

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

Мета роботи: Навчитися використовувати блок-діаграми (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:40

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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