реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Quartus SiganlTap, как захватывать последний пакет, а не самый первый
novartis
сообщение Apr 13 2017, 08:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



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

Сигналтап настроен так:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
lembrix
сообщение Apr 13 2017, 09:27
Сообщение #2





Группа: Участник
Сообщений: 12
Регистрация: 13-04-17
Из: Москва
Пользователь №: 96 508



Добавить в сигналтап счетчик пакетов из проекта и сделать по нему составное условие для триггера, типа "начало пакета" и "счетчик = 1000".
Или использовать State-Based Triggering, это позволяет писать сложные условия срабатывания триггера, т.е. можно считать пакеты в самом условии и запустить запись данных когда прийдет 1000-ый пакет.
Go to the top of the page
 
+Quote Post
novartis
сообщение Apr 13 2017, 09:32
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Не правильно вопрос задал)
Заранее неизвестно количество пакетов
То есть вот шлет приложение пакеты в бесконечном цикле, потом раз - остановилось. И последний пакет сигналтап и поймал.
Go to the top of the page
 
+Quote Post
lembrix
сообщение Apr 13 2017, 09:49
Сообщение #4





Группа: Участник
Сообщений: 12
Регистрация: 13-04-17
Из: Москва
Пользователь №: 96 508



Тогда выбрать post triigger position, ну и условие остановки нужно, навроде этого - отсутствие перепадов на линии данных в течение времени большего, чем допустимая пауза между пакетами.
Go to the top of the page
 
+Quote Post
Tausinov
сообщение Apr 13 2017, 10:46
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 19-10-13
Пользователь №: 78 795



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

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

Сообщение отредактировал Tausinov - Apr 13 2017, 10:48
Go to the top of the page
 
+Quote Post
Alex11
сообщение Apr 13 2017, 18:21
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 976
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Хочу тоже присоединиться к вопросу, поскольку стоит близкая задача. Проблема в том, что ошибка детектируется настолько поздно, что никакой памяти не хватит. Нужно по синхросигналу запоминать данные в пределах отведенной памяти, но не выводить в компьютер, как делает SignalTap, а переходить опять в ожидание запуска. При следующем запуске запоминать новый комплект сигналов вместо предыдущего, затем, после нажатия на кнопку Stop или по другому сигналу (это можно организовать), вывести последний запомненный комплект данных. Знает ли кто-то решение?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 13 2017, 20:35
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 081
Регистрация: 17-02-06
Пользователь №: 14 454



там вроде бы есть вроде режим не единичного запуска, а постоянного. По событию он запоминает, и ждет следующего. Произойдет он вам запомнит следующее, а нажмете стоп остановится.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Apr 14 2017, 09:07
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 508
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Golikov A. @ Apr 13 2017, 23:35) *
там вроде бы есть вроде режим не единичного запуска, а постоянного. По событию он запоминает, и ждет следующего. Произойдет он вам запомнит следующее, а нажмете стоп остановится.


Там между перезапусками большой временной интервал обусловленный обменом с квартусом через JTAG. Так что из пачки он захватит 2-3 пакета.
Go to the top of the page
 
+Quote Post
Alex11
сообщение Apr 15 2017, 21:59
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 976
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



И, кроме того, по кнопке стоп генерируется принудительный новый останов, результат которого и показывается.
Go to the top of the page
 
+Quote Post
vikk
сообщение Apr 21 2017, 14:11
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 98
Регистрация: 13-01-06
Пользователь №: 13 134



Сделайте тип - transitional
галочки storage qualifier поставьте только по нужным сигналам
придумайте триггер который никогда не случится
жмете старт - он ждет триггера
после прохождения последнего пакета, жмете стоп
на времянке последняя активность на нужных вам сигналах
Go to the top of the page
 
+Quote Post
novartis
сообщение Apr 25 2017, 06:16
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Цитата(vikk @ Apr 21 2017, 19:11) *
Сделайте тип - transitional
галочки storage qualifier поставьте только по нужным сигналам
придумайте триггер который никогда не случится
жмете старт - он ждет триггера
после прохождения последнего пакета, жмете стоп
на времянке последняя активность на нужных вам сигналах


Это то, что нужно было! beer.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th April 2017 - 19:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01627 секунд с 7
ELECTRONIX ©2004-2016