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

Схемотехнические трюки для ПЛИСоводов

10 minutes ago, Мур said:

способ выявить разные уровни.

Еще  раз - разные уровни для перекидывания определяет сам триггер. Без доп.  логики. Будет на входе 0 - перекинется в 0. Будет 1 - перекинется в 1. Будет X.. - перекинется в X.._знает_во_что
Каков будет результат операции X.._знает_что  XOR 1/0?

 

Для  чего нужна  цепочка я уже  написал:

30 minutes ago, RobFPGA said:

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

 И  наличие лишней XOR на первом триггере в цепочке, только  ухудшает ситуацию.    

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


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

40 minutes ago, RobFPGA said:

Вот именно - и это состояние убивает  вашу идею  с XOR.   

Позвольте вмешаться. Разумное в этом коде все же есть, хоть это и странно. Правда не понимаю почему не нужен второй триггер. 

Положим пусть dou = 0, din=1. Если метасостояние не возникает, то будет dou=1, если возникает, то спустя время триггер свалится либо в 0, что приведет к dout = 0 либо в 1, что не приведет к разрешению работы ena, но оно и не нужно dout=1. 

Но мне не ясно почему игнорируется фаза метастабильного состояния dout, на высокой тактовой или разветвленном дереве сидящем на dout оно все равно может уйти за второй триггер. Конечно вероятность этого мала, да и эти триггеры неявно есть в схеме дальше, но тем не менее. И в итоге все равно схема приходит к двум триггерам. Так в чем цимус?

10 minutes ago, RobFPGA said:

Каков будет результат операции X.._знает_что  XOR 1/0?

как я понимаю результат может быть любой и он не влияет на конечный результат: значение dout спустя 2-3 такта. Но вот что будет происходит в интервале до этого момента, это вопрос) 

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


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

7 minutes ago, RobFPGA said:

Еще  раз - разные уровни для перекидывания определяет сам триггер. Без доп.  логики. Будет на входе 0 - перекинется в 0. Будет 1 - перекинется в 1. Будет X.. - перекинется в X.._знает_во_что
Каков будет результат операции X.._знает_что  XOR 1/0?

 

Для  чего нужна  цепочка я уже  написал:

 И  наличие лишней XOR на первом триггере в цепочке, только  ухудшает ситуацию.    

Пока не будет разрешения на переброс триггера - никаких переключений!  Кстати,- это отсутствие динамики экономит энергию...

Нет иного управления триггером, кроме самого входа!

6 minutes ago, des00 said:

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

Вы правы.

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

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


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

22 minutes ago, des00 said:

Положим пусть dou = 0, din=1. Если метасостояние не возникает, то будет dou=1, если возникает, то спустя время триггер свалится либо в 0, что приведет к dout = 1 либо в 1, что не приведет к разрешению работы ena, но оно и не нужно, т.к. dout=1. 

В том то и дело что это только кажется.  Если метастабильность возникла  то смысла в логике XOR нет.  Триггер в состоянии метастабильности, выход триггера не определен. Еще раз - выход и не 0 и не 1!
Результат операции XOR тоже не определён!. И эта неопределённость подается на вход этого же триггера.  Это только затягивает выход триггера из метастабильного состояния.  Какой тогда смысл этого XOR???  


Поэтому  я сразу и сказал  что для  устранения  метастабильности этот XOR бесполезен, и даже вреден.

 

19 minutes ago, Мур said:

Пока не будет разрешения на переброс триггера - никаких переключений!  Кстати,- это отсутствие динамики экономит энергию...

Переброс обычного D триггера происходит только при смене входа, как и в вашей схеме.  Это может будет экономит энергию в каком либо ASIC со специальном дизайном триггера в котором ENA снимает питание со клоковых цепей внутри этого триггера. Но ни как не в FPGA.      

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


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

7 minutes ago, RobFPGA said:

В том то и дело что это только кажется.  Если метастабильность возникла  то смысла в логике XOR нет.  Триггер в состоянии метастабильности, выход триггера не определен. Еще раз - выход и не 0 и не 1!
Результат операции XOR тоже не определён!. И эта неопределённость подается на вход этого же триггера.  Это только затягивает выход триггера из метастабильного состояния.  Какой тогда смысл этого XOR???  

но все равно он либо свалится в 0 и переключится, либо в 1цу и там останется. Ну а то что выход затянут, ну чтож теперь, все равно через пару тактов все будет нормально. А XOR, ну метастабильность вещь вероятностная, на современных плис ее длительность мала, может в общем случае 98% событий XOR действительно работает и уменьшает "латентность". Но это надо собирать стенды и измерять)

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


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

