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

OS-VVM (Диплом)/Описание тестовой программы

Материал из Wiki
< OS-VVM (Диплом)
Версия от 17:22, 5 марта 2013; ANA (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Проект Диплом

Литература

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 - огибающая;