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

синхронизация импульса старта

Из вне (ПЛИС Spartan 3) приходят импульсы длительностью Td, периодом Tp., по которым начинается работа схемы в данном периоде. Работа идёт по фронту, началу импульса, т.е. длительность не важна.

 

1. Есть ли какие особенности, нюансы, "хитрые приёмчики" синхронизации импульса в данном случае ? Достаточно ли стандартных синхронизаторов, используемых при переходе из одного домена в другой ?

 

2. Период клока, которым ловлю старт, - Ти. Следовательно, дребезг внутренних сигналов, относительно импуьсов старта между периодами будет - Ти. Можно ли этого избежать или хотябы уменьшить дребезг?

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


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

Из вне (ПЛИС Spartan 3) приходят импульсы длительностью Td, периодом Tp., по которым начинается работа схемы в данном периоде. Работа идёт по фронту, началу импульса, т.е. длительность не важна.

 

1. Есть ли какие особенности, нюансы, "хитрые приёмчики" синхронизации импульса в данном случае ? Достаточно ли стандартных синхронизаторов, используемых при переходе из одного домена в другой ?

 

2. Период клока, которым ловлю старт, - Ти. Следовательно, дребезг внутренних сигналов, относительно импуьсов старта между периодами будет - Ти. Можно ли этого избежать или хотябы уменьшить дребезг?

 

1. Пропустить внешние входные сигналы через 2 последовательных триггера.

2. Если Fи>Fp для избавления от дребезга можно использовать счетчик, который считает по Fи вверх пока импульс активен и сбрасывается в ноль как только пропадает. Один из старших разрядов этого счетчика и будет тригерный сигнал признака старта.

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


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

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

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

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

post-6536-1183371692_thumb.jpg

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


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

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

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

 

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

 

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

 

Не советую подавать внешние управляющи сигналы (не клоки) на тактовые входы синхронных элементов (не только из-за помехо-не- защищённости). Длительность импульса старта больше Ти.

 

Придётся, видимо, DCM'ом клок поднимать.

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


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

"Не советую подавать внешние управляющи сигналы (не клоки) на тактовые входы синхронных элементов (не только из-за помехо-не- защищённости). Длительность импульса старта больше Ти."

 

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

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


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

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

 

Я немного не такой дребезг имел ввиду :)

 

Период следования импульсов старта Тп=const и Тп >>Ти, длительность имп-са тож больше Ти (~ раз 20).

Теперь представьте, что принимается старт каким-то n-ым фронтом клока. Потом старт пришёл с задержкой (jitter) и защёлкнулся (n+1)-ым фронтом. Т.е. схема начала работать на Ти позже, чем в предыдущем периоде и все сигналы, которые зависят от старта, сдвинулись относительно их положений в предыдущем периоде.

 

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

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


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

"Следовательно, дребезг внутренних сигналов, относительно импуьсов старта между периодами будет - Ти."

 

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

Если частота приемной части больше чем частота на которой приходит импульс старта, так в чем же проблема? Почему бы просто не перенести этот сигнал на приемную частоту?

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


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

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

 

Дребезг междупериодный - дрожание сигналов между периодами прихода сигналов старта. Точней, наверное, сказать jitter. Внутри каждого периода всё работает синхронно.

 

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

 

Нет. Синхронизаторы работают нормально.

 

Почему бы просто не перенести этот сигнал на приемную частоту?

 

Так и делаю :)

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


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

Так у Вас получилось то что Вы хотели сделать?

 

А вот это все равно не понятно

 

"Дребезг междупериодный - дрожание сигналов между периодами прихода сигналов старта. Точней, наверное, сказать jitter. Внутри каждого периода всё работает синхронно."

 

Что значит "внутри каждого периода", если схема синхронна то она и работает синхронно на протяжении всего времени. :cranky:

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


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

Так у Вас получилось то что Вы хотели сделать?

 

Работает всё синхронно, стабильно - перенёс сигнал старта в свой клок домен нормально.

 

Что значит "внутри каждого периода", если схема синхронна то она и работает синхронно на протяжении всего времени. :cranky:

 

