Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по SignalTap
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Среды разработки - обсуждаем САПРы
spectr
Привет!
Такой вопрос - как можно в сигналтапе сделать триггер, который бы срабатывал если сигнал не меняется в течение какого-то времени? Мне надо отловить ситуацию когда сигнал (значение на шине) впервые становится отрицательным в течение, допустим, 5 тактов. Что-то я не нашел возможности проверить средствами сигналтапа значение предыдущего сэмпла (ни в advanced mode, ни в state machine mode).

Единственный возможный вариант вижу - использовать конечный автомат с 5-ю состояниями, где в каждом состоянии проверять значение сэмпла и если он подходит условиям триггера - сохранять значения в режиме storage qualifier и переходить в следующее, а в противном случае сбрасывать очередь и уходить в начало автомата. Но получается что-то не то всё равно...
Спасибо.
_Anatoliy
Цитата(spectr @ Feb 8 2018, 23:50) *

Если для запуска ST нужен автомат - так и опишите его в проекте, а для запуска ST используйте флажок формируемый автоматом.
Kluwert
Цитата(spectr @ Feb 8 2018, 23:50) *
Привет!
Такой вопрос - как можно в сигналтапе сделать триггер, который бы срабатывал если сигнал не меняется в течение какого-то времени? Мне надо отловить ситуацию когда сигнал (значение на шине) впервые становится отрицательным в течение, допустим, 5 тактов. Что-то я не нашел возможности проверить средствами сигналтапа значение предыдущего сэмпла (ни в advanced mode, ни в state machine mode).

Свойства "pipeline" просто нужно задействовать у модулей в "advanced". А в блоках "BUS" св-во "Data Delay"
justontime
Вообще офигел с того, что не могу найти SignalTap User Guide - он вообще существует (свежее версии от 1999 года) ???

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

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

Вроде Storage Qualifier предназначены как раз для этого, но, как уже сказал, они работают вообще непонятно, а не логично (для меня)...
spectr
Вот здесь всё подробно расписано: https://www.altera.com/en_US/pdfs/literatur...ts_qii53009.pdf

Цитата(justontime @ Feb 24 2018, 18:52) *
А нужно, чтобы по определенному событию каждый раз запускалась запись на некоторое время, а потом останавливалась, и так пока буфер не закончится. Причем устраивает период записи задавать как в количестве тактов, так могу и сигналы выдавать для начала/окончания записи.

Вроде Storage Qualifier предназначены как раз для этого, но, как уже сказал, они работают вообще непонятно, а не логично (для меня)...


Вам нужен триггер типа Start/Stop.

А Storate Qualifier работает так: по наступлению события запоминает одно состояние всех вытащенных в него сигналов. По следующему наступлению события - снова запоминает. И так, пока не заполнится весь буфер. Самый простой пример - захватить данные с SPI-АЦП, когда событием для захвата данных является сигнал того что сэмпл прочитан. В итоге получите форму АЦПированного сигнала, можно даже график построить там же.
justontime
Цитата(spectr @ Feb 26 2018, 12:21) *
Вот здесь всё подробно расписано:.

Ну и почему я сам там не нашел ???

Спасибо !
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.