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

Обсуждение проблемы метастабильности в ПЛИС

Тема выделена из темы https://electronix.ru/forum/topic/173971-ne-vsegda-srabatyvaet-uslovie/

 

В 26.10.2023 в 06:15, des00 сказал:

ЕМНП у тогоже 7 Series время выхода триггера из метастабильного состония порядка 100-200пс.

 

Будьте добры, уточните, пожалуйста, откуда вы добыли информацию о "100-200пс" для выхода триггера из метастабильного состояния в Xilinx 7-Series ?

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


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

On 10/26/2023 at 10:09 PM, _4afc_ said:

А можно пример современного "полуасинхронного" синхронизатора c на чистом verilog? С необходимыми констрейнами и атрибутами.

самый лучший вариант из первых рук: сгенерировать xilinx gtp/gtx с полным обвесом и отреверсить) где то года с ~2019 там стали использоваться занятные переходы между доменами, которые до этого момента делались по другому. 

On 10/29/2023 at 2:04 PM, jenya7 said:

и всё таки даже сейчас раз в 4000 - 80000 обращений одно ломается. правда последующие отрабатываются нормально до следующей поломки.

вам же написали, больше триггеров, больше) 

ЗЫ. код у вас эквивалентный, проблема явно не там) 

11 hours ago, Beby said:

Будьте добры, уточните, пожалуйста, откуда вы добыли информацию о "100-200пс" для выхода триггера из метастабильного состояния в Xilinx 7-Series ?

Какой то документ от хилых был, либо дока с иеее, на предмет оценки этого времени в современных плис. Надо поискать, но так под рукой сейчас нет. 

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


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

4 hours ago, des00 said:

Какой то документ от хилых был, либо дока с иеее, на предмет оценки этого времени в современных плис. Надо поискать, но так под рукой сейчас нет.

  Если не сложно, найдите, пожалуйста, этот документ, было бы крайне интересно с ним ознакомится.

В 2011 году на МАКС-2011 у меня был разговор с техническим специалистом Xilinx, как раз по поводу подобных цифр.

После нескольки минут юления, специалист запросил разрешение от своего начальника (возможно Йенса Смита - я тогда с ним ещё не общался и в лицо не знал) на разглашение этой информации, после чего выдал:

Для надёжного подавления метастабильности в Virtex/Kintex-7 со SpeedGrade -1 во всём диапазоне температур достаточно:
1. 2 CLB триггеров для частоты до 250 МГц;
2. 3 CLB триггеров для частоты до 300 МГц;
3. более 300 МГц могут быть глюки.
CLB треггера обязательно находятся в одном Slice (т.е. с одинаковым RLOC'ом).

  У того разговора был с 10 свидетелей/слушателей, потому NDA в явном виде на него не располагалось.
Если этого недостаточно, то предложил: "написать запрос в Xilinx для получения дополнительной информации (благо NDA есть),.. а ещё лучше написать запрос на трудоустройство: у нас весьма большой отдел по применению наших ПЛИС - обычно специалисты, которые интересуются подобными вопросами, потом у нас и работают... и с получением подробнейшей информации о наших ПЛИС у них более проблем не возникает."

250 МГц, т.е. 4 нс (даже с учётом, Routing, Setup и чего-то ещё) явно больше, чем указанные вами 100-200 пс. Поэтому мне так интересен источник информации о 100-200 пс.

И да, на предложение померить самим, как описано у них в AppNote (ещё для Virtex-2) я привёл контраргумент, что я не в курсе какая у меня партия ПЛИС: удачная или на гране допустимого - а цифры то для них будут сильно разниться; Xilinx же прекрасно знает для какого кристалла они проводят измерение - вот на этом отмазки/юления и закончились.

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


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

27 minutes ago, Beby said:

  Если не сложно, найдите, пожалуйста, этот документ, было бы крайне интересно с ним ознакомится.

Поищу на досуге, постараюсь найти

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


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

56 минут назад, Beby сказал:

250 МГц, т.е. 4 нс (даже с учётом, Routing, Setup и чего-то ещё) явно больше, чем указанные вами 100-200 пс. Поэтому мне так интересен источник информации о 100-200 пс.

Присоединяюсь к вопросу. Когда в давние времена интересовался этим вопросом, то находил информацию об обратной зависимости времени метастабильности и мощности триггера, поэтому для триггеров ячеек ввода-вывода приводились величины порядка 1 нс, а для внутренних триггеров всё было заметно хуже и ни о каких пикосекундах там речь даже близко не шла.

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


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

6 hours ago, des00 said:

самый лучший вариант из первых рук: сгенерировать xilinx gtp/gtx с полным обвесом и отреверсить) где то года с ~2019 там стали использоваться занятные переходы между доменами, которые до этого момента делались по другому. 

Ох уж эти переходы в GTP/GTX ...  Вот как раз с ними приходится сейчас разбираться так  как они ломают все DRC которые сами же Xilinx и пишут. 
И я не увидел там ничего "полу-асинхронного", обычные цепочки триггеров с кучей потенциальных проблем. Но поскольку в большинстве этих проблемных мест входное toggle-rate мизерное поэтому IMHO разработчики и забили на возможные глюки. Как и на другие глюки которые судя по всему проявляются  в редко используемых конфигурациях ...
 

А для проверки надежности используемых решений CDC  в Vv есть report_cdc  и  report_synchronizer_mtbf.  Очень бывает поучительно посмотреть получаемые циферки для разных решений.

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


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

20 minutes ago, makc said:

Присоединяюсь к вопросу. Когда в давние времена интересовался этим вопросом, то находил информацию об обратной зависимости времени метастабильности и мощности триггера, поэтому для триггеров ячеек ввода-вывода приводились величины порядка 1 нс, а для внутренних триггеров всё было заметно хуже и ни о каких пикосекундах там речь даже близко не шла.

не было там никакого заметно хуже, тот самый Питер Алфке писал http://www.pldworld.com/_xilinx/html/tip/metastability.htm еще в 2002 году

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


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

7 минут назад, des00 сказал:

не было там никакого заметно хуже, тот самый Питер Алфке писал http://www.pldworld.com/_xilinx/html/tip/metastability.htm еще в 2002 году

Я, ЕМНИП, плотно интересовался этим вопросом году в 2007-2008, технологии тогда уже ушли вперёд и полагаю, что топология триггеров ячеек ввода-вывода стала отличаться от топологии триггеров в матрице. Хотя могу заблуждаться, поэтому хотелось бы увидеть что-то посвежее, для шестой или седьмой серии хилых.

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


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

Вот собственно все актуальные (UG835 (v2023.2) October 18, 2023) рекомендации из доки для report_synchronizer_mtbf  

Quote

Asynchronous clock domain crossings (CDCs) can fail due to metastability as data is captured asynchronously and may settle to different values on different loads in the circuit. Synchronizer registers are used to improve overall circuit reliability for designs which contain multiple clock domains, in which asynchronous data transfers occur, or in which external asynchronous signals are captured with an internal clock. A synchronizer chain consists of two or more registers connected sequentially with the first stage capturing the data signal from the asynchronous clock domain. The successive register stages provide additional settling time for metastable events and increase MTBF. The synchronizer registers must have ASYNC_REG properties with values of TRUE. Besides reporting MTBF, the ASYNC_REG properties instruct synthesis, simulation and implementation tools to optimize for increased MTBF and improve overall behavior of the synchronizer circuit

и никакой  "полу-асинхронщины"  ...

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


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

Про Xilinx это всё хорошо. Но насколько я помню другие темы этого автора, он использует Альтеру.

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


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

3 minutes ago, andrew_b said:

Про Xilinx это всё хорошо. Но насколько я помню другие темы этого автора, он использует Альтеру.

В Altera/Intel  все тоже  самое ...

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


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

4 minutes ago, RobFPGA said:

все тоже  самое

Там нет ASYNC_REG, насколько помню.

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


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

1 minute ago, andrew_b said:

Там нет ASYNC_REG, насколько помню.

Зато там есть:

Quote

altera_attribute = "-name SYNCHRONIZER_IDENTIFICATION   FORCED_IF_ASYNCHRONOUS;   SUPPRESS_DA_RULE_INTERNAL=R102;   SUPPRESS_DA_RULE_INTERNAL=R101"

 

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


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

6 hours ago, des00 said:

Питер Алфке писал http://www.pldworld.com/_xilinx/html/tip/metastability.htm еще в 2002 году

1. Вот, всё тоже самое, но в более красивом виде: XAPP094: Metastable Recovery in Virtex-II Pro FPGAs (v3.0, 10 February 2005, Author: Peter Alfke)
Собственно именно на этот документ и попробовал съехать в 2011 году специалист Xilinx - и тут же получил отлуп. На тот момент Xilinx не выпустил ни одного документа по Metastable Recovery для ПЛИС новее Virtex-2Pro и, исходя из беседы, не планировал опубликовывать получаемые по Metastable Recovery данные в ближайшие несколько лет.

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

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


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

12 hours ago, Beby said:

1. Вот, всё тоже самое, но в более красивом виде: XAPP094: Metastable Recovery in Virtex-II Pro FPGAs (v3.0, 10 February 2005, Author: Peter Alfke)
Собственно именно на этот документ и попробовал съехать в 2011 году специалист Xilinx - и тут же получил отлуп. На тот момент Xilinx не выпустил ни одного документа по Metastable Recovery для ПЛИС новее Virtex-2Pro и, исходя из беседы, не планировал опубликовывать получаемые по Metastable Recovery данные в ближайшие несколько лет.

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

был документ типа вот такого Refined metastability characterization using a time-to-digital converter - ScienceDirect,  только более свежий, где то года 2020-2021 го. Исследование, написанное не на коленке. Попал на него случайно, шарился по другому вопросу на форуме саппорта какого то вендора и случайно увидел ссылку.  К сожалению в свою файлопомойку я его тогда не сохранил. Но в памяти отразились итоговые таблицы, там были приведены данные на плис начиная с уровня первых максов-динозавров (~5нс), заканчивая последними 16нм хилыми, где и были указанны те самые 100-200пс . Может конечно у меня помутнение рассудка, но вот четко в памяти отразились цифры в таблицах. Я еще пороюсь по ieee, но при 14 часовом рабочем дне это несколько затруднительно. Прошу понять)

Из того что нашел в своей файлопомойке это документ от SNUG Silicon Valley 2014, но это не он. Статья довольная старая и для азиководов, там разбирается современный 65нм триггер. 

ЗЫ. А топик стартер, поставив дополнительный триггер, так и мучается) 

document (1).pdf

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


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

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

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

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

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

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

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

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

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

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