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

 
 
> Как сбросить синхронный триггер без клока?, Как принято решать подобный вопросы?
MegaVolt
сообщение Nov 9 2015, 08:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Откуда растут ноги у столь странного вопроса:

Есть синхронный счётчик на тактовый вход которого заведена некая внешняя частота. На CE заведён импульс 1с. В результате имеем простейший частотомер. Сброс и вычитывание результата идут от опорной частоты.

Собственно в чём проблема. Сброс срабатывает только при наличии внешней частоты и не срабатывает при её отсутствии.

Как решают подобные вопросы?

Само собой можно поставить триггеры с асинхронным сбросом и не париться. Только вот очень мне понравилось делать большие счётчики на DSPэщных блочках. А они только синхронные.

Решение в лоб - подмешать во входную тактовую внутренний клок на время сброса тоже вариант. Но какой то он не очень красивый.

Собственно вопрос: как принято решать подобные проблемы?

Пока писал придумал ещё вариант: счётчик никогда не сбрасывать. А от выходного сигнала отнимать предыдущее измерение.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gerbity
сообщение Nov 9 2015, 08:13
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 2-11-15
Из: Москва, Зеленоград
Пользователь №: 89 137



Вообще говоря клоки и ресеты - это как говорится святая корова, и без серьезной необходимости (ну очень серьезной) лучше их лишний раз не модифицировать и не подмешивать. Так что в этом случае поставите уж один асинхронный триггер и не мучайте клок, а то проблем не оберетесь.

Сообщение отредактировал gerbity - Nov 9 2015, 08:14
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Nov 9 2015, 09:09
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(gerbity @ Nov 9 2015, 11:13) *
Так что в этом случае поставите уж один асинхронный триггер и не мучайте клок, а то проблем не оберетесь.
Если не секрет куда его поставить?


Цитата(iosifk @ Nov 9 2015, 11:18) *
Если " некая внешняя частота" ниже чем может быть частота в кристалле, то сделайте CDC и системный клок и от него работайте...
Внешняя частота выше рабочей. Плюс может отсутствовать.


Цитата(Shivers @ Nov 9 2015, 11:35) *
Нормальный вариант. Но сначала надо обязательно пересинхронизировать измеряемый сигнал двумя триггерами.
В этом нет необходимости так как циклограмма позволяет считывать данные через некоорое (большое время) после перевода CE в ноль.


Цитата(RobFPGA @ Nov 9 2015, 11:49) *
Наверное частотомер ваяете.
Простенький - простенький. Для целей индикации.
Цитата
Костыль BUGCTRL - выгляди не очень - но работать будет (но опять же есть ограничения - не потанцуешь sm.gif ).
Хватит и обычной логики. DSP блочёк имеет один клоковый пин и его можно вести как угодно. Хуже не станет sm.gif
Цитата
Если клок произвольный и может отсутствовать то только асинхронный сброс.
sm.gif)) Вот и пример того где отказаться от асинхронности нельзя.
Цитата
Если еще и частота выше системной то есть несколько вариантов счета - включая полностью асинхронный счетчик wacko.gif
В этом случае лимит только физические ограничения на макс. частоту на пин и тригер.
Классику я знаю. Хотелось обсудить альтернативные варианты.

Цитата(iosifk @ Nov 9 2015, 11:52) *
Сдвиговый регистр и дешифратор к нему. Это не требует переносов и может быть быстрее.
А можно поподробнее что это за фокус? Счётчик Джонсона? Так он же триггеры жрёт что не в себя.

Сообщение отредактировал MegaVolt - Nov 9 2015, 09:06
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 10 2015, 08:14
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(MegaVolt @ Nov 9 2015, 12:09) *
А можно поподробнее что это за фокус? Счётчик Джонсона? Так он же триггеры жрёт что не в себя.

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

Берем 2 блока. В каждом сдвиговый регистр, исходно в нем 0. В него задвигаем 1. Например 8 раз. Как только на выходе появится 1, то значит пришло 8 импульсов, которые суммируем в регистр индикации.
Один блок сдвигает, другой суммирует и обнуляется. По окончании работы в одном из блоков будет "хвост", который после обработки можно добавить к сумматору.
Преимущество в том, что сдвиг быстрее счета и там "ближние" интерконнекты, а в Ксайлинксе вообще можно взять SRL - это одна ячейка...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 10 2015, 09:27
Сообщение #5


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

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



Приветствую!

Цитата(iosifk @ Nov 10 2015, 10:14) *
Если делаете быстрый счетчик, то там будут параллельные переносы. А они жрут много логики и интерконнектов.

Берем 2 блока. В каждом сдвиговый регистр, исходно в нем 0. В него задвигаем 1. Например 8 раз. Как только на выходе появится 1, то значит пришло 8 импульсов, которые суммируем в регистр индикации.
Один блок сдвигает, другой суммирует и обнуляется. По окончании работы в одном из блоков будет "хвост", который после обработки можно добавить к сумматору.
Преимущество в том, что сдвиг быстрее счета и там "ближние" интерконнекты, а в Ксайлинксе вообще можно взять SRL - это одна ячейка...

Можно проще - входной делитель частоты на кольцевом сдвиговом регистре с бегущей 1 или инверсией. А затем уже можно и на системный клок переходить и считать в DSP sm.gif
Но увы - для регистра тут опять встает изначальный вопрос TC - все равно нужен асинхронный сброс laughing.gif

Успехов! Rob.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:45
Рейтинг@Mail.ru


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