DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Використання блок-діаграм для декомпозиції складних пристроїв в САПР Active-HDL

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Факультет комп’ютерних інформаційних технологій
Кафедра:
Кафедра електронних обчислювальних машин

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

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Мови опису апаратних засобів
Група:
КІ-44
Коротко про документ

Про що ця робота

У звіті розглядається використання блок-діаграм для декомпозиції складних пристроїв у середовищі Active-HDL. Наведено VHDL-код модулів та схему підключення 8-розрядного 7-сегментного індикатора.

У роботі розглядаються

  • Проектування цифрових пристроїв
  • Мови опису апаратних засобів
  • САПР Active-HDL
  • Блок-діаграми VHDL
  • Декомпозиція складних об'єктів
  • Використання констант generic
  • Сегментні індикатори

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Текст програми paralel_register.vhd
  4. Текст програми reg.vhd
  5. Текст програми de_mux.vhd
  6. Текст програми invertor.vhd
  7. Текст програми sch.vhd
  8. Часові діаграми роботи пристрою
  9. Висновки
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Викладач кафедри

Ключові поняття

Active-HDLблок-діаграмадекомпозиціяVHDLgenericсигнал синхронізації

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 8 з курсу „ Мови опису апаратних засобів ” Тема: Використання блок-діаграм для декомпозиції складних пристроїв в САПР Active-HDL Львів – 2005 Мета роботи: Навчитися використовувати блок-діаграми (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-сегментного індикатора.  Текст програми Paralel_register.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity paralel_register is port( CLK : in STD_LOGIC; WE : in STD_LOGIC; RE : in STD_LOGIC; DATA_IN : in STD_LOGIC_VECTOR (7 downto 0); DATA_OUT : out STD_LOGIC_VECTOR (7 downto 0) ); end paralel_register; architecture paralel_register of paralel_register is begin -- enter your statements here -- process(CLK) variable DATA : STD_LOGIC_VECTOR (7 downto 0); begin if rising_edge(CLK) then DATA_OUT <="ZZZZZZZZ"; if WE='1' and RE='0' then DATA:=DATA_IN; elsif WE='0' and RE='1' then DATA_OUT<=DATA; end if; end if; end process; end paralel_register; reg.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity reg is generic(N:integer:=4); port( CLK : in STD_LOGIC; WE : in STD_LOGIC; RE : in STD_LOGIC; REG_IN : in STD_LOGIC_VECTOR(31 downto 0); REG_OUT : out STD_LOGIC_VECTOR(31 downto 0) ); end reg; architecture reg of reg is component paralel_register is port ( CLK : in STD_LOGIC; WE : in STD_LOGIC; RE : in STD_LOGIC; DATA_IN : in STD_LOGIC_VECTOR(7 downto 0); DATA_OUT : out STD_LOGIC_VECTOR(7 downto 0) ); end component paralel_register; begin -- enter your statements here -- reg_N: for i in 0 to N-1 generate reg8_label: component paralel_register port map( CLK=>CLK, WE=>WE, RE=>RE, DATA_IN=>REG_IN(8*i+7 downto 8*i), DATA_OUT=>REG_OUT(8*i+7 downto 8*i) ); end generate; end reg; de_mux.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity de_mux is port( CLK : in STD_LOGIC; X : in STD_LOGIC_VECTOR(31 downto 0); Y7 : out STD_LOGIC_VECTOR(3 downto 0); Y6 : out STD_LOGIC_VECTOR(3 downto 0); Y5 : out STD_LOGIC_VECTOR(3 downto 0); Y4 : out STD_LOGIC_VECTOR(3 downto 0); Y3 : out STD_LOGIC_VECTOR(3 downto 0); Y2 : out STD_LOGIC_VECTOR(3 downto 0); Y1 : out STD_LOGIC_VECTOR(3 downto 0); Y0 : out STD_LOGIC_VECTOR(3 downto 0) ); end de_mux; architecture de_mux of de_mux is begin process(CLK) begin if rising_edge(CLK) then Y0<=X(3 downto 0); Y1<=X(7 downto 4); Y2<=X(11 downto 8); Y3<=X(15 downto 12); Y4<=X(19 downto 16); Y5<=X(23 downto 20); Y6<=X(27 downto 24); Y7<=X(31 downto 28); end if; end process; end de_mux; invertor.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity invertor is port( IN_PORT : in STD_LOGIC; OUT_PORT : out STD_LOGIC ); end invertor; architecture invertor of invertor is begin OUT_PORT<=not IN_PORT; end invertor; sch.vhd library IEEE; use IEEE.std_logic_1164.all; entity sch 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 sch; architecture sch of sch is component decoder port ( X : in STD_LOGIC_VECTOR(3 downto 0); Y : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component de_mux 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 invertor port ( IN_PORT : in STD_LOGIC; OUT_PORT : out STD_LOGIC ); end component; component reg generic( N : INTEGER := 4 ); port ( CLK : in STD_LOGIC; RE : in STD_LOGIC; REG_IN : in STD_LOGIC_VECTOR(31 downto 0); WE : in STD_LOGIC; REG_OUT : out STD_LOGIC_VECTOR(31 downto 0) ); end component; ---- Signal declarations used on the diagram ---- signal NET121 : STD_LOGIC; signal BUS657 : STD_LOGIC_VECTOR (31 downto 0); signal BUS671 : STD_LOGIC_VECTOR (3 downto 0); signal BUS677 : STD_LOGIC_VECTOR (3 downto 0); signal BUS685 : STD_LOGIC_VECTOR (3 downto 0); signal BUS693 : STD_LOGIC_VECTOR (3 downto 0); signal BUS701 : STD_LOGIC_VECTOR (3 downto 0); signal BUS709 : STD_LOGIC_VECTOR (3 downto 0); signal BUS720 : STD_LOGIC_VECTOR (3 downto 0); signal BUS728 : STD_LOGIC_VECTOR (3 downto 0); begin -- Component instantiations -- U1 : reg port map( CLK => CLK, RE => NET121, REG_IN => X, REG_OUT => BUS657, WE => WE ); U10 : decoder port map( X => BUS671, Y => LCD0 ); U11 : de_mux port map( CLK => CLK, X => BUS657, Y0 => BUS671, Y1 => BUS677, Y2 => BUS685, Y3 => BUS728, Y4 => BUS720, Y5 => BUS709, Y6 => BUS701, Y7 => BUS693 ); U2 : invertor port map( IN_PORT => WE, OUT_PORT => NET121 ); U3 : decoder port map( X => BUS693, Y => LCD7 ); U4 : decoder port map( X => BUS701, Y => LCD6 ); U5 : decoder port map( X => BUS709, Y => LCD5 ); U6 : decoder port map( X => BUS720, Y => LCD4 ); U7 : decoder port map( X => BUS728, Y => LCD3 );  U8 : decoder port map( X => BUS685, Y => LCD2 ); U9 : decoder port map( X => BUS677, Y => LCD1 ); end sch; Часові діаграми роботи пристрою  Висновки: виконуючи дану лабораторну роботу, я навчився використовувати блок-діаграми (Block Diagrams) для декомпозиції складних об'єктів на структурні складові та отримати навички застосування констант generic для проектування структурних елементів.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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