«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

VHDL/Генерация входных воздействий — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Новая страница: «== Слайд: Подача сигнала сброса == signal rst : std_logic; . . . rst <= '1', '0' after 15 ns; -- Вариант 1 p1: process (…»)
 
м (Слайд: Подача заданной последовательности тестовых векторов)
Строка 70: Строка 70:
  
  
p1: process (rst) is
+
p1: process (rst) is
begin  -- process p1
+
begin  -- process p1
  rst <= '1';
+
  rst <= '1';
  x <= "001";
+
  x <= "001";
  en <= '0'
+
  en <= '0'
  wait for 15 ns;
+
  wait for 15 ns;
  rst <= '0';
+
  rst <= '0';
  wait for 5 ns;
+
  wait for 5 ns;
  en <= '1'
+
  en <= '1'
  wait for 20 ns;
+
  wait for 20 ns;
  en <= '0'
+
  en <= '0'
  wait for 5 ns;
+
  wait for 5 ns;
  x <= "101";
+
  x <= "101";
  wait for 25 ns;
+
  wait for 25 ns;
  x <= "100";
+
  x <= "100";
  wait for 25 ns;
+
  wait for 25 ns;
  en <= '1'
+
  en <= '1'
  x <= "110";
+
  x <= "110";
  wait;        
+
  wait;
end process p1;
+
end process p1;
 
+
  
 
== Слайд: Использование процедур для генерации тестовых векторов ==
 
== Слайд: Использование процедур для генерации тестовых векторов ==

Версия 11:28, 31 марта 2014

Содержание

Слайд: Подача сигнала сброса

signal rst : std_logic;
 . . .
rst <= '1', '0' after 15 ns; -- Вариант 1


p1: process (rst) is         -- Вариант 2
begin  -- process p1
  rst <= '1';
  wait for 15 ns;
  rst <= '0';
  wait;         
end process p1;


Слайд: Подача синхросигнала

signal clk : std_logic := '0';
 . . .
clk <= not clk after 5 ns; -- Вариант 1


p1: process (clk) is       -- Вариант 2
begin  -- process p1
  clk <= '1';
  wait for 5 ns;
  clk <= '0';
  wait for 5 ns;
end process p1;


Слайд: Подача последовательности тестовых векторов

Слайд: Подача последовательности тестовых векторов (Вариант 1)

signal x  : std_logic_vector(2 downto 0) := (others => '0');
. . .
x(0) <= not x(0) after 50 ns;
x(1) <= not x(1) after 100 ns;
x(2) <= not x(2) after 200 ns;

Слайд: Подача последовательности тестовых векторов (Вариант 2)

signal x  : std_logic_vector(2 downto 0) := (others => '0');
. . .
l1: for i in 0 to 2 generate
  x(i) <= not x(i) after (2**i) * 10 ns;
end generate l1;


Слайд: Подача последовательности тестовых векторов (Вариант 3)

use ieee.numeric_std.all;
...
signal x  : std_logic_vector(2 downto 0) := (others => '0');
signal xu : unsigned(2 downto 0) := (others => '0');
. . .
xu <= xu + 1 after 10 ns;
x <= std_logic_vector(xu);


x <= std_logic_vector(unsigned(x) + 1) after 10 ns;


Слайд: Подача заданной последовательности тестовых векторов

p1: process (rst) is
begin  -- process p1
  rst <= '1';
  x <= "001";
  en <= '0'
  wait for 15 ns;
  rst <= '0';
  wait for 5 ns;
  en <= '1'
  wait for 20 ns;
  en <= '0'
  wait for 5 ns;
  x <= "101";
  wait for 25 ns;
  x <= "100";
  wait for 25 ns;
  en <= '1'
  x <= "110";
  wait;
end process p1;

Слайд: Использование процедур для генерации тестовых векторов

  • событийный метод


Слайд: Подача псевдослучайной последовательности тестовых векторов