signal current_value : std_logic_vector(3 downto 0);
begin
-- Unit Under Test port map
UUT : timer
port map (
reset => reset,
count_value => count_value,
div_value => div_value,
out1 => out1,
current_value => current_value,
clk => clk
);
--Процесс генерации синхроимпульсов
process
begin
loop
clk <= '1';
wait for 5ns;
clk <= '0';
wait for 5ns;
end loop;
end process;
process
begin
reset <= '1';
count_value <= "1111";
div_value <= "0100";
wait for 50ns;
wait for 50ns;
reset <= '0';
wait for 270ns;
assert out1 = '1'
report "Не выполняется первый такт"
severity failure;
wait for 90ns;
assert out1 = '1'
report "Не выполняется второй такт"
severity failure;
wait for 90ns;
assert out1 = '1'
report "Не выполняется третий такт"
severity failure;
report "Поздравляем! Таймер-счетчик прошел автоматическое тестирование!";
wait;
end process;
end TB_ARCHITECTURE;
configuration TESTBENCH_FOR_timer of timer_tb is
for TB_ARCHITECTURE
for UUT : timer
use entity work.timer(behaviour);
end for;
end for;
end TESTBENCH_FOR_timer;
Результаты работы программы.
Размещение полученного решения на кристалле
XC3S200ft256
Design Statistics
# IOs : 56
Macro Statistics :
# Registers : 3
# 1-bit register : 2
# 32-bit register : 1
# Tristates : 1
# 1-bit tristate buffer : 1
# Adders/Subtractors : 1
# 32-bit subtractor : 1
# Comparators : 2
# 32-bit comparator greater : 1
# 32-bit comparator lessequal : 1
Cell Usage :
# BELS : 114
# GND : 1
# LUT1 : 32
# LUT2 : 1 --таблицы преобразования
# LUT2_D : 1
# LUT3 : 2
# LUT3_L : 1
# LUT4 : 9
# LUT4_D : 2
# LUT4_L : 1
# MUXCY : 31 -- мультиплексоры
# VCC : 1
# XORCY : 32
# FlipFlops/Latches : 33 --триггеры/защелки
# FDE : 32
# FDPE : 1
# Clock Buffers : 1
# BUFGP : 1
# IO Buffers : 21 --буферы ввода-вывода
# IBUF : 2
# OBUF : 18
# OBUFT : 1
=========================================================================
Device utilization summary:
---------------------------
Selected Device : 2s15cs144-6
Number of Slices: 39 out of 192 20%
Number of Slice Flip Flops: 33 out of 384 8%
Number of 4 input LUTs: 49 out of 384 12%
Number of bonded IOBs: 21 out of 90 23%
Number of GCLKs: 1 out of 4 25%
Вывод: в ходе выполнения работы научились проектировать таймер-счётчик. Установили, что данный счётчик при размещении его на кристалле требует значительного количества аппаратных ресурсов, что объясняется необходимостью использования в его составе значительного количества триггеров. Кроме того, счётчик использует значительное количество мультиплексоров и буферов ввода/вывода.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.