Wissance / ImageCaptureSystem

A Xilinx IP Core and App for line scanner image capture and store
11 stars 5 forks source link

Тестирование модуля image_capture_manager #4

Closed EvilLord666 closed 7 years ago

EvilLord666 commented 8 years ago

Необходимо написать тесты для проверки логики работы модуля image_capture_manager (проверка изменения уровней сигналах на линиях image_capture_enabled и memory_clear). Тестирование должно быть проведено с учетом специфики взаимодействия по шине AXI (см. https://github.com/OpticalMeasurementsSystems/VideoControlIP/wiki/%D0%A2%D1%83%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB%D1%8B-%D0%B8-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B-%D0%BF%D0%BE-Vivado-%D0%B8-Xilinx). Для симуляции необходимо создать новый сэт для симуляции (см., пример, как реализовано в UshakovMV_StreamConvertorImpl хотя там еще не все доделано, но общая канва правильна).
Нужно автоматизировать процесс описания формы сигналов через tcl-скрипт (см., как реализовано в вышеупомянутой ветке, см. нашу вики по справочнику команд для скрипта). Задача реализовывается в отдельной ветке, имя ветки SurnameLetters_Feature (в данном случае это будет, например BoyarintsevA?(вместо ? первая буква отчества)_ImageCaptureManagerTests). Естественно, если есть ошибки в коде модуля, то их нужно также будет исправить. После реализации в отдельной ветке и проверки этой реализации мной или Сашей, будет проведена операция слияния веток.

EvilLord666 commented 8 years ago

Задачу накинул на вас всех, думаю решите, как ее делать.

boyarincevAlex commented 7 years ago

Вопрос: для проверки линии image_capture_enabled нам нужно подавать сигналы на входные линии 4-х модулей, которых она контролирует, и смотреть, как ведут себя эти модули при включении и выключении enable?

boyarincevAlex commented 7 years ago

или нужно протестировать само формирование сигнала enable внутри модуля image_capture_manager?

EvilLord666 commented 7 years ago

Конечно же второй вариант:

нужно протестировать само формирование сигнала enable внутри модуля

image_capture_manager?

boyarincevAlex commented 7 years ago

тест закоммитил, есть много вопросов по AXI

EvilLord666 commented 7 years ago

Буду смотреть написанный тест и оценивать работоспособность модуля. Все комментарии выложу здесь.

EvilLord666 commented 7 years ago

Посмотрел тест вот, что нужно скорректировать в первую очередь: Каждая операция записи (со стороны Master в Slave) состоит из 3 фаз:

а) Установка Master'ом адреса

б) Выставление данных на шину данных

в) Получение ответа от Slave.

В рамках этого теста вы не задаете адрес устройству, т.к. адрес в модуле image_capture_manager_S00_AXI используется исключительно для доступа к регистрам, в данном случае мы эти возможности не используем. Каждая из операций а) - в) использует подтверждение (Handshaking) TValid/TRead:

axi-handshaking

  1. Как я посмотрел у вас эта схема не выдерживаться, нужно поправить схему сигналов в Tcl: генерировать от Slave TREADY.
  2. Сохранить список сигналов симуляции - image_capture_manager_testbench_behav.wcfg, убрать сигналы для READ - канала, т.к., у нас MASTER использует только WRITE канал.
  3. На шине данных не формируются коды команд START и STOP, необходимо их формировать. на wdata у вас ffff0000, а должны быть START и STOP.
EvilLord666 commented 7 years ago

Остальные проблемы нужно будет решить после этих трех.

EvilLord666 commented 7 years ago

Теперь, нужно скорректировать сам модуль, предлагаю обсудить как лучше настроить логику работы, предлагайте решения.

boyarincevAlex commented 7 years ago

Во первых я бы изменил в always блоке posedge s00_axi_wstrb[0] на posedge s00_axi_wvalid (79 строка).

ivanmikulin commented 7 years ago

достаточно в if (~s00_axi_awvalid) изменить на (~s00_axi_wvalid),все работает,я проверил,толкнуть не получается

EvilLord666 commented 7 years ago

Правильно нам нужно ждать готовности самих данных а не адреса, протолкнуть ты не можешь, т.к. у тебя конфликт, я в эту ветку коммитил,поэтому сначал нужно вытянуть изменения, сделать мердж и протолкнуть.

EvilLord666 commented 7 years ago

В общем есть разговор относительно тех документов, которые я вам недавно сбрасывал + в ближайшее время будут платы, поэтому нужно встретиться и обсудить план работ.

EvilLord666 commented 7 years ago

Скорректировал ваши изменения, залил ветку в мастер.