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

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

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

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

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

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

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

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

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Моделювання комп ютерних систем
Група:
КН-31
Коротко про документ

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

У звіті до лабораторної роботи досліджено використання блок-діаграм для декомпозиції складних пристроїв у САПР Active-HDL. Розроблено модель 8-розрядного 7-сегментного індикатора мовою VHDL.

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

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

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

  1. Мета роботи
  2. Теоретична частина
  3. Постановка задачі
  4. VHDL код схеми генератора
  5. VHDL код регістра
  6. VHDL код демультиплексора
  7. VHDL код семисегментного індикатора
  8. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, що вивчають моделювання комп'ютерних систем.
Викладачі:Ногаль М.В.

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

Active-HDLблок-діаграмадекомпозиціяVHDLсигналпортсутністьархітектура

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

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Кафедра ЕОМ / ЗВІТ до лабораторної роботи №8 з дисципліни «Моделювання комп’ютерних систем» на тему : Використання блок-діаграм для декомпозиції складних пристроїв в САПР Active-HDL Мета роботи: Навчитися використовувати блок-діаграми (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-сегментного індикатора. VHDL код схеми генератора : library IEEE; use IEEE.std_logic_1164.all; entity generator 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 generator; architecture generator of generator is component DC0 port ( Y0 : in STD_LOGIC_VECTOR(3 downto 0); LCD0 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC1 port ( Y1 : in STD_LOGIC_VECTOR(3 downto 0); LCD1 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC2 port ( Y2 : in STD_LOGIC_VECTOR(3 downto 0); LCD2 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC3 port ( Y3 : in STD_LOGIC_VECTOR(3 downto 0); LCD3 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC4 port ( Y4 : in STD_LOGIC_VECTOR(3 downto 0); LCD4 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC5 port ( Y5 : in STD_LOGIC_VECTOR(3 downto 0); LCD5 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC6 port ( Y6 : in STD_LOGIC_VECTOR(3 downto 0); LCD6 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DC7 port ( Y7 : in STD_LOGIC_VECTOR(3 downto 0); LCD7 : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DM port ( C : in STD_LOGIC_VECTOR(31 downto 0); CLK : in STD_LOGIC; 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 parvreg port ( CLK : in STD_LOGIC; RE : in STD_LOGIC; WE : in STD_LOGIC; X : in STD_LOGIC_VECTOR(31 downto 0); C : out STD_LOGIC_VECTOR(31 downto 0) ); end component; signal RE : STD_LOGIC; signal C : STD_LOGIC_VECTOR (31 downto 0); signal Y0 : STD_LOGIC_VECTOR (3 downto 0); signal Y1 : STD_LOGIC_VECTOR (3 downto 0); signal Y2 : STD_LOGIC_VECTOR (3 downto 0); signal Y3 : STD_LOGIC_VECTOR (3 downto 0); signal Y4 : STD_LOGIC_VECTOR (3 downto 0); signal Y5 : STD_LOGIC_VECTOR (3 downto 0); signal Y6 : STD_LOGIC_VECTOR (3 downto 0); signal Y7 : STD_LOGIC_VECTOR (3 downto 0); begin U1 : parvreg port map( C => C, CLK => CLK, RE => RE, WE => WE, X => X ); U10 : DC0 port map( LCD0 => LCD0, Y0 => Y0 ); RE <= not(WE); U2 : DM port map( C => C, CLK => CLK, Y0 => Y0, Y1 => Y1, Y2 => Y2, Y3 => Y3, Y4 => Y4, Y5 => Y5, Y6 => Y6, Y7 => Y7 ); U3 : DC7 port map( LCD7 => LCD7, Y7 => Y7 ); U4 : DC5 port map( LCD5 => LCD5, Y5 => Y5 ); U5 : DC3 port map( LCD3 => LCD3, Y3 => Y3 ); U6 : DC1 port map( LCD1 => LCD1, Y1 => Y1 ); U7 : DC6 port map( LCD6 => LCD6, Y6 => Y6 ); U8 : DC4 port map( LCD4 => LCD4, Y4 => Y4 ); U9 : DC2 port map( LCD2 => LCD2, Y2 => Y2 ); end generator; VHDL код регістра: library IEEE; use IEEE.STD_LOGIC_1164.all; entity parvreg is generic(N:integer:=32); port( X : in STD_LOGIC_VECTOR(31 downto 0); CLK : in STD_LOGIC; RE : in STD_LOGIC; WE : in STD_LOGIC; C : out STD_LOGIC_VECTOR(31 downto 0) ); end parvreg; architecture parvreg of parvreg is begin process(CLK) variable reg: std_logic_vector(N-1 downto 0); begin if (CLK = '1' and WE = '1' and RE = '0') then reg := X; elsif (CLK = '1' and WE = '0' and RE = '1') then C <= reg; end if; end process; end parvreg; VHDL код демультиплексора: library IEEE; use IEEE.STD_LOGIC_1164.all; entity DM is port( C : in STD_LOGIC_VECTOR(31 downto 0); CLK : in STD_LOGIC; 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 DM; architecture DM of DM is begin process(CLK) begin if (CLK='1') then Y7<=C(31 downto 28); Y6<=C(27 downto 24); Y5<=C(23 downto 20); Y4<=C(19 downto 16); Y3<=C(15 downto 12); Y2<=C(11 downto 8); Y1<=C(7 downto 4); Y0<=C(3 downto 0); end if; end process; end DM; VHDL код семисегментного індикатора: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity DC0 is port( Y0 : in STD_LOGIC_VECTOR(3 downto 0); LCD0 : out STD_LOGIC_VECTOR(6 downto 0) ); end DC0; architecture DC0 of DC0 is begin process(Y0) begin case Conv_Integer(Y0) is when 0 =>LCD0<= "1110111"; when 1 =>LCD0<= "0010010"; when 2 =>LCD0<= "1011101"; when 3 =>LCD0<= "1101101"; when 4 =>LCD0<= "0111010"; when 5 =>LCD0<= "1101011"; when 6 =>LCD0<= "1101111"; when 7 =>LCD0<= "1010010"; when 8 =>LCD0<= "1111111"; when 9 =>LCD0<= "1111011"; when others =>LCD0<= "1110111"; end case; end process; end DC0; Рис.1 Діаграма роботи генератора сигналів.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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