Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти І науки України
національний університет “Львівська політехніка”
Кафедра ЕОМ
EMBED Word.Picture.8
Теорія і проектування комп’ютерних систем.
Звіт
по лабораторній роботі №3.
“Розробка системи тестування простого пристрою.”
Виконав:
студент групи КСМ - 5
ЛЬВІВ – 2004
Мета роботи: ознайомитись з технологією виготовлення та принципами функціонування тестуючих програм, створити середовище тестування (тестбенч) пристрою, перевірити його роботоздатність та коректність його роботи.
Результати роботи.
У даній лабораторній роботі розроблено середовище тестування суматора, який був створений у минулій лабораторній роботі.
VHDL-код блоку тестування.
library ieee;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_1164.all;
use std.textio.all;
use ieee.std_logic_textio.all;
in_data_file : string := "in_data_file.txt";
pattern_file : string := "pattern_file.txt"
);
end add_tb;
architecture TB_ARCHITECTURE of add_tb is
-- Component declaration of the tested unit
component add
port(
CLK : in std_logic;
RST : in std_logic;
A : in std_logic_vector(11 downto 0);
B : in std_logic_vector(11 downto 0);
S : out std_logic_vector(11 downto 0) );
end component;
-- Stimulus signals - signals mapped to the input and inout ports of tested entity
signal CLK : std_logic;
signal RST : std_logic;
signal A : std_logic_vector(11 downto 0);
signal B : std_logic_vector(11 downto 0);
-- Observed signals - signals mapped to the output ports of tested entity
signal S : std_logic_vector(11 downto 0);
-- Add your code here ...
begin
-- Unit Under Test port map
UUT : add
port map (
CLK => CLK,
RST => RST,
A => A,
B => B,
S => S
);
add_proc: process
begin
clk<='1';
wait for 0.5*period;
clk<='0';
wait for 0.5*period;
end process add_proc;
STIMULUS: process
begin
RST <= '1' after 0 ns,
'0' after 1.5*period;
wait;
end process STIMULUS;
data_rd_proc: process
file dat : text is in_data_file;
variable data_line : line;
variable in_tmp1 : STD_LOGIC_VECTOR (11 downto 0);
begin
A <= (others => '0');
B <= (others => '0');
wait for 2.01*period;
data_rd: while not (endfile(dat)) loop
readline (dat, data_line);
hread (data_line, in_tmp1);
A <= in_tmp1(11 downto 0);
hread (data_line, in_tmp1);
B <= in_tmp1(11 downto 0);
assert false report "DATA READING..." severity note;
wait for period;
end loop data_rd;
end process data_rd_proc;
data_comp_proc: process
file pat : text is pattern_file;
variable pat_line : line;
variable pat_tmp : STD_LOGIC_VECTOR (11 downto 0);
begin
wait for 5*period;
pat_rd: while not (endfile(pat)) loop
readline (pat, pat_line);
hread (pat_line, pat_tmp);
if pat_tmp (11 downto 0) /= S (11 downto 0) then
assert false report "ERROR IN DATA COMPARING!!!#" severity warning;
else
assert false report "DATA COMPARED SUCCESSFULLY!#" severity note; end if;
wait for period;
end loop;
end process data_comp_proc;
-- Add your stimulus here ...
end TB_ARCHITECTURE;
configuration TESTBENCH_FOR_add of add_tb is
for TB_ARCHITECTURE
for UUT : add
use entity work.add(add_arch);
end for;
end for;
end TESTBENCH_FOR_add;
Діагрма симуляції.
Висновок : В даній лабораторній роботі я створив тестбенч для тестування суматора та промоделював його роботу.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!