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

Это рисунок 8, на который ссылается Мур. Думаю, часть темы стоит посвятить этой картинке.

 

Мур совсем недавно опубликовал схему от себя. В общем, журнальная схема Иосифа - правильная, схема Мур потенциально ошибочна.

 

Я сейчас смотрю в TimeQuest (пришло время), и прихожу к выводу, что по ПЛИС такты приходят на триггера совсем не одновременно.

 

Разумеется, но все тулзы об этом знают отлично, обеспечивая согласованность прихода к каждому триггеру данных и соответствующего клока без нарушения setup/hold в самых крайних условиях эксплуатации.

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


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

Про эту картинку речь идет? Пусть висит.

Если на входе Data будет импульс в 3 такта Clock1, на Output появится 2 импульса длительностью Clock2. И без всякой метастабильности.

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

Спасибо за науку! Для меня это новость. Серый уровень на выходе триггера возможен оказывается...

 

тогда схема ошибочна............ :wacko: А я поверил авторитету.

 

Мур совсем недавно опубликовал схему от себя. В общем, журнальная схема Иосифа - правильная, схема Мур потенциально ошибочна.

 

Это из-за дополнительного триггера на выходе?

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


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

Это из-за дополнительного триггера на выходе?

 

 

Из-за дополнительного триггера в середине, который вместе со следующим триггером образуют нормальный синхронизатор.

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


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

Из-за дополнительного триггера в середине, который вместе со следующим триггером образуют нормальный синхронизатор.

Я понял! Проблема в первом =переходном триггере=, который берёт на себя =все грехи= метастабильности. К моей схеме надо добавить тригерок. Правильно?

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


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

Я понял! Проблема в первом =переходном триггере=, который берёт на себя =все грехи= метастабильности. К моей схеме надо добавить тригерок. Правильно?

 

 

Примерно там. Можно сказать, что "берет грехи".

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


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

Серый уровень на выходе триггера возможен оказывается...

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

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


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

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

ОК! Я считал, что проблема для триггера на входе, а не на выходе. В моём представлении триггер не может быть в сером уровне по определению.

 

Тогда в =моём случае= действительно возможна ситуация отсутствия или удвоенного импульса на выходе. Всё будет зависеть от трактовки серости либо элементом искл-или либо выходным триггером. А дополнительный триггер по Oldring-у, если так случится при асинхронщине, может пребывать в неопределённом состоянии серости(а не чёрно-белом!) до следующего такта.

Вот почему я его =за ненабностью= удалил!....(по сравнению с рис.8)-считал лишним. А он по грехам работает!

Всем огромное спасибо! Усвоил качественно! :tort:

Изменено пользователем Мур

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


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

А дополнительный триггер по Oldring-у, если так случится при асинхронщине, может пребывать в неопределённом состоянии серости(а не чёрно-белом!) до следующего такта.

 

Нет, не до следующего.

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

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


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

Нет, не до следующего.

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

Интересно! И что, долбёжка по входу, при серости на выходе, не решает неопределённости?

...Базовый синхронизатор(в синем цвете)- это пара триггеров. По первому мы определились! А второй, получается, нужен для вероятностного вываливания первого из неопределённости?

 

Призрак триггера Шмидта стоит передо мной! :rolleyes:

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


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

Интересно! И что, долбёжка по входу, при серости на выходе, не решает неопределённости?

...Базовый синхронизатор(в синем цвете)- это пара триггеров. По первому мы определились! А второй, получается, нужен для вероятностного вываливания первого из неопределённости?

 

Призрак триггера Шмидта стоит передо мной! :rolleyes:

 

Нет, долбежка по входу не поможет - это же триггеры, они переключаются по фронту клока.

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

Триггер Шмидта тут ничем помочь не может. Метастабильность принципиально неизбежна при перехода асинхронного сигнала в синхронный домен.

 

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


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

Нет, долбежка по входу не поможет - это же триггеры, они переключаются по фронту клока.

Я и имел ввиду фронт клока! Понятие =неопределённо долго= я утрировал на события нескольких фронтов клока...

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

Триггер Шмидта тут ничем помочь не может. Метастабильность принципиально неизбежна при перехода асинхронного сигнала в синхронный домен.

А гистерезис? Уж он-то должен решать неопределённость выхода. Положительная обратная связь всё-таки!...

 

А второй, получается, нужен для вероятностного вываливания первого из неопределённости?

Можно считать второй триггер триггером Шмидта? Образно!

1.За ним последнее слово в оценке(в наихудшем истечении событий) состояния первого триггера.

 

2.Второй вариант- к следующему фронту клока первый триггер уже будет в норме гарантировано. И это повторит второй! Это черезвычайно важно для одноклоковых сигналов разрешения в синхронных проектах. Там всё строго и вариации длительности недопустимы

Изменено пользователем Мур

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


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

А гистерезис? Уж он-то должен решать неопределённость выхода. Положительная обратная связь всё-таки!...

 

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

 

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


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

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

Прошу не раздражаться на мои импровизации. Я это делаю умышленно, чтобы была полная ясность не только для меня, сомневающегося...

 

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

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


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

Долбежка тактами поможет. Ведь защелкиваться будет уже новое состояние входов, которое, будем надеяться, в этот момент уже стабильное.

Гистерезис не поможет, потому что в этом случае просто появляется два порога восприятия сигнала как 0 или как 1 - при переходе из 0 в 1, и наоборот. Сами пороги технологически остаются примерно теми же.

Так как метастабильное состояние выхода триггера не обязательно совпадает с порогом восприятия 0 или 1 для следующего триггера, то следующий триггер зашелкнет уже нечто, похожее на 0 или 1. Но и такой сигнал должен увеличить время срабатывания триггера. Вероятность, что напряжение будет вблизи порога, мала. Следующий триггер уменьшает эту вероятнось почти до нуля.

 

P.S. нужно писать "триггер Шмитта"

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


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

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;

Тогда первый текст должен быть таким!

 

P.S. нужно писать "триггер Шмитта"

 

Призрак лейтенанта Штидта парил надо мной!...

 

Посыпаю голову пеплом! :smile3009:

Изменено пользователем Мур

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


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

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

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

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

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

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

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

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

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

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