Когда я прогонял решение на симуляторе, то видел повтор входа с задержкой в один такт. С учетом не своевременности тактирования будет два.

Дизайн родился в задаче тактирования одной частотой, но с разной задержкой, в зависимости от расположения на ПЛИС. Пропадание разрядов, если решать в лоб, и побудило к поиску простого решения.

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


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

9 minutes ago, des00 said:

но все равно он либо свалится в 0 и переключится, либо в 1цу и там останется.

Опять 25 :wink2:   И обычный D триггер сделает то же самое если попадет в метастабильность - либо свалится из метастабильности в 0 или 1. Либо останется в ней до следующего такта клока.  

И проблема именно в том что будет если триггер не свалится из метастабильности  до следующего такта!    

 

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


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

7 minutes ago, RobFPGA said:

Опять 25 :wink2:   И обычный D триггер сделает то же самое если попадет в метастабильность - либо свалится из метастабильности в 0 или 1.

Потому и вопрос мой был про цимус подобной схемы. 

Quote

Либо останется в ней до следующего такта клока.  

ЕМНП память про статьи от Altera, Xilinx и AD время выхода из метастабильного состояния не зависит от тактовой, а зависит от технологических параметров триггера. И именно соотношение этого времени и периода тактовой частоты приемника определяет количество триггеров в цепочке CDC. Там даже графики выхода приводились, для разных технологий, в том числе для разных поколений ПЛИС. Если что-то изменилось в политике партии, то дайте ссылку на статью. Интересно почитать что это за новые веяния

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


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

Мой опыт говорит, что "серый" уровень метастабильности трактуется как лог 1. А значит, что время переключения в фронте из 1 в 0 будет идти быстрее, чем наоборот. Потому как XOR помогать уже не будет 2м циклом.  Это для самого тяжелого случая...

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


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

6 minutes ago, des00 said:

ЕМНП память про статьи от Altera, Xilinx и AD время выхода из метастабильного состояния не зависит от тактовой, а зависит от технологических параметров триггера. И именно соотношение этого времени и периода тактовой частоты приемника определяет количество триггеров в цепочке CDC. Там даже графики выхода приводились, для разных технологий, в том числе для разных поколений ПЛИС.

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

Поэтому  в формулах расчета  MBTF для CDC участвует и целевая частота.  

  

 

3 minutes ago, Мур said:

Мой опыт говорит, что "серый" уровень метастабильности трактуется как лог 1.

???  :shok:

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


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

3 minutes ago, RobFPGA said:

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

Ну так я про это и писал. В чем тогда предмет спора то?) ЕМНП для плис по технологии 28нм, время этого выхода уже было порядка сотен пс, что в принципе позволяет не ставить "пацанские" CDC, а обойтись одним триггером) И это не мои слова, это было в какой то wp от Xilinx)

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


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

11 minutes ago, des00 said:

Ну так я про это и писал. В чем тогда предмет спора то?) ЕМНП для плис по технологии 28нм, время этого выхода уже было порядка сотен пс, что в принципе позволяет не ставить "пацанские" CDC, а обойтись одним триггером) И это не мои слова, это было в какой то wp от Xilinx)

Быстродействие  и время выхода из  метастабильности  не одно и тоже.  И похоже  не все в Xilinx  знают какие они крутые транзисторы делают :unknw:

cdc_xilinx.png

 

12 minutes ago, Мур said:

Вам не известен такой термин?..

Какой термин?   Метастабильность - известен.  А как трактовать это состояние и конвертировать его в 1 или 0 не знаю.   

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


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

10 minutes ago, RobFPGA said:

Быстродействие  и время выхода из  метастабильности  не одно и тоже.  И похоже  не все в Xilinx  знают какие они крутые транзисторы делают :unknw:

Ну, у того же спартана 3 го это время было порядка сотен нс, софт то общий для всех. Таблица режимов DRC совсем не показатель.

Вот из древнего, как раз где то в 2006-2008 году плотно погружался в эту тему Xilinx XAPP094 Metastable Recovery in Virtex-II Pro FPGAs, Application Note 

были новые доки, по свежим семействам, но искать лень. Таблица Figure 3: Metastable Progress и это на 2002 год)

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


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

13 minutes ago, RobFPGA said:

Какой термин?   Метастабильность - известен.  А как трактовать это состояние и конвертировать его в 1 или 0 не знаю.   

Понимаю. 

Тут речь о жесткой логике (это для нашего XOR), которая уровни выше 0,8В ("серая" зона) для 5 вольтовой логики воспринимает как лог.1...

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


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

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

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

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

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

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

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

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

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

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