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

OS-VVM (Диплом)/Описание тестовой программы — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м (Архитектура тестбенча)
м (Ant1)
Строка 61: Строка 61:
 
* signal bit_num  : out integer - количество бит;
 
* signal bit_num  : out integer - количество бит;
  
=== Ant1 ===
+
=== Anticollision ===
Ant1 - Антиколлизия каскадного уровня 1<br />
+
Anticollision — Антиколлизия и select 1/2 каскадного уровня
 +
* Подаёт соответствующую команду на драйвер (в команде вычисляет код команды, добавляет 0x88 для 1 уровня, добавляет BCC и CRC)
 +
* контролирует паузу между запросом и ответом
 +
* принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
 +
* выдаёт ошибку (Error=true), если
 +
** пауза не соответствует спеку
 +
** ошибка в данных ответа
 +
 
 
Интерфейс:
 
Интерфейс:
* signal out_data  : inout std_logic_vector(1 to 164) - данные полученные от респондера;
+
*Входы
* signal tdata_mod : in    std_logic - сигнал, идущий с выхода DUT;
+
** Level : in bit — каскадный уровень 1/2 (0=0х93, 1=0х95)
* signal clk_num  : inout integer - количество периодов;
+
** Arg  : in natural - аргумент (0х20-0х67)
* signal og        : out   std_logic - огибающая;
+
** UID  : in integer_vector(6 downto 0) — UID (байта, 6-MSB, 0-LSB)
* signal bit_num  : out integer - количество бит;
+
*Выходы
* signal arg      : inout std_logic_vector(1 to 8) - аргумент;
+
** <s> OutData : out std_logic_vector(1 to 164)</s> - данные полученные от респондера;
 +
*** OutData : out std_logic_vector - данные полученные от респондера;
 +
** <s> BitNum : out natural</s> - количество бит;
 +
** <s> clk_num  : out natural - количество периодов;</s> — контролировать задержку между запросом и ответом внутри процедуры Anticollision.
 +
** Error : out boolean — true - ошибка, false= всё Ок.
 +
* Сигналы
 +
** signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
 +
** signal CoilModulation : out std_logic - огибающая;

Версия 17:22, 5 марта 2013

Проект Диплом

Литература

Coverage Cookbook (en)

OVM методология

* OS-VVM *

Содержание

Архитектура тестбенча

Рисунок — Архитектура тестбенча (edit)


Описание процедур/функций

Driver

Драйвер преобразует последовательность бит, передаваемых ему командой в огибающую.
Интерфейс:

  • data_size  : in natural - размер передаваемых данных;
  • data  : in bit_vector - входной сигнал;
  • signal output  : out std_logic - выходной сигнал (огибающая);

Responder

Респондер преобразует выходной сигнал DUT в последовательность бит. Запускается при получении стартового бита ответа.
Интерфейс:

  • signal tdata_mod : in std_logic - сигнал из DUT;
  • signal out_data  : out std_logic_vector(1 to 164) - выходной сигнал респондера;
  • signal bit_num  : out integer - количество бит, полученных респондером;

Pause

Pause ждет ответ DUT и считает периоды.
Интерфейс:

  • signal tdata_mod : in std_logic - сигнал из DUT;
  • signal clk_num : out integer - количество периодов;

Reset

Reset останавливает clock генератор на указанное время.
Интерфейс:

  • wait_time : in time - время сброса(при 0 - бесконечно);
  • signal stop : out bit - сигнал остановки clock генератора;

WUPA

WUPA - запрос всех карт;
Интерфейс:

  • signal out_data  : inout std_logic_vector(1 to 164) - данные полученные от респондера;
  • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
  • signal clk_num  : inout integer - количество периодов;
  • signal og  : out std_logic - огибающая;
  • signal bit_num  : out integer - количество бит;

REQA

REQA - запрос карты;
Интерфейс:

  • signal out_data  : inout std_logic_vector(1 to 164) - данные полученные от респондера;
  • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
  • signal clk_num  : inout integer - количество периодов;
  • signal og  : out std_logic - огибающая;
  • signal bit_num  : out integer - количество бит;

Anticollision

Anticollision — Антиколлизия и select 1/2 каскадного уровня

  • Подаёт соответствующую команду на драйвер (в команде вычисляет код команды, добавляет 0x88 для 1 уровня, добавляет BCC и CRC)
  • контролирует паузу между запросом и ответом
  • принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
  • выдаёт ошибку (Error=true), если
    • пауза не соответствует спеку
    • ошибка в данных ответа

Интерфейс:

  • Входы
    • Level : in bit — каскадный уровень 1/2 (0=0х93, 1=0х95)
    • Arg  : in natural - аргумент (0х20-0х67)
    • UID  : in integer_vector(6 downto 0) — UID (байта, 6-MSB, 0-LSB)
  • Выходы
    • OutData : out std_logic_vector(1 to 164) - данные полученные от респондера;
      • OutData : out std_logic_vector - данные полученные от респондера;
    • BitNum : out natural - количество бит;
    • clk_num  : out natural - количество периодов; — контролировать задержку между запросом и ответом внутри процедуры Anticollision.
    • Error : out boolean — true - ошибка, false= всё Ок.
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;