Перейти к содержанию
    

Quartus SiganlTap

Засылаю с компа 1000 пакетов udp. Ставлю в сигналтап захват по началу пакета. Ловится первый, если опять нажать захват, ловится к примеру 436 пакет. Как поймать последний?

 

Сигналтап настроен так:

post-52845-1492072229_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавить в сигналтап счетчик пакетов из проекта и сделать по нему составное условие для триггера, типа "начало пакета" и "счетчик = 1000".

Или использовать State-Based Triggering, это позволяет писать сложные условия срабатывания триггера, т.е. можно считать пакеты в самом условии и запустить запись данных когда прийдет 1000-ый пакет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не правильно вопрос задал)

Заранее неизвестно количество пакетов

То есть вот шлет приложение пакеты в бесконечном цикле, потом раз - остановилось. И последний пакет сигналтап и поймал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Пы.Сы. не знаю, на счет SignalTap, но Xilinx'вский ILA позволяет прикрутить к запуску кастомную стейтмашину. Там, правда, немного необычный синтаксис, но в целом, если не хочется возиться с переразводкой, то может помочь.

Изменено пользователем Tausinov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу тоже присоединиться к вопросу, поскольку стоит близкая задача. Проблема в том, что ошибка детектируется настолько поздно, что никакой памяти не хватит. Нужно по синхросигналу запоминать данные в пределах отведенной памяти, но не выводить в компьютер, как делает SignalTap, а переходить опять в ожидание запуска. При следующем запуске запоминать новый комплект сигналов вместо предыдущего, затем, после нажатия на кнопку Stop или по другому сигналу (это можно организовать), вывести последний запомненный комплект данных. Знает ли кто-то решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Там между перезапусками большой временной интервал обусловленный обменом с квартусом через JTAG. Так что из пачки он захватит 2-3 пакета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И, кроме того, по кнопке стоп генерируется принудительный новый останов, результат которого и показывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте тип - transitional

галочки storage qualifier поставьте только по нужным сигналам

придумайте триггер который никогда не случится

жмете старт - он ждет триггера

после прохождения последнего пакета, жмете стоп

на времянке последняя активность на нужных вам сигналах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте тип - transitional

галочки storage qualifier поставьте только по нужным сигналам

придумайте триггер который никогда не случится

жмете старт - он ждет триггера

после прохождения последнего пакета, жмете стоп

на времянке последняя активность на нужных вам сигналах

 

Это то, что нужно было! :beer:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...