G
Guest
Guest
Привет,
Аз написах Testbenches както показват ПС,
И аз имам някои предупреждение в ModelSim:
Предупреждение: Налице е "U" | "Х" | "W" | "Z'|'-' в аритметична операнд, резултатът ще бъде" Х "(Испания).
Въпреки, че аз знам това предупреждение не засягат TestBench работа, аз все още се опитват да се знае, как да се определи std_logic стойност на продукцията за закрепване, които инициализация?
Както можете да видите в моята Testbench, задам "U" за някои продукция за закрепване в началото, че е правилно?
-------------------------------------------------- ---------------------------------------
PS
лице е rec_tb
края rec_tb;
-------------------------------------------------- ----------------------
- Testbench приемник РГО
-------------------------------------------------- ----------------------
IEEE библиотека;
употреба ieee.std_logic_1164.all;
архитектура стимул на rec_tb е
- Внос компонент
компонент seq_rec
порт (RXclk: в std_logic;
RXenb: в std_logic;
RXdata: в std_logic;
ERRpulse: Няма std_logic;
D0: Няма std_logic;
D1: Няма std_logic;
D2: Няма std_logic;
D3: Няма std_logic;
D4: Няма std_logic;
D5: Няма std_logic;
D6: Няма std_logic;
D7: Няма std_logic;
RXsync: Няма std_logic);
края компонент;
- Да се обяви сигнал
сигнал CE: std_logic;
сигнал RXclk: std_logic;
сигнал RXenb: std_logic;
сигнал RXdata: std_logic;
сигнал ERRpulse: std_logic;
сигнал d0: std_logic;
сигнал D1: std_logic;
сигнал D2: std_logic;
сигнал D3: std_logic;
сигнал D4: std_logic;
сигнал D5: std_logic;
сигнал D6: std_logic;
D7 сигнал: std_logic;
сигнал RXsync: std_logic;
тип test_record_t е рекорд
CE: std_logic; - часовник позволи
RXenb: std_logic;
RXdata: std_logic;
ERRpulse: std_logic;
D0: std_logic;
D1: std_logic;
D2: std_logic;
D3: std_logic;
D4: std_logic;
D5: std_logic;
D6: std_logic;
D7: std_logic;
RXsync: std_logic;
Край на записа;
test_array_t е тип масив (положителни диапазон <>) на test_record_t;
- Следните постоянни декларация се описва вектор
постоянен test_patterns: test_array_t: = (
- CE, RXenb, RXdata, ERRpulse, d0, D1, D2, D3, D4, D5, D6, D7, RXsync
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "), - 64 бита канал Хванете
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "), - idetifne система код
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "), - Frequency Hopping код
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 ") - юмрук сегмент на тест
последователност
);
--
- Конвертирате std_logic стойност до характер
--
тип stdlogic_to_char_t е Array (std_logic) на характера;
постоянен to_char: stdlogic_to_char_t: = (
"U" => "U",
"X" => "X",
'0 '=> '0',
'1 '=> '1',
'Z' => 'Z',
'W' => 'W',
"L" => "L",
"H" => "H",
"-" =>'-');
започвам
- Конкретни примери на компонент
Uut: seq_rec пристанище карта (RXclk,
RXenb,
RXdata,
ERRpulse,
D0,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
RXsync);
- Предоставяне на стимули и да проверите резултата
тест: процес
променлив вектор: test_record_t;
променлива found_error: Boolean: = FALSE;
започвам
Защото в test_patterns'range линия
вектор: = test_patterns (I);
- Прилагат stimuls
CE <= vector.CE;
RXenb <= vector.RXenb;
RXdata <= vector.RXdata;
ERRpulse <= vector.ERRpulse;
D0 <= vector.D0;
D1 <= vector.D1;
D2 <= vector.D2;
D3 <= vector.D3;
D4 <= vector.D4;
D5 <= vector.D5;
D6 <= vector.D6;
D7 <= vector.D7;
RXsync <= vector.RXsync;
- Часовник (ниска-висока-ниска) # юмрук метод
RXclk <= '0 ';
чакам за 217 NS;
ако CE = "1" и след това
RXclk <= '1 ';
крайна сметка, ако;
чакам за 434 NS;
RXclk <= '0 ';
чакам за 217 NS;
- Проверка на резултатите от ERRpulse
IF (ERRpulse / = vector.ERRpulse), тогава
твърдят неверни
Докладът "ERRpulse е" & to_char (ERRpulse)
& "Очаквано." & To_char (vector.ERRpulse);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D0
IF (D0 / = vector.D0), тогава
твърдят неверни
Докладът "D0 е" & to_char (D0) & "."
& "Очакваната стойност е" & to_char (vector.D0);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D1
ако (D1 / = vector.D1), тогава
твърдят неверни
Докладът "D1 е" & to_char (D1) & "."
& "Очакваната стойност е" & to_char (vector.D1);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите на D2
IF (D2 / = vector.D2), тогава
твърдят неверни
Докладът "Д2 е" & to_char (D2) & "."
& "Очакваната стойност е" & to_char (vector.D2);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D3
ако (D1 / = vector.D3), тогава
твърдят неверни
Докладът "D3 е" & to_char (Г3) & "."
& "Очакваната стойност е" & to_char (vector.D3);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D4
IF (D4 / = vector.D4), тогава
твърдят неверни
Докладът "D4 е" & to_char (D4) & "."
& "Очакваната стойност е" & to_char (vector.D4);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D5
ако (D5 / = vector.D1), тогава
твърдят неверни
Докладът "D5 е" & to_char (D5) & "."
& "Очакваната стойност е" & to_char (vector.D5);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D6
IF (D6 / = vector.D6), тогава
твърдят неверни
Докладът "D6 е" & to_char (D6) & "."
& "Очакваната стойност е" & to_char (vector.D6);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D7
ако (D7 / = vector.D7), тогава
твърдят неверни
Докладът "D7 е" & to_char (D7) & "."
& "Очакваната стойност е" & to_char (vector.D7);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D6
IF (RXsync / = vector.RXsync), тогава
твърдят неверни
Докладът "RXsync е" & to_char (RXsync) & "."
& "Очакваната стойност е" & to_char (vector.RXsync);
found_error: = вярно;
крайна сметка, ако;
края линия;
твърдят, не found_error
Докладът "Имаше грешки в теста."
тежест бележка;
твърдят found_error
доклад "на теста, без грешки."
тежест бележка;
чакайте;
край процес;
края стимул;
Аз написах Testbenches както показват ПС,
И аз имам някои предупреждение в ModelSim:
Предупреждение: Налице е "U" | "Х" | "W" | "Z'|'-' в аритметична операнд, резултатът ще бъде" Х "(Испания).
Въпреки, че аз знам това предупреждение не засягат TestBench работа, аз все още се опитват да се знае, как да се определи std_logic стойност на продукцията за закрепване, които инициализация?
Както можете да видите в моята Testbench, задам "U" за някои продукция за закрепване в началото, че е правилно?
-------------------------------------------------- ---------------------------------------
PS
лице е rec_tb
края rec_tb;
-------------------------------------------------- ----------------------
- Testbench приемник РГО
-------------------------------------------------- ----------------------
IEEE библиотека;
употреба ieee.std_logic_1164.all;
архитектура стимул на rec_tb е
- Внос компонент
компонент seq_rec
порт (RXclk: в std_logic;
RXenb: в std_logic;
RXdata: в std_logic;
ERRpulse: Няма std_logic;
D0: Няма std_logic;
D1: Няма std_logic;
D2: Няма std_logic;
D3: Няма std_logic;
D4: Няма std_logic;
D5: Няма std_logic;
D6: Няма std_logic;
D7: Няма std_logic;
RXsync: Няма std_logic);
края компонент;
- Да се обяви сигнал
сигнал CE: std_logic;
сигнал RXclk: std_logic;
сигнал RXenb: std_logic;
сигнал RXdata: std_logic;
сигнал ERRpulse: std_logic;
сигнал d0: std_logic;
сигнал D1: std_logic;
сигнал D2: std_logic;
сигнал D3: std_logic;
сигнал D4: std_logic;
сигнал D5: std_logic;
сигнал D6: std_logic;
D7 сигнал: std_logic;
сигнал RXsync: std_logic;
тип test_record_t е рекорд
CE: std_logic; - часовник позволи
RXenb: std_logic;
RXdata: std_logic;
ERRpulse: std_logic;
D0: std_logic;
D1: std_logic;
D2: std_logic;
D3: std_logic;
D4: std_logic;
D5: std_logic;
D6: std_logic;
D7: std_logic;
RXsync: std_logic;
Край на записа;
test_array_t е тип масив (положителни диапазон <>) на test_record_t;
- Следните постоянни декларация се описва вектор
постоянен test_patterns: test_array_t: = (
- CE, RXenb, RXdata, ERRpulse, d0, D1, D2, D3, D4, D5, D6, D7, RXsync
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "), - 64 бита канал Хванете
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '1 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "), - idetifne система код
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', "U", "U", "U", "U", "U", "U", "U", "U", "U", " U "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "), - Frequency Hopping код
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '1 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 "),
('1 ', '1', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', '0 ', '0', ' 1 ") - юмрук сегмент на тест
последователност
);
--
- Конвертирате std_logic стойност до характер
--
тип stdlogic_to_char_t е Array (std_logic) на характера;
постоянен to_char: stdlogic_to_char_t: = (
"U" => "U",
"X" => "X",
'0 '=> '0',
'1 '=> '1',
'Z' => 'Z',
'W' => 'W',
"L" => "L",
"H" => "H",
"-" =>'-');
започвам
- Конкретни примери на компонент
Uut: seq_rec пристанище карта (RXclk,
RXenb,
RXdata,
ERRpulse,
D0,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
RXsync);
- Предоставяне на стимули и да проверите резултата
тест: процес
променлив вектор: test_record_t;
променлива found_error: Boolean: = FALSE;
започвам
Защото в test_patterns'range линия
вектор: = test_patterns (I);
- Прилагат stimuls
CE <= vector.CE;
RXenb <= vector.RXenb;
RXdata <= vector.RXdata;
ERRpulse <= vector.ERRpulse;
D0 <= vector.D0;
D1 <= vector.D1;
D2 <= vector.D2;
D3 <= vector.D3;
D4 <= vector.D4;
D5 <= vector.D5;
D6 <= vector.D6;
D7 <= vector.D7;
RXsync <= vector.RXsync;
- Часовник (ниска-висока-ниска) # юмрук метод
RXclk <= '0 ';
чакам за 217 NS;
ако CE = "1" и след това
RXclk <= '1 ';
крайна сметка, ако;
чакам за 434 NS;
RXclk <= '0 ';
чакам за 217 NS;
- Проверка на резултатите от ERRpulse
IF (ERRpulse / = vector.ERRpulse), тогава
твърдят неверни
Докладът "ERRpulse е" & to_char (ERRpulse)
& "Очаквано." & To_char (vector.ERRpulse);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D0
IF (D0 / = vector.D0), тогава
твърдят неверни
Докладът "D0 е" & to_char (D0) & "."
& "Очакваната стойност е" & to_char (vector.D0);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D1
ако (D1 / = vector.D1), тогава
твърдят неверни
Докладът "D1 е" & to_char (D1) & "."
& "Очакваната стойност е" & to_char (vector.D1);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите на D2
IF (D2 / = vector.D2), тогава
твърдят неверни
Докладът "Д2 е" & to_char (D2) & "."
& "Очакваната стойност е" & to_char (vector.D2);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D3
ако (D1 / = vector.D3), тогава
твърдят неверни
Докладът "D3 е" & to_char (Г3) & "."
& "Очакваната стойност е" & to_char (vector.D3);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D4
IF (D4 / = vector.D4), тогава
твърдят неверни
Докладът "D4 е" & to_char (D4) & "."
& "Очакваната стойност е" & to_char (vector.D4);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D5
ако (D5 / = vector.D1), тогава
твърдят неверни
Докладът "D5 е" & to_char (D5) & "."
& "Очакваната стойност е" & to_char (vector.D5);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D6
IF (D6 / = vector.D6), тогава
твърдят неверни
Докладът "D6 е" & to_char (D6) & "."
& "Очакваната стойност е" & to_char (vector.D6);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D7
ако (D7 / = vector.D7), тогава
твърдят неверни
Докладът "D7 е" & to_char (D7) & "."
& "Очакваната стойност е" & to_char (vector.D7);
found_error: = вярно;
крайна сметка, ако;
- Проверка на резултатите от D6
IF (RXsync / = vector.RXsync), тогава
твърдят неверни
Докладът "RXsync е" & to_char (RXsync) & "."
& "Очакваната стойност е" & to_char (vector.RXsync);
found_error: = вярно;
крайна сметка, ако;
края линия;
твърдят, не found_error
Докладът "Имаше грешки в теста."
тежест бележка;
твърдят found_error
доклад "на теста, без грешки."
тежест бележка;
чакайте;
край процес;
края стимул;