|
|
  |
Синхронизатор, Две тактовые, единичные импульсы |
|
|
|
Apr 11 2011, 13:38
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(ViKo @ Apr 11 2011, 17:27)  Это рисунок 8, на который ссылается Мур. Думаю, часть темы стоит посвятить этой картинке. Мур совсем недавно опубликовал схему от себя. В общем, журнальная схема Иосифа - правильная, схема Мур потенциально ошибочна. Цитата(ViKo @ Apr 11 2011, 17:27)  Я сейчас смотрю в TimeQuest (пришло время), и прихожу к выводу, что по ПЛИС такты приходят на триггера совсем не одновременно. Разумеется, но все тулзы об этом знают отлично, обеспечивая согласованность прихода к каждому триггеру данных и соответствующего клока без нарушения setup/hold в самых крайних условиях эксплуатации.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 11 2011, 16:22
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(ViKo @ Apr 11 2011, 16:28)  Про эту картинку речь идет? Пусть висит. Если на входе Data будет импульс в 3 такта Clock1, на Output появится 2 импульса длительностью Clock2. И без всякой метастабильности. В метастабильном состоянии триггер может висеть "между небом и землей" сколь угодно долго, в идеальном случае. Спасибо за науку! Для меня это новость. Серый уровень на выходе триггера возможен оказывается... тогда схема ошибочна............  А я поверил авторитету. Цитата(Oldring @ Apr 11 2011, 17:38)  Мур совсем недавно опубликовал схему от себя. В общем, журнальная схема Иосифа - правильная, схема Мур потенциально ошибочна. Это из-за дополнительного триггера на выходе?
|
|
|
|
|
Apr 12 2011, 05:47
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(ViKo @ Apr 11 2011, 22:30)  Да, возможен. И именно в триггере. В обычной логике такое невозможно. В момент фронта тактового сигнала, если изменяется сигнал на входе данных, триггер "не знает", что ему защелкивать. И думает до-о-о-о-о-о-лго... если сигнал на входе попадает точно на порог переключения. Если не точно, то думает недо-о-олго... ОК! Я считал, что проблема для триггера на входе, а не на выходе. В моём представлении триггер не может быть в сером уровне по определению. Тогда в =моём случае= действительно возможна ситуация отсутствия или удвоенного импульса на выходе. Всё будет зависеть от трактовки серости либо элементом искл-или либо выходным триггером. А дополнительный триггер по Oldring-у, если так случится при асинхронщине, может пребывать в неопределённом состоянии серости(а не чёрно-белом!) до следующего такта. Вот почему я его =за ненабностью= удалил!....(по сравнению с рис.8)-считал лишним. А он по грехам работает! Всем огромное спасибо! Усвоил качественно!
Сообщение отредактировал Мур - Apr 12 2011, 05:55
|
|
|
|
|
Apr 12 2011, 05:56
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Мур @ Apr 12 2011, 09:47)  А дополнительный триггер по Oldring-у, если так случится при асинхронщине, может пребывать в неопределённом состоянии серости(а не чёрно-белом!) до следующего такта. Нет, не до следующего. Выход из метастабильного состояния - это вероятностный процесс. Вероятность остаться в метастабильном состоянии понижается экспоненциально с увеличением премени. Поэтому достаточно несколько десятков постоянных времени выхода из метастабильности, чтобы эта вероятность стала практически нулевой. Но тонкость в том, что если после метастабильного триггера подключен на небольшом расстоянии следующий триггер, то разница между периодом клока и временем распространения сигнала превышает эти несколько постоянных времени, по крайней мере, для триггеров в FPGA. А если там еще несколько слоёв логики, то эти разница может оказаться близка а нулю, и хоть и первый триггер вывалится из метастабильного состояния к следующему фронту клока, сигнал на входах следующих триггеров, после этих слоёв логики, еще останется нелогическим или, скорее, нестабильным, с заметно отличной от нуля вероятностью.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 12 2011, 06:12
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(Oldring @ Apr 12 2011, 09:56)  Нет, не до следующего. Выход из метастабильного состояния - это вероятностный процесс. Вероятность остаться в метастабильном состоянии понижается экспоненциально с увеличением премени. Поэтому достаточно несколько десятков постоянных времени выхода из метастабильности, чтобы эта вероятность стала практически нулевой. Но тонкость в том, что если после метастабильного триггера подключен на небольшом расстоянии следующий триггер, то разница между периодом клока и временем распространения сигнала превышает эти несколько постоянных времени, по крайней мере, для триггеров в FPGA. А если там еще несколько слоёв логики, то эти разница может оказаться близка а нулю, и хоть и первый триггер вывалится из метастабильного состояния к следующему фронту клока, сигнал на входах следующих триггеров, после этих слоёв логики, еще останется нелогическим или, скорее, нестабильным, с заметно отличной от нуля вероятностью. Интересно! И что, долбёжка по входу, при серости на выходе, не решает неопределённости? ...Базовый синхронизатор(в синем цвете)- это пара триггеров. По первому мы определились! А второй, получается, нужен для вероятностного вываливания первого из неопределённости? Призрак триггера Шмидта стоит передо мной!
|
|
|
|
|
Apr 12 2011, 06:27
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Мур @ Apr 12 2011, 10:12)  Интересно! И что, долбёжка по входу, при серости на выходе, не решает неопределённости? ...Базовый синхронизатор(в синем цвете)- это пара триггеров. По первому мы определились! А второй, получается, нужен для вероятностного вываливания первого из неопределённости? Призрак триггера Шмидта стоит передо мной!  Нет, долбежка по входу не поможет - это же триггеры, они переключаются по фронту клока. Второй нужен только для того, чтобы оттянуть логику с выхода первого, дав ему времени на размышления о смысле его бытия. Поэтому, кстати, без отключения ретайминга через него, он бесполезен. Триггер Шмидта тут ничем помочь не может. Метастабильность принципиально неизбежна при перехода асинхронного сигнала в синхронный домен.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 12 2011, 06:59
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(Oldring @ Apr 12 2011, 10:27)  Нет, долбежка по входу не поможет - это же триггеры, они переключаются по фронту клока. Я и имел ввиду фронт клока! Понятие =неопределённо долго= я утрировал на события нескольких фронтов клока... Цитата(Oldring @ Apr 12 2011, 10:27)  Второй нужен только для того, чтобы оттянуть логику с выхода первого, дав ему времени на размышления о смысле его бытия. Поэтому, кстати, без отключения ретайминга через него, он бесполезен. Триггер Шмидта тут ничем помочь не может. Метастабильность принципиально неизбежна при перехода асинхронного сигнала в синхронный домен. А гистерезис? Уж он-то должен решать неопределённость выхода. Положительная обратная связь всё-таки!... Цитата(Мур @ Apr 12 2011, 10:12)  А второй, получается, нужен для вероятностного вываливания первого из неопределённости? Можно считать второй триггер триггером Шмидта? Образно! 1.За ним последнее слово в оценке(в наихудшем истечении событий) состояния первого триггера. 2.Второй вариант- к следующему фронту клока первый триггер уже будет в норме гарантировано. И это повторит второй! Это черезвычайно важно для одноклоковых сигналов разрешения в синхронных проектах. Там всё строго и вариации длительности недопустимы
Сообщение отредактировал Мур - Apr 12 2011, 07:20
|
|
|
|
|
Apr 12 2011, 07:35
|

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

|
Долбежка тактами поможет. Ведь защелкиваться будет уже новое состояние входов, которое, будем надеяться, в этот момент уже стабильное. Гистерезис не поможет, потому что в этом случае просто появляется два порога восприятия сигнала как 0 или как 1 - при переходе из 0 в 1, и наоборот. Сами пороги технологически остаются примерно теми же. Так как метастабильное состояние выхода триггера не обязательно совпадает с порогом восприятия 0 или 1 для следующего триггера, то следующий триггер зашелкнет уже нечто, похожее на 0 или 1. Но и такой сигнал должен увеличить время срабатывания триггера. Вероятность, что напряжение будет вблизи порога, мала. Следующий триггер уменьшает эту вероятнось почти до нуля.
P.S. нужно писать "триггер Шмитта"
|
|
|
|
|
Apr 12 2011, 07:44
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(Мур @ Apr 7 2011, 16:33)  CODE library IEEE; use IEEE.STD_LOGIC_1164.all; entity syn is port( clk : in STD_LOGIC; in_level : in STD_LOGIC; reset : in STD_LOGIC; imp : out STD_LOGIC ); end syn; architecture syn_body of syn is signal jjj : STD_LOGIC; signal qqq : STD_LOGIC; signal ddd : STD_LOGIC; begin tg: process (clk) begin if clk'event and clk = '1' then if reset='1' then jjj <= '0'; qqq <= '0'; ddd <= '0'; else jjj <= ddd; qqq <= jjj; ddd <= in_level; end if; end if; end process; imp <= jjj xor qqq; end syn_body;
Тогда первый текст должен быть таким! Цитата(ViKo @ Apr 12 2011, 10:35)  P.S. нужно писать "триггер Шмитта" Призрак лейтенанта Штидта парил надо мной!... Посыпаю голову пеплом!
Сообщение отредактировал Мур - Apr 12 2011, 07:53
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|