|
|
  |
Как правильно писать в регистр |
|
|
|
Jul 18 2017, 03:42
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441

|
Добрый день. Собираю на ПЛИС Cyclone V E схему, которая измеряет разность времен прихода двух импульсов А и B. Длительность импульсов около 200 мкс, частота 1 Гц. Время измеряется в единицах опорной частоты 100 МГц, подаваемой на счетчик. Схема приведена на рисунке.  Сигналы записи состояний счетчика в регистр я формирую синхронно с опорной частотой. Для того, чтобы состояние счетчика записывалось всегда корректно, как я понял необходимо указать компилятору что данные с счетчика на входе регистров должны быть стабильны к моменту прихода сигнала записи. Вопрос как это сделать? Возможно для корректной работы нужно изменить схему, но что-то никаких идей нет.
|
|
|
|
|
Jul 18 2017, 06:38
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
А Вы сделайте импульсы, которые измеряете не входами синхронизации, а входами разрешения работы, предварирельно пропустив эти сигналы через 2-3 разрядный сдвиговый регистр для избавления от метастабильности. Тогда проект серьёзно упрощается. Цитата(Грендайзер @ Jul 18 2017, 09:23)  Ну как минимум, не стоит подобным образом баловать с тактовой сетью. На таковой цепи должны быть лишь такты - лучше это правило не нарушать. Думою Вам сперва сюда http://fpgacenter.com/examples/basic/edge_detector.php надо глянуть. Вот я постоянно, слышу про то, что не стоит заводить такие сигналы в тактовую сеть. Но никак не могу найти причину почему так делать нельзя. Нет ли у вас ссылки на эту информацию ?
|
|
|
|
|
Jul 18 2017, 06:48
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Цитата(Flip-fl0p @ Jul 18 2017, 09:38)  Вот я постоянно, слышу про то, что не стоит заводить такие сигналы в тактовую сеть. Но никак не могу найти причину почему так делать нельзя. Нет ли у вас ссылки на эту информацию ? Ну прям ссылку я сейчас не найду, но эта фраза взята из апноутов (как альтеры так и ксайлинкса). Причина здесь вообщем то очевидна. При изменении условий работы кристалла (изменение температуры или напряжения питания) нестабильность такого "клока" будет весьма трудно предсказать особенно если он проходит на своём пути комбинационную логику. А вообще данный способ не запрещён и в ряде случаев его можно использовать, но опять таки не желательно. Это и логично, ПЛИС всё же универсальный инструмент. P.S. Забыл упомянуть, все тактовые буферы так же согласованы со специальными тактовыми ногами и самой линией, а вы туда такую рассогласованность пихаете триггером...
Сообщение отредактировал Грендайзер - Jul 18 2017, 06:56
|
|
|
|
|
Jul 18 2017, 07:58
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441

|
Цитата(Грендайзер @ Jul 18 2017, 11:03)  Констрйн Вам надо прописать лишь для тактового сигнала, а вот схему стоит изменить, т.к. в данном случае, Вам синтезатору придётся ещё дополнительными констрейнами объяснять, что у Вас на пустом месте ещё один тактовый домен появился... Для количества измеряемых импульсов больше двух в голову приходит только такая схема: И счетчик и регистры получают на синхронизацию один и тот же тактовый сигнал, регистры имеют вход разрешения работы на который поступает сформированный по предложенной Вами схеме edge detector сигнал, правда схема edge detector немного изменена (добавлен второй триггер перед инвертором)
|
|
|
|
|
Jul 18 2017, 08:44
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441

|
Цитата(Алга @ Jul 18 2017, 12:38)  Если изменить структурную схему: Сигналы А и б являются сигналами старт/стоп и формируют временное окно, которое поступает на вход енабле счетчика. Опорная частота 100Мнц на тактовый вход счетчика. Выходы счетчика есть результат- разница по времени между импульсами А и Б Я в начале топика для простоты указал, что сигналов два, на самом деле их 8. Прошу прощения за неточность. Идея в том, что счетчик крутится по кругу непрерывно, а из значений регистров вычисляется временной интервал между любой парой сигналов.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|