|
И снова про метастабильность, Почему 2 триггер "защищает" от метастабильности. |
|
|
|
 |
Ответов
|
Aug 18 2016, 12:05
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(Flip-fl0p @ Aug 18 2016, 15:52)  1 вариант. У нас триггер так и остался в метастабильном состоянии и эта неопределенность на выходе передается на второй триггер. Что будет на выходе второго триггера зависит лишь от параметров его транзисторов. Триггер прочитает это состояние как 0, или как 1. Либо так-же перейдет в метастабильное состояние Не вариант. Триггер рано или поздно выпадет из метастабильного состояния. Если это время меньше периода тактовой - хватит двух триггеров в цепочке. Если больше - ставят три. Цитата(Flip-fl0p @ Aug 18 2016, 15:52)  3 вариант. Триггер решил переключитсья в состояние нуля. В этом случае с приходом второго синхроимпульса триггер передал ноль в следующий регистр. И этот ноль является ошибкой. Вы не верно понимаете задачи цепочек синхронизации - они не защищают от "ошибочного вычитывания" (*), они защищают от ошибочного состояния (между нулем и единицей). (*) тут не совсем корректен термин "ошибочное вычитывание". Скажем так, в случае метастабильности первого триггера, значение просто считается с задержкой в такт
|
|
|
|
|
Aug 18 2016, 12:42
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(Flip-fl0p @ Aug 18 2016, 19:25)  Если второй триггер словил чушь, то и все остальные будут принимать эту чушь, как эстафетную палочку. Еще раз - синхронизаторы предназначены лишь для недопущения на вход схемы неопределенного значения. Вот пример - заводите извне сигнал enable в схему и нарываемся на метастабильность (те внешний сигнал меняется рядом с тактовой частотой вашей схемы из 0 в 1). И тут получается, что часть триггеров вашей FPGA решила, что enable == 1, другая, что enable == 0. Логика работы схемы гарантированно разрушится! В случае синхронизаторов, вы лишь ЧУТЬ ПОЗЖЕ (на такт) получите сигнал enable, если первый синзхронизатор ошибочно "свалится" в ноль. Обычно это не страшно при корректном выборе соотношений внутренних и внешних частот.
|
|
|
|
|
Aug 18 2016, 12:49
|

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

