реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> И снова про метастабильность, Почему 2 триггер "защищает" от метастабильности.
Flip-fl0p
сообщение Aug 18 2016, 08:52
Сообщение #1


В поисках себя...
****

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



Помогите разобраться с метастабильным состоянием. Я прочитал кучу статей, но так и не понял главного. Почему второй триггер позволяет уменьшить вероятность возникновения метастабильности ?
Допустим у нас нарушены параметры времени установки или удержания сигнала данных для триггера и он переходит в так называемое метастабильное состояние.
Далее до прихода второго синхросигнала у нас возможны 3 варианта развития событий.
1 вариант. У нас триггер так и остался в метастабильном состоянии и эта неопределенность на выходе передается на второй триггер. Что будет на выходе второго триггера зависит лишь от параметров его транзисторов. Триггер прочитает это состояние как 0, или как 1. Либо так-же перейдет в метастабильное состояние
2 вариант. Триггер побыл в метастабильном состоянии и до прихода второго синхроимпульса решил переключится в состояние 1. С приходом второго синхросигнала значение выхода первого триггера передалось на второй триггер. И все работает как положено.
3 вариант. Триггер решил переключитсья в состояние нуля. В этом случае с приходом второго синхроимпульса триггер передал ноль в следующий регистр. И этот ноль является ошибкой.
Вот читаю я статьи про метастабильность и никак не могу понять, что же делает такого особенного второй триггер, что на его выходе получается правильный сигнал ? Может я что-то не понимаю ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 18 2016, 09:53
Сообщение #2


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Flip-fl0p @ Aug 18 2016, 11:52) *


А здесь смотрели? Обратите внимание на ответы SM и Oldring
мета
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 11:28
Сообщение #3


В поисках себя...
****

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



Цитата(Flip-fl0p @ Aug 18 2016, 11:52) *
А здесь смотрели? Обратите внимание на ответы SM и Oldring

Читал. Внимательно и долго. Но на свой вопрос я ответ не нашел.
Как я понял основная задача второго триггера обеспечить время равное 1 периоду частоты для того чтобы первый триггер успел "разобраться" со своей метастабильностью, и к моменту начала второго периода синхросигнала он был в устойчивом состоянии. Но вот я не могу понять одного. Ведь триггер из метастабильного состояния может переключиться не только в единицу, так-же он может переключиться в ноль. По аналогии как везде рисуют мяч на горе. Он может как в одну сторону скатиться, так и в другую. И мы вторым триггером лишь даем время упасть мячу. Но никак на процесс падения не влияем. И даже поставив 2 триггер мы не можем быть уверенны в достоверности данных.
Или я что-то путаю ?

Сообщение отредактировал Flip-fl0p - Aug 18 2016, 11:28
Go to the top of the page
 
+Quote Post
Кнкн
сообщение Aug 18 2016, 11:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 646
Регистрация: 21-06-04
Пользователь №: 71



Цитата(Flip-fl0p @ Aug 18 2016, 14:28) *
Читал. Внимательно и долго. Но на свой вопрос я ответ не нашел.
Как я понял основная задача второго триггера обеспечить время равное 1 периоду частоты для того чтобы первый триггер успел "разобраться" со своей метастабильностью, и к моменту начала второго периода синхросигнала он был в устойчивом состоянии. Но вот я не могу понять одного. Ведь триггер из метастабильного состояния может переключиться не только в единицу, так-же он может переключиться в ноль. По аналогии как везде рисуют мяч на горе. Он может как в одну сторону скатиться, так и в другую. И мы вторым триггером лишь даем время упасть мячу. Но никак на процесс падения не влияем. И даже поставив 2 триггер мы не можем быть уверенны в достоверности данных.
Или я что-то путаю ?


Достигается только однозначность работы схем, зависящих от ресинхронизированного сигнала.
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Aug 18 2016, 11:57
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Данное схемное решение снижает вероятность нежелательного события. "Вероятность" - ключевое слово.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 11:59
Сообщение #6


В поисках себя...
****

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



Цитата(BackEnd @ Aug 18 2016, 14:57) *
Данное схемное решение снижает вероятность нежелательного события. "Вероятность" - ключевое слово.

То есть самое правильное решение - это задавать констрейны таким образом чтобы времена установки и удержания триггеров были в соответствии с рекомендациями производителя чипа ? Ну и периодически добавлять триггеры в "узких местах" ?
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Aug 18 2016, 12:01
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Именно. Чудес не бывает.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Aug 18 2016, 12:05
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Flip-fl0p @ Aug 18 2016, 15:52) *
1 вариант. У нас триггер так и остался в метастабильном состоянии и эта неопределенность на выходе передается на второй триггер. Что будет на выходе второго триггера зависит лишь от параметров его транзисторов. Триггер прочитает это состояние как 0, или как 1. Либо так-же перейдет в метастабильное состояние

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

