Uploaded by Александр Домилевский

лаб5ткп

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
„КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
НАВЧАЛЬНО-НАУКОВИЙ КОМПЛЕКС
„ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУ”
Лабораторна робота №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. Результати моделювання співпали з таблицею
істинності.
Download