В том-то и дела, что схема работает, то синхронно, но не на протяжении всего времени. Схема работает только начиная с момента прихода импульса старта втечение времени Тр < Тп, где Тп период следования импульсов старта. Время Тп-Тр (минус) схема "спит" и ждёт нового импульса. Допустим, есть сигнал EN, который падает в "0" с приходом старта и поднимается в "1" через время Тр (Время Тр определяется схемой, но оно всегда меньше Тп). Пусть Т0 - время прихода первого старта, и сигнал EN упал в "0" - началась работа. Следующий Импульс старта придёт через Т1=Т0+Тп+d, где d - некаторая дельта, которая обусловлена путями распространения сигнала старта до ПЛИС. d != const, и разброс может быть достаточно большой ~ 2-7нС.

Таким образом импульс старта будет подаваться на вход триггера с временным сдвигом d (дрожанием), что приведёт к защёлкиванию его разными клоками, следовательно сигнал EN1 (EN в момент времени Т1) будет сдвинут относительно себя, но в другие периоды (EN0 - Т0, EN2-Т2...ENN-ТN) на величину Ти (периода клока). Это всё касается и других сигналов. Это легко представить, если выстраить сигналы в разных периодах один под другим (вертикально), но со здвигом по горизонтали (влево или вправо).

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


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

А на какой частоте работает схема ? У меня сейчас на 120 МГц нет никаких проблем.

Еще такой вопрос что это за исполнительное устройство которое воспринимает импульс старта, это комбинационная схема, конечный автомат или что? У меня такие сигналы ( разумеется перенесенные на рабочую частоту ) подаются на конечные автоматы, а автомат уже дальше рулит остальными устройствами, раздает сигналы разрешения и т. д. и все работает прекрасно. Я все элементы стараюсь делать по возможности с регистровыми выходами. Чтобы сигналы появлялись в нужные моменты.

Кстати что за ПЛИС?

Может Вам ваши сигналы "EN" в критичных местах прощелнуть через триггер.

А вообще если схема синхронна, то она работает синхронно всегда.

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


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

А на какой частоте работает схема ? У меня сейчас на 120 МГц нет никаких проблем.

 

Еще такой вопрос что это за исполнительное устройство которое воспринимает импульс старта, это комбинационная схема, конечный автомат или что? У меня такие сигналы ( разумеется перенесенные на рабочую частоту ) подаются на конечные автоматы, а автомат уже дальше рулит остальными устройствами, раздает сигналы разрешения и т. д. и все работает прекрасно. Я все элементы стараюсь делать по возможности с регистровыми выходами. Чтобы сигналы появлялись в нужные моменты.

Кстати что за ПЛИС?

Может Вам ваши сигналы "EN" в критичных местах прощелнуть через триггер.

А вообще если схема синхронна, то она работает синхронно всегда.

 

Да синхронно всё работает :) Проблем нет.

Спасибо за помощь. Наверное, мне не удасться объяснить, что надо :)

Но, если есть желание понять, проведите такой эксперимент. Подайте на Ваше устройство внешний старт с периодом Тп и засинхронизируйте от него осциллограф. На вход осцилла подайте сигнал, который _обязательно_ будет изменяться по сигналу старта. И посмотрите на фронт/срез этого сигнала. Jitter в Вашем случае будет = 8.33nS.

Это к синхронности/несинхронности работы схемы не имеет никакого отношения.

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


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

Спасибо за помощь. Наверное, мне не удасться объяснить, что надо

///////////////////////////////

Понятно, что надо. Если Ваш старт нужно привязать к системе глобальной синхронизации, то проявиться это явление, который вы джиттером называете. Чем выше частота, тем точнее привязка. Вот и все.

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


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

который вы джиттером называете.

 

А как назвать ?

 

Чем выше частота, тем точнее привязка. Вот и все.

 

Так это и понятно. Просто думал, может ещё можно как-то извращнуться...

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


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

А как назвать

//////////////////////////////////

А назвать можно издержками перехода из одного клокового домена в другой.

Ведь это всегда не больше периода клока глобальной синхронизации. И в системе это компенсируется, если надо.

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


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

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

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

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

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

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

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

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

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

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