Цитата(Flip-fl0p @ Aug 18 2016, 15:52) *
3 вариант. Триггер решил переключитсья в состояние нуля. В этом случае с приходом второго синхроимпульса триггер передал ноль в следующий регистр. И этот ноль является ошибкой.

Вы не верно понимаете задачи цепочек синхронизации - они не защищают от "ошибочного вычитывания" (*), они защищают от ошибочного состояния (между нулем и единицей).

(*) тут не совсем корректен термин "ошибочное вычитывание". Скажем так, в случае метастабильности первого триггера, значение просто считается с задержкой в такт
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 12:10
Сообщение #9


В поисках себя...
****

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



Цитата(Dima_G @ Aug 18 2016, 15:05) *
Не вариант. Триггер рано или поздно выпадет из метастабильного состояния. Если это время меньше периода тактовой - хватит двух триггеров в цепочке.
Если больше - ставят три.


Вы не верно понимаете задачи цепочек синхронизации - они не защищают от "ошибочного вычитывания" (*), они защищают от ошибочного состояния (между нулем и единицей).

(*) тут не совсем корректен термин "ошибочное вычитывание". Скажем так, в случае метастабильности первого триггера, значение просто считается с задержкой в такт

Не понял... Если триггер в метастабильном состоянии и если в это время считать с него данные то мы же считаем случайное значение....
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 18 2016, 12:15
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Flip-fl0p @ Aug 18 2016, 15:10) *
Не понял... Если триггер в метастабильном состоянии и если в это время считать с него данные то мы же считаем случайное значение....

Случайное, но конкретное. Мала вероятность, что состояние на входе второго триггера загонит его в метастабильное состояние. Здесь получается произведение малых вероятностей.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 12:25
Сообщение #11


В поисках себя...
****

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



Цитата(ViKo @ Aug 18 2016, 15:15) *
Случайное, но конкретное. Мала вероятность, что состояние на входе второго триггера загонит его в метастабильное состояние. Здесь получается произведение малых вероятностей.

Полностью согласен, что вероятность того, что второй триггер "свалиться" в метастабильное состояние - это очень и очень маленькая вероятность.
Но каким-же образом тогда нам поможет это знание ? Ведь после прихода второй частоты - мы считали значение. Но мы не знаем какое оно истине или ложное..... И хоть 10 триггеров поставить можно подряд. Если второй триггер словил чушь, то и все остальные будут принимать эту чушь, как эстафетную палочку.

Сообщение отредактировал Flip-fl0p - Aug 18 2016, 12:26
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Aug 18 2016, 12:42
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Flip-fl0p @ Aug 18 2016, 19:25) *
Если второй триггер словил чушь, то и все остальные будут принимать эту чушь, как эстафетную палочку.

Еще раз - синхронизаторы предназначены лишь для недопущения на вход схемы неопределенного значения.
Вот пример - заводите извне сигнал enable в схему и нарываемся на метастабильность (те внешний сигнал меняется рядом с тактовой частотой вашей схемы из 0 в 1).
И тут получается, что часть триггеров вашей FPGA решила, что enable == 1, другая, что enable == 0.
Логика работы схемы гарантированно разрушится!

В случае синхронизаторов, вы лишь ЧУТЬ ПОЗЖЕ (на такт) получите сигнал enable, если первый синзхронизатор ошибочно "свалится" в ноль.
Обычно это не страшно при корректном выборе соотношений внутренних и внешних частот.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 12:49
Сообщение #13


В поисках себя...
****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Aug 18 2016, 12:58
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Flip-fl0p @ Aug 18 2016, 19:49) *
Таким образом существует вероятность, что мы кнопку нажали, а схема не сбросилась ?

Если время нажатия кнопки примерно равно (или меньше) тактовой триггеров синхронизатора.
Почему я и написал ранее - "при корректном выборе частот". Сделайте тактовую в 10 раз выше, чем частота внешнего сигнала - и все будет отлично работать.

Для случая сравнимых частот применяются другие решения. Например, двухклоковое ФИФО.
Вообщем, читайте инфу по CDC - информации море.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 18 2016, 13:09
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Flip-fl0p @ Aug 18 2016, 15:25) *
Полностью согласен, что вероятность того, что второй триггер "свалиться" в метастабильное состояние - это очень и очень маленькая вероятность.
Но каким-же образом тогда нам поможет это знание ? Ведь после прихода второй частоты - мы считали значение. Но мы не знаем какое оно истине или ложное..... И хоть 10 триггеров поставить можно подряд. Если второй триггер словил чушь, то и все остальные будут принимать эту чушь, как эстафетную палочку.

На следующем такте получим 1, если не получили на текущем (а получили 0, хотя на входе сигнал изменяется из 0 в 1).
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016