|
Цитата(Dima_G @ Aug 18 2016, 15:42)  Еще раз - синхронизаторы предназначены лишь для недопущения на вход схемы неопределенного значения. Вот пример - заводите извне сигнал enable в схему и нарываемся на метастабильность (те внешний сигнал меняется рядом с тактовой частотой вашей схемы из 0 в 1). И тут получается, что часть триггеров вашей FPGA решила, что enable == 1, другая, что enable == 0. Логика работы схемы гарантированно разрушится!
В случае синхронизаторов, вы лишь ЧУТЬ ПОЗЖЕ (на такт) получите сигнал enable, если первый синзхронизатор ошибочно "свалится" в ноль. Обычно это не страшно при корректном выборе соотношений внутренних и внешних частот. Кажется понял. Например мы где-то из вне жамкаем кнопку, которая всю схему сбрасывает. При нажатии кнопки у нас триггер вошел в метастабильное состояние. Второй триггер считал с него данные и выдал гарантированно ноль или единицу. Таким образом существует вероятность, что мы кнопку нажали, а схема не сбросилась ?
Сообщение отредактировал Flip-fl0p - Aug 18 2016, 12:50
|
|
|
|
|
Aug 18 2016, 12:58
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(Flip-fl0p @ Aug 18 2016, 19:49)  Таким образом существует вероятность, что мы кнопку нажали, а схема не сбросилась ? Если время нажатия кнопки примерно равно (или меньше) тактовой триггеров синхронизатора. Почему я и написал ранее - "при корректном выборе частот". Сделайте тактовую в 10 раз выше, чем частота внешнего сигнала - и все будет отлично работать. Для случая сравнимых частот применяются другие решения. Например, двухклоковое ФИФО. Вообщем, читайте инфу по CDC - информации море.
|
|
|
|
Сообщений в этой теме
Flip-fl0p И снова про метастабильность Aug 18 2016, 08:52 _Anatoliy Цитата(Flip-fl0p @ Aug 18 2016, 11:5... Aug 18 2016, 09:53 Flip-fl0p Цитата(Flip-fl0p @ Aug 18 2016, 11:5... Aug 18 2016, 11:28  Кнкн Цитата(Flip-fl0p @ Aug 18 2016, 14:2... Aug 18 2016, 11:49  BackEnd Данное схемное решение снижает вероятность нежелат... Aug 18 2016, 11:57   Flip-fl0p Цитата(BackEnd @ Aug 18 2016, 14:57) Данн... Aug 18 2016, 11:59    BackEnd Именно. Чудес не бывает. Aug 18 2016, 12:01    ViKo Цитата(Flip-fl0p @ Aug 18 2016, 15:2... Aug 18 2016, 13:09 yes что-то не так в этой теме
там где можно применит... Aug 18 2016, 13:14 Flip-fl0p Цитата(yes @ Aug 18 2016, 16:14) что-то н... Aug 18 2016, 13:32  iosifk Цитата(Flip-fl0p @ Aug 18 2016, 16:3... Aug 18 2016, 13:49   Flip-fl0p Цитата(iosifk @ Aug 18 2016, 16:49) Лучше... Aug 18 2016, 14:03    _Anatoliy Цитата(Flip-fl0p @ Aug 18 2016, 17:0... Aug 19 2016, 07:49     Maverick от Xilinx Aug 19 2016, 08:07    iosifk Цитата(Flip-fl0p @ Aug 18 2016, 17:0... Aug 19 2016, 07:59 ViKo Там, по-моему, просто находится фронт или срез сиг... Aug 18 2016, 13:55 Flip-fl0p Сам приёмопердатчик UART достаточно простой. Но во... Aug 19 2016, 04:50 Flip-fl0p Спасибо за готовые решения. Поковыряю их на выходн... Aug 19 2016, 08:28 iosifk Цитата(Flip-fl0p @ Aug 19 2016, 11:2... Aug 19 2016, 08:39 Maverick Цитата(Flip-fl0p @ Aug 19 2016, 11:2... Aug 19 2016, 08:57  Flip-fl0p Цитата(Maverick @ Aug 19 2016, 11:57) вро... Aug 19 2016, 09:03 justontime Наверное, спрошу глупость, но, тем не менее, метас... Nov 16 2016, 20:42 iosifk Цитата(justontime @ Nov 16 2016, 23:42) А... Nov 16 2016, 20:49 Shivers Цитата(justontime @ Nov 16 2016, 23:42) Н... Nov 25 2016, 06:20 justontime С гонкой понятно, меня интересовало, может ли не-т... Nov 16 2016, 20:56 iosifk Цитата(justontime @ Nov 16 2016, 23:56) С... Nov 16 2016, 21:05 dvladim Цитата(justontime @ Nov 16 2016, 23:42) Н... Nov 17 2016, 20:10 rudy_b В логическом элементе подобное тоже может быть есл... Nov 18 2016, 05:03 Arranje Хочу добавить свои 5 копеек по теме вопроса.
Топи... Nov 24 2016, 23:59 Flip-fl0p Цитата(Arranje @ Nov 25 2016, 02:59) Хочу... Nov 25 2016, 04:45  Arranje Цитата(Flip-fl0p @ Nov 25 2016, 07:4... Nov 25 2016, 08:58   Shivers Цитата(Arranje @ Nov 25 2016, 11:58) У от... Nov 27 2016, 15:31    ViKo Цитата(Shivers @ Nov 27 2016, 18:31) Я мо... Nov 27 2016, 17:42     Shivers Цитата(ViKo @ Nov 27 2016, 20:42) Не выда... Nov 27 2016, 18:58 ViKo Имел в виду логические выходы целиком. Не обязател... Nov 27 2016, 19:09 Shivers Компрехенсив гайд по метастабильности: https://ha... Dec 13 2016, 15:57 ViKo Цитата(Shivers @ Dec 13 2016, 18:57) Комп... Dec 14 2016, 05:33  Shivers Цитата(ViKo @ Dec 14 2016, 08:33) Автор с... Dec 14 2016, 06:30   ViKo Цитата(Shivers @ Dec 14 2016, 09:30) p.s.... Dec 14 2016, 07:27 sonycman Так это что получается, полностью от метастабильно... Dec 13 2016, 19:18 dima32rus Цитата(sonycman @ Dec 13 2016, 22:18) Так... Dec 13 2016, 19:34 likeasm Всех с наступившим! Родился у меня вопрос про ... Jan 5 2017, 16:55 des333 Цитата(likeasm @ Jan 5 2017, 19:55) Всех ... Jan 5 2017, 17:17 Shivers Вероятность сбоя на выходе синхронизатора мультипл... Jan 5 2017, 17:44 rudy_b Есть достаточно надежный способ полностью избежать... Jan 6 2017, 09:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|