makc 222 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 30 минут назад, des00 сказал: Но в памяти отразились итоговые таблицы, там были приведены данные на плис начиная с уровня первых максов-динозавров (~5нс), заканчивая последними 16нм хилыми, где и были указанны те самые 100-200пс . Во вложении документ 2010 года, который тоже говорит о 100 пс уже на Spartan-3: medvedrogina2010.pdf И ещё один документ из библиографии вышеуказанной статьи: beer2010.pdf Чудеса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 9 minutes ago, makc said: Во вложении документ 2010 года, который тоже говорит о 100 пс уже на Spartan-3: medvedrogina2010.pdf Чудеса? Чуть позже гляну, спасибо) Про чудеса не знаю, не уверен) но повторюсь, у ТС какая то мелкая ПЛИС с гражданской тактовой порядка 50-100МГц. Однотриггерный синхронизатор, даже при наличии комбинационной логики детектора фронта (уже намек что входные сигналы порядка 25-50МГц как максимум), идущей на мелкий КА и в отсутствии констрейнов и всех прочих свистоперделок без которых "CDC точно не заработает", будет с вероятностью 99.9% работать. Проблема у него где-то в другом месте. В этом контексте я и писал) Но полный код и результаты применения советов форума он не выкладывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 26 минут назад, des00 сказал: Чуть позже гляну, спасибо) Там я чуть позже ещё одну статью прикрепил. По-хорошему смотреть их нужно вместе. 26 минут назад, des00 сказал: Проблема у него где-то в другом месте. В этом контексте я и писал) Но полный код и результаты применения советов форума он не выкладывает. Согласен, скорее всего это какая-то банальная ошибка, которой мы не видим и не можем увидеть в виду недостатка данных. Поскольку тема ТС фактически заглохла, то предлагаю выделить обсуждение метастабильности в отдельную тему. Нашёл ещё более новую статью: 1-s2.0-S0026271417305462-main.pdf @des00, не её ли вы изначально имели в виду? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба @des00, @makc - Благодарю за представленные документы - они были весьма интересны. Я бегло проглядел эти... изыскания. Есть здравые зёрна, а есть и маразм. Вот последний заключается в том, что для существенно нелинейной системы частоту отказов решили аппроксимировать функцией 1-го порядка: e^(Td/Tay). Отмечу такой момент: 100-200 пс (Tay), о которых говорилось: это - НЕ "время необходимое для успокоения метастабильности в триггере"; это - величина "постоянной времени" аппроксимирующей функции или время, которое дают CDC системе на успокоение, но так, чтобы сбои шли достаточно часто для их уверенной фиксации, но и гарантированно не накладывались друг на друга. Да, Тау имеет размерность времени, но смысл совсем иной. Т.е. Если мы возьмём интервал N Тау, то получим следующие вероятности возникновения ошибки работы CDC из 2 DFF: 1 Тау - 37%, 2 Тау - 14%, 3 Тау - 5.0%, 5 Тау - 0.7 %, 10 Тау - 4.5 *10^-5 раз, 100 Тау - 3.7 *10^-44 раз, 150 Тау - 7.2 *10^-66 раз. Но это если верить линейной аппроксимации нелинейного процесса. В итоге получается, что рекомендации от технического специалиста Xilinx (про не более 250 МГц и 300 МГц) - вполне здравые (если, конечно, нам необходимо обеспечить надёжную работу). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба Уже говорил в других темах, здесь явно какая-то политика, потому что есть куча способов сделать устойчивый триггер — может языки лень менять, простая жадность, невыгодно, и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 4 hours ago, Plain said: Уже говорил в других темах, здесь явно какая-то политика, потому что есть куча способов сделать устойчивый триггер Поделитсь способами? Да и бесплатного "сыра" почти не бывает, любая оптимизация под что-то одно обычно идет за счет чего-то другого ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cdg 4 1 ноября, 2023 Опубликовано 1 ноября, 2023 · Жалоба 2 hours ago, RobFPGA said: Да и бесплатный "сыра" почти не бывает, любая оптимизация под что-то одно обычно идет за счет чего-то другого ... "чего-то другое" это в большинстве решений окажется скорость/частота Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба On 11/1/2023 at 7:55 PM, RobFPGA said: Да и бесплатного "сыра" почти не бывает Это точно. Можно (если это в принципе возможно, конечно) заоптимизировать схемотехнику входных ячеек, а что делать, если нужно уже внутри микросхемы перейти в другой домен... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 9 часов назад, RobFPGA сказал: Поделитсь способами? Что на поверхности — первый инвертор ведущей защёлки заменить на триггер Шмитта, т.е. добавить местную ПОС на двух диффпарах, это 4 транзистора. Нет нужды делать такими все триггеры, но тогда это допресурс нового типа, который нужно как-то объявлять и учитывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 2 часа назад, Plain сказал: Нет нужды делать такими все триггеры, но тогда это допресурс нового типа, который нужно как-то объявлять и учитывать. Так это не сработает в ПЛИС, у которых вся прелесть в однородной структуре. Получится, что все асинхронные фифошки будут жёстко прибиты к определенному месту/местам на кристалле и это крайне неудобно. В ASIC-пожалуйста. Наверное поэтому такое простое решение до сих пор и не нашло реального применения в триггерах ячеек CLB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 46 minutes ago, makc said: Так это не сработает в ПЛИС, у которых вся прелесть в однородной структуре. Получится, что все асинхронные фифошки будут жёстко прибиты к определенному месту/местам на кристалле и это крайне неудобно. Как раз такой метод и используется как минимум в нескольких последних семействах Xilinx ... Оптимизировано для CDC на высоких частотах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 1 час назад, RobFPGA сказал: Как раз такой метод и используется как минимум в нескольких последних семействах Xilinx ... Оптимизировано для CDC на высоких частотах Спасибо информацию, буду иметь в виду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 3 часа назад, makc сказал: вся прелесть в однородной структуре Но память раскидана по краям, и таких регистров можно было бы там же накидать, будь для них в языке свой тип, или хотя бы конструкция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 1 час назад, Plain сказал: Но память раскидана по краям, и таких регистров можно было бы там же накидать, будь для них в языке свой тип, или хотя бы конструкция. Есть ещё распределенная память и она весьма удобна для мелких фифошек. Поэтому "по краям" - это прекрасно, но для полного счастья недостаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 2 ноября, 2023 Опубликовано 2 ноября, 2023 · Жалоба 1 hour ago, Plain said: Но память раскидана по краям, и таких регистров можно было бы там же накидать, будь для них в языке свой тип, или хотя бы конструкция. О каком языке вы говорите? А конструкция она есть, и на Verilog и на VHDL. Но это все равно - классический 2-3 триггерный синхронизатор, регистры которого выделены в отдельный хард-блок за счет чего минимизированы задержки что положительно влияет на MTBF при высоких тактовых. Quote HARD_SYNC #( .INIT(1'b0), // Initial values, 1'b0, 1'b1 .IS_CLK_INVERTED(1'b0), // Programmable inversion on CLK input .LATENCY(2) // 2-3 ) HARD_SYNC_inst ( .DOUT(DOUT), // 1-bit output: Data .CLK(CLK), // 1-bit input: Clock .DIN(DIN) // 1-bit input: Data ); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться