МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ „КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ” НАВЧАЛЬНО-НАУКОВИЙ КОМПЛЕКС „ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУ” Лабораторна робота №5 з курсу «ТЕХНОЛОГІЇ КОМП’ЮТЕРНОГО ПРОЕКТУВАННЯ» на тему: ДОСЛІДЖЕННЯ РОБОТИ ПОСЛІДОВНИХ СХЕМ З ВИКОРИСТАННЯМ МОДЕЛЕЙ ФУНКЦІОНАЛЬНО-РЕГІСТРОВОГО РІВНЯ У МОВІ VHDL Виконав: студент 4 курсу групи ДА-62 Домілевський О.С Київ 2019 1 Мета роботи побудова алгоритмічних моделей послідовних схем; вивчення принципів організації подієвого моделювання і особливостей створення поведінкових моделей паралельних процесів; придбання досвіду опису цифрових пристроїв на функціональному рівні абстракції з використанням паралельного оператора процесу, послідовних операторів, процедур та функцій мови VHDL. 2 Короткі теоретичні відомості Для виконання роботи необхідно повторити і ознайомитись з наступним теоретичним матеріалом: основними відомостями про регістри і лічильники («Додаток Г»); алгоритмом подієвого моделювання, поняттям списку чутливих входів процесу і списку зв’язків сигналів, з атрибутами сигналів і типом сигналів std_logic_vector [1,2]; засобами створення поведінкових моделей на функціональному та регістровому рівні представлення у мові VHDL: операторами Process, Wаit, if, case, loop, процедурами і функціями, стандартними арифметичних операцій [1,2]. 3 Завдання бібліотеками Код: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity UPDOWN_COUNTER is Port ( clk: in std_logic; -- clock input reset: in std_logic; -- reset input up_down: in std_logic; -- up or down counter: out std_logic_vector(3 downto 0); -- output 4-bit counter data :in std_logic_vector (3 downto 0); -- Parallel load for the counter load :in std_logic -- Parallel load enable ); end UPDOWN_COUNTER; architecture Behavioral of UPDOWN_COUNTER is signal counter_updown: std_logic_vector(3 downto 0); begin -- down counter process(clk,reset) begin if(rising_edge(clk)) then if(reset='1') then counter_updown <= x"0"; elsif(up_down='1') then counter_updown <= counter_updown - x"1"; -- count down elsif(load = '1') then counter_updown <= data; else counter_updown <= counter_updown + x"1"; -- count up end if; end if; end process; counter <= counter_updown; end Behavioral; Результати: Висновки: Вивчили основи мови VHDL. Результати моделювання співпали з таблицею істинності.