«Работать добросовестно — значит: работать, повышая свою квалификацию, проявляя инициативу в совершенствовании продукции, технологий, организации работ, оказывая не предусмотренную должностными инструкциями помощь другим сотрудникам (включая и руководителей) в общей им всем работе.

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

Материал из Wiki
Перейти к: навигация, поиск
(Reset)
м (Описание процедур/функций)
Строка 58: Строка 58:
 
** signal stop : out bit - сигнал остановки clock генератора;
 
** signal stop : out bit - сигнал остановки clock генератора;
  
=== WUPA ===
+
=== Команды ===
WUPA - запрос всех карт;
+
 
 +
==== WUPA ====
 +
WUPA запрос всех карт;
  
 
* Подаёт соответствующую команду на драйвер (0х52)
 
* Подаёт соответствующую команду на драйвер (0х52)
Строка 77: Строка 79:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== REQA ===
+
==== REQA ====
 
REQA — запрос карты
 
REQA — запрос карты
 
* Подаёт соответствующую команду на драйвер (0х26)
 
* Подаёт соответствующую команду на драйвер (0х26)
Строка 95: Строка 97:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== Anticollision ===
+
==== Anticollision ====
 
Anticollision — Антиколлизия и select 1/2 каскадного уровня
 
Anticollision — Антиколлизия и select 1/2 каскадного уровня
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет 0x88 для 1 уровня, добавляет BCC и CRC)
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет 0x88 для 1 уровня, добавляет BCC и CRC)
Строка 115: Строка 117:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== READ ===
+
==== READ ====
 
READ - чтение
 
READ - чтение
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет CRC)
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет CRC)
Строка 133: Строка 135:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== HALT ===
+
==== HALT ====
 
HALT — перевод в состояние ожидания
 
HALT — перевод в состояние ожидания
 
* Подаёт соответствующую команду на драйвер ('50' '00' + CRC)
 
* Подаёт соответствующую команду на драйвер ('50' '00' + CRC)
Строка 151: Строка 153:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== WRITE ===
+
==== WRITE ====
 
WRITE — запись
 
WRITE — запись
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет CRC)
 
* Подаёт соответствующую команду на драйвер (вычисляет код команды, добавляет CRC)
Строка 170: Строка 172:
 
** signal CoilModulation : out std_logic - огибающая;
 
** signal CoilModulation : out std_logic - огибающая;
  
=== COMPATIBILITY WRITE ===
+
==== COMPATIBILITY WRITE ====
 
COMPATIBILITY WRITE — совместимая запись
 
COMPATIBILITY WRITE — совместимая запись
 
* Подаёт первую часть команды на драйвер (вычисляет код команды, добавляет CRC)
 
* Подаёт первую часть команды на драйвер (вычисляет код команды, добавляет CRC)

Версия 15:15, 11 марта 2013

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

Литература

Coverage Cookbook (en)

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

* OS-VVM *

Содержание

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

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


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

Driver

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

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

Responder

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

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

Pause

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

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

Reset

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

Интерфейс:

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

Команды

WUPA

WUPA — запрос всех карт;

  • Подаёт соответствующую команду на драйвер (0х52)
  • Контролирует паузу между запросом и ответом
  • Принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
  • Выдаёт ошибку (Error=true), если
    • Пауза не соответствует спецификации
    • Ошибка в данных ответа

Интерфейс:

  • Входы
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

REQA

REQA — запрос карты

  • Подаёт соответствующую команду на драйвер (0х26)
  • Контролирует паузу между запросом и ответом
  • Принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
  • Выдаёт ошибку (Error=true), если
    • Пауза не соответствует спецификации
    • Ошибка в данных ответа

Интерфейс:

  • Входы
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

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 (7 байт, 6-MSB, 0-LSB)
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

READ

READ - чтение

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

Интерфейс:

  • Входы
    • Arg  : in natural - адрес (0-15)
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

HALT

HALT — перевод в состояние ожидания

  • Подаёт соответствующую команду на драйвер ('50' '00' + CRC)
  • Контролирует паузу между запросом и ответом
  • Принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
  • Выдаёт ошибку (Error=true), если
    • Пауза не соответствует спецификации
    • Ошибка в данных ответа

Интерфейс:

  • Входы
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

WRITE

WRITE — запись

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

Интерфейс:

  • Входы
    • Arg  : in natural - адрес (0-15)
    • Data  : in integer_vector(4 downto 1) — 4 байта
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;

COMPATIBILITY WRITE

COMPATIBILITY WRITE — совместимая запись

  • Подаёт первую часть команды на драйвер (вычисляет код команды, добавляет CRC)
  • Контролирует паузу между запросом и ответом
  • Подаёт вторую часть команды на драйвер (вычисляет код команды, добавляет CRC)
  • Контролирует паузу между запросом и ответом
  • Принимает ответ и сравнивает его с ожидаемым ответом (используя UID)
  • Выдаёт ошибку (Error=true), если
    • Пауза не соответствует спецификации
    • Ошибка в данных ответа

Интерфейс:

  • Входы
    • Arg  : in natural - адрес (0-15)
    • Data  : in integer_vector(4 downto 1) — 4 байта
  • Выходы
    • Error : out boolean (true = ошибка, false= всё Ок).
  • Сигналы
    • signal tdata_mod : in std_logic - сигнал, идущий с выхода DUT;
    • signal CoilModulation : out std_logic - огибающая;