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

 
 
> И снова про метастабильность, Почему 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
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 51)
_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
yes
сообщение Aug 18 2016, 13:14
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



что-то не так в этой теме sm.gif

там где можно применить констрейны, там никакой метастабильности не возникает (не должно в результате следования процессу разработки)

возможное место метастабильности - асинхронные сигналы, то есть такие сигналы момент изменения которого не известен на этапе проектирования

там ставится синхронизатор - два или больше последовательных триггера

почему это помогает - существует время выхода триггера из метастабильности, как правило в современных ПЛИС и АЗИКах оно очень короткое (и тема метастабильности и применения больше чем 2х последовательных триггеров не имеет сейчас практического смысла) и к моменту следующего тактового сигнала и защелкивания следующим триггером этот выход имеет определенное значение
а вот если бы за первым триггером была комбинаторная логика, а не триггер, то эта задержка на выход из метастабильности добавилась бы к пути и в следующих стадиях защелкивалась бы ошибка (хотя формально констрейн на эту логику, input_delay (upd : вернее clock, так как между триггерами дизайна) был бы удовлетворен синтезом)

также окно входного сигнала триггера, которое защелкнется метастабильно гораздо уже, чем значение выхода в метастабильном состоянии - это применялось, когда строили цепочки из более чем 2х триггеров
обычно асинхронный сигнал в виде импульса не ловят, это фронт, поэтому не важно, как разрешится метастабильность в 0 или 1 в этой цепочке - это просто приводит к задержке на 1 такт такта получателя, что приемлемо для асинхронного приемника

-----------

на пальцах как-то так - если порыться в книжках или в сети, то можно найти и формулы
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 13:32
Сообщение #17


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

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



Цитата(yes @ Aug 18 2016, 16:14) *
что-то не так в этой теме sm.gif

там где можно применить констрейны, там никакой метастабильности не возникает (не должно в результате следования процессу разработки)

возможное место метастабильности - асинхронные сигналы, то есть такие сигналы момент изменения которого не известен на этапе проектирования

там ставится синхронизатор - два или больше последовательных триггера

почему это помогает - существует время выхода триггера из метастабильности, как правило в современных ПЛИС и АЗИКах оно очень короткое (и тема метастабильности и применения больше чем 2х последовательных триггеров не имеет сейчас практического смысла) и к моменту следующего тактового сигнала и защелкивания следующим триггером этот выход имеет определенное значение
а вот если бы за первым триггером была комбинаторная логика, а не триггер, то эта задержка на выход из метастабильности добавилась бы к пути и в следующих стадиях защелкивалась бы ошибка (хотя формально констрейн на эту логику, input_delay (upd : вернее clock, так как между триггерами дизайна) был бы удовлетворен синтезом)

также окно входного сигнала триггера, которое защелкнется метастабильно гораздо уже, чем значение выхода в метастабильном состоянии - это применялось, когда строили цепочки из более чем 2х триггеров
обычно асинхронный сигнал в виде импульса не ловят, это фронт, поэтому не важно, как разрешится метастабильность в 0 или 1 в этой цепочке - это просто приводит к задержке на 1 такт такта получателя, что приемлемо для асинхронного приемника

-----------


на пальцах как-то так - если порыться в книжках или в сети, то можно найти и формулы


Я пока только учусь, и вопросы у меня глупые smile3046.gif
К чему я вообще эту тему создал. Я на просторах интернета как-то обнаружил тему про метастсбильность триггеров, прочитал, ничего не понял, но оставил пометку "РАЗОБРАТЬСЯ".
Поигравшись с семисегментными индикаторами, реализовав на макетной плате всякие динамические индикации, часы, и прочую лабуду решил перейти к более серьезным вещам. Решил разобраться с протоколом UARТ, и всё что с ним связано. Сам протокол простой. А вот его регистровая модель - тихий ужас. Скачал на сайте проекта OpenCore готовую реализацию микросхемы UART приемопередатчика принялся его разбирать по винтикам. И обнаружил там такую штуку
Код
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY GH_EDGE_DET IS
    PORT
    (
        CLK : IN  STD_LOGIC;
        RST : IN  STD_LOGIC;
        D   : IN  STD_LOGIC;
        RE  : OUT STD_LOGIC; -- RISING EDGE (NEED SYNC SOURCE AT D)
        FE  : OUT STD_LOGIC; -- FALLING EDGE (NEED SYNC SOURCE AT D)
        SRE : OUT STD_LOGIC; -- SYNC'D RISING EDGE
        SFE : OUT STD_LOGIC  -- SYNC'D FALLING EDGE
    );
END GH_EDGE_DET;


ARCHITECTURE A OF GH_EDGE_DET IS
    SIGNAL Q0 : STD_LOGIC;
    SIGNAL Q1 : STD_LOGIC;  
BEGIN    
    PROCESS
    (
        CLK,
        RST
    )
    BEGIN
        IF (RST = '1') THEN        
            Q0 <= '0';                  
            Q1 <= '0';
        ELSIF (RISING_EDGE(CLK)) THEN
            Q0 <= D;                
            Q1 <= Q0;            
        END IF;
    END PROCESS;
RE  <= D AND (NOT Q0);              
FE  <= (NOT D) AND Q0;
SRE <= Q0 AND (NOT Q1);
SFE <= (NOT Q0) AND Q1;
END A;


И очень часто там применяется выражение типа DATA <= SRE OR SFE

Код
DATA_SEND_READY : GH_EDGE_DET
    PORT MAP
    (
        CLK => CLK,
        RST => RST,
        D   => DSRN,
        SRE => DSRN_RE,
        SFE => DSRN_FE
    );    
IDDSR <= DSRN_RE OR DSRN_FE;


Я заинтересовался этим, поскольку с "наскока" понять смысл данной операции невозможно.
Поковыряв этот модуль (GH_EDGE_DET) я обнаружил что его RTL описание, отображенное в виде схемы, очень похоже на то, что и в статьях про метастабильность триггера: так-же 2 D-триггера, идущих подряд. И решил разобраться в этой теме. Поскольку мне показалось, что автор приемопередатчика как раз и написал этот модуль, чтобы избавляться от метастабильности.
Я правильно понял задумку ?

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


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Flip-fl0p @ Aug 18 2016, 16:32) *
Я пока только учусь, и вопросы у меня глупые smile3046.gif
К чему я вообще эту тему создал. Я на просторах интернета как-то обнаружил тему про метастсбильность триггеров, прочитал, ничего не понял, но оставил пометку "РАЗОБРАТЬСЯ".


Я заинтересовался этим, поскольку с "наскока" понять смысл данной операции невозможно.
Поковыряв этот модуль (GH_EDGE_DET) я обнаружил что его RTL описание, отображенное в виде схемы, очень похоже на то, что и в статьях про метастабильность триггера: так-же 2 D-триггера, идущих подряд. И решил разобраться в этой теме. Поскольку мне показалось, что автор приемопередатчика как раз и написал этот модуль, чтобы избавляться от метастабильности.
Я правильно понял задумку ?


Лучше бы Вы взяли примеры Ксайлинкса, которые ставятся вместе с ИСЕ. На самом деле, если говорить о приемной части UARТ, то там надо данные и сброс привести к системной частоте проекта. А само ядро UARТ делается либо на FSM, либо берутся 2 сдвиговых регистра по 11 бит. В одном принимаются биты, другой заполняется 1 и когда 1 появится в крайнем разряде, то значит все биты приняты... И никакие фокусы типа:
RE <= D AND (NOT Q0);
FE <= (NOT D) AND Q0;
SRE <= Q0 AND (NOT Q1);
SFE <= (NOT Q0) AND Q1;
не применяйте вообще никогда...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 18 2016, 13:55
Сообщение #19


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

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



Там, по-моему, просто находится фронт или срез сигнала. Был 1, стал 0 - ага, срез...
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 18 2016, 14:03
Сообщение #20


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

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



Цитата(iosifk @ Aug 18 2016, 16:49) *
Лучше бы Вы взяли примеры Ксайлинкса, которые ставятся вместе с ИСЕ. На самом деле, если говорить о приемной части UARТ, то там надо данные и сброс привести к системной частоте проекта. А само ядро UARТ делается либо на FSM, либо берутся 2 сдвиговых регистра по 11 бит. В одном принимаются биты, другой заполняется 1 и когда 1 появится в крайнем разряде, то значит все биты приняты... И никакие фокусы типа:
RE <= D AND (NOT Q0);
FE <= (NOT D) AND Q0;
SRE <= Q0 AND (NOT Q1);
SFE <= (NOT Q0) AND Q1;
не применяйте вообще никогда...

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

Цитата(ViKo @ Aug 18 2016, 16:55) *
Там, по-моему, просто находится фронт или срез сигнала. Был 1, стал 0 - ага, срез...

Да не как-то он хитрее работает.
Вот времянки:
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 19 2016, 04:50
Сообщение #21


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

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



Сам приёмопердатчик UART достаточно простой. Но вот его регистровая модель достаточно сложная https://www.lammertbies.nl/comm/info/serial-uart.html
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 19 2016, 07:49
Сообщение #22


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

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



Цитата(Flip-fl0p @ Aug 18 2016, 17:03) *
Увы готовых решений акромя этого я не нашел.

Вот вам ещё для анализа решение от Альтеры. rolleyes.gif
Прикрепленные файлы
Прикрепленный файл  nios2s_uart_0.v ( 33.99 килобайт ) Кол-во скачиваний: 46
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 19 2016, 07:59
Сообщение #23


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Flip-fl0p @ Aug 18 2016, 17:03) *
А что там некрасиво ?


http://surf-vhdl.com/how-to-design-a-good-edge-detector/
Но я бы поставил простой автомат...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 19 2016, 08:07
Сообщение #24


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



от Xilinx

Прикрепленные файлы
Прикрепленный файл  UART_Xilinx.rar ( 33.33 килобайт ) Кол-во скачиваний: 23
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 19 2016, 08:28
Сообщение #25


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

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



Спасибо за готовые решения. Поковыряю их на выходных.
Вот только мне бы с регистровой моделью. Там -же как минимум должно быть 12 регистров куда запиываются все настройки прерываний, частота передачи, количество бит, и пр. Во всех вариантах этого нет. Там жестко заданы все эти вещи, без возможности их менять. А хотелось бы полноценный UART реализовать. Т.е по сути сделать копию микросхемы 16С550.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 19 2016, 08:39
Сообщение #26


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Flip-fl0p @ Aug 19 2016, 11:28) *
Спасибо за готовые решения. Поковыряю их на выходных.
Вот только мне бы с регистровой моделью. Там -же как минимум должно быть 12 регистров куда запиываются все настройки прерываний, частота передачи, количество бит, и пр. Во всех вариантах этого нет. Там жестко заданы все эти вещи, без возможности их менять. А хотелось бы полноценный UART реализовать. Т.е по сути сделать копию микросхемы 16С550.

Смотрите на opencores.org, там этого добра полно. Только в жизни практически никогда нет смысла в изменении режимов работы "на ходу"... Только бесполезный перевод ресурса...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 19 2016, 08:57
Сообщение #27


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Flip-fl0p @ Aug 19 2016, 11:28) *
Спасибо за готовые решения. Поковыряю их на выходных.
Вот только мне бы с регистровой моделью. Там -же как минимум должно быть 12 регистров куда запиываются все настройки прерываний, частота передачи, количество бит, и пр. Во всех вариантах этого нет. Там жестко заданы все эти вещи, без возможности их менять. А хотелось бы полноценный UART реализовать. Т.е по сути сделать копию микросхемы 16С550.

вроде то что Вам надо
Прикрепленные файлы
Прикрепленный файл  6850_Altera.zip ( 272.54 килобайт ) Кол-во скачиваний: 22
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Aug 19 2016, 09:03
Сообщение #28


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

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



Цитата(Maverick @ Aug 19 2016, 11:57) *
вроде то что Вам надо

Спасибо. На выходных если буду трезвым начну разбирать до винтика.... smile3046.gif
Go to the top of the page
 
+Quote Post
justontime
сообщение Nov 16 2016, 20:42
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Наверное, спрошу глупость, но, тем не менее, метастабильность может возникнуть только в триггере ?

А если, условно говоря, на один из входов логического "И" придет единица практически в тот же момент, когда со второго входа она исчезнет, не может получиться, что этот элемент перейдет в метастабильное состояние ?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 16 2016, 20:49
Сообщение #30


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(justontime @ Nov 16 2016, 23:42) *
А если, условно говоря, на один из входов логического "И" придет единица практически в тот же момент, когда со второго входа она исчезнет, не может получиться, что этот элемент перейдет в метастабильное состояние ?

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
justontime
сообщение Nov 16 2016, 20:56
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



С гонкой понятно, меня интересовало, может ли не-триггер зависнуть в непонятном состоянии ?

Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 16 2016, 21:05
Сообщение #32


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(justontime @ Nov 16 2016, 23:56) *
С гонкой понятно, меня интересовало, может ли не-триггер зависнуть в непонятном состоянии ?

"не-триггер" после дребезга на фронтах всегда перейдет в устойчивое состояние, определяемое входными сигналами... С чего это он должен "зависнуть"? Он же не имеет внутри себя положительной обратной связи...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
dvladim
сообщение Nov 17 2016, 20:10
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(justontime @ Nov 16 2016, 23:42) *
Наверное, спрошу глупость, но, тем не менее, метастабильность может возникнуть только в триггере ?

Метастабильность может возникнуть в элементе, который хранит состояние (т.е. с положительной обратной связью). У логического И обратной связи нет.
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Nov 18 2016, 05:03
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



В логическом элементе подобное тоже может быть если сигнал вблизи порога срабатывания. А если от с триггером Шмидта, то вот вам и положительная обратная связь.
Go to the top of the page
 
+Quote Post
Arranje
сообщение Nov 24 2016, 23:59
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-02-09
Пользователь №: 44 455



Хочу добавить свои 5 копеек по теме вопроса.

Топикстартер спрашивал почему 2-й триггер "защищает" от метастабильности. Я хочу пояснить суть слова "защищает".
Как вы знаете, есть 2 стабильных состояния 0 и 1, но из-за некорректных таймингов триггер может попадать в метастабильное состояние "0.5". Я назвал его "0.5" потому что с точки зрения напряжения это "среднее" значение между напряжениями 0 и 1. При напряжении "0.5" все транзисторы, на которое это напряжение поступает, будут полуоткрыты, что повлечёт за собой жуткое потребление тока и сильный нагрев микросхемы (микросхема гипотетически может повредиться, если комбинационная логика (а значит кол-во полуоткрытых транзисторов) после метастабильного триггера большая).

Так вот второй триггер не даёт напряжению "0.5" поступать на комбинационную логику, защищая микросхему от опасного состояния.

Сообщение отредактировал Arranje - Nov 25 2016, 00:02
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Nov 25 2016, 04:45
Сообщение #36


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

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



Цитата(Arranje @ Nov 25 2016, 02:59) *
Хочу добавить свои 5 копеек по теме вопроса.

Топикстартер спрашивал почему 2-й триггер "защищает" от метастабильности. Я хочу пояснить суть слова "защищает".
Как вы знаете, есть 2 стабильных состояния 0 и 1, но из-за некорректных таймингов триггер может попадать в метастабильное состояние "0.5". Я назвал его "0.5" потому что с точки зрения напряжения это "среднее" значение между напряжениями 0 и 1. При напряжении "0.5" все транзисторы, на которое это напряжение поступает, будут полуоткрыты, что повлечёт за собой жуткое потребление тока и сильный нагрев микросхемы (микросхема гипотетически может повредиться, если комбинационная логика (а значит кол-во полуоткрытых транзисторов) после метастабильного триггера большая).

Так вот второй триггер не даёт напряжению "0.5" поступать на комбинационную логику, защищая микросхему от опасного состояния.

Спасибо !
Я долго врубался в смысл второго триггера и понял наконец в чём смысл его. И правильно я понимаю, что если период входного асинхронного сигнала меньше чем период синхрочастоты, то есть вероятность что этот сигнал после выхода триггера из метастабильного состояния так и не попадет на выход (по аналогии с мячиком, мячик скатиться в область нуля..)
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 25 2016, 06:20
Сообщение #37


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(justontime @ Nov 16 2016, 23:42) *
Наверное, спрошу глупость, но, тем не менее, метастабильность может возникнуть только в триггере ?


Метастабильность бывает только у триггеров (бистабильных элементов). При этом, все равно какой триггер - Шмитдта, на элементах И, ИЛИ, либо сделанный на проходных ключах и двунаправленных буферах. Абсолютно любой триггер может попасть в метастабильное состояние, это доказано с помощью математики в Theory of metastable Operations.

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

Можно рассчитать вероятность попадания триггера в метастабильное состояние. К примеру, такой расчет проводят для CDC - Clock Domains Crossing. Двух триггеров достаточно, чтобы метастабильность возникала раз в несколько лет, трех триггеров - раз в несколько миллионов лет. Но всегда остается шанс, что даже три триггера не защитят от метастабильности на выходе.

Цитата(Arranje @ Nov 25 2016, 02:59) *
При напряжении "0.5" все транзисторы, на которое это напряжение поступает, будут полуоткрыты, что повлечёт за собой жуткое потребление тока и сильный нагрев микросхемы (микросхема гипотетически может повредиться,


Сопротивление открытых КМОП каналов очень велико и токи низкие, поэтому никакого жуткого потребления и нагрева нет.
Метастабильность плоха только неправильной интерпретацией схемы логического уровня - к примеру вместо 0 схема отработала 1, это считается сбоем.
Go to the top of the page
 
+Quote Post
Arranje
сообщение Nov 25 2016, 08:58
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-02-09
Пользователь №: 44 455



Цитата(Flip-fl0p @ Nov 25 2016, 07:45) *
Спасибо !
Я долго врубался в смысл второго триггера и понял наконец в чём смысл его. И правильно я понимаю, что если период входного асинхронного сигнала меньше чем период синхрочастоты, то есть вероятность что этот сигнал после выхода триггера из метастабильного состояния так и не попадет на выход (по аналогии с мячиком, мячик скатиться в область нуля..)

ДА, при метастабильности значение выхода будет "случайным". И выход триггера может потерять информацию о входе (если держать входной сигнал меньше 1-го такта). Добавлю только, что это справедливо и для обратного случай (вход триггера переключился из 1 в 0, а выход так и остался 1).

Цитата(Shivers @ Nov 25 2016, 09:20) *
Сопротивление открытых КМОП каналов очень велико и токи низкие, поэтому никакого жуткого потребления и нагрева нет.

У открытых каналов сопротивление очень маленькое, у закрытых - очень большое. У полуоткрытых, когда вместо логической '1', например, величиной в 2.5В подают 1.25В, сопротивление транзисторов на стоке и истоке относительно небольшое, в результате имеем большой ток от питания к земле. Как известно, кМОП логика потребляет при переключении, а если состояние переключение "зависло" (из-за метастабильности), то микросхема начнёт потреблять, оснобенно при развесистой комбинационной логике после триггера.

Некорректные значения - это тоже проблема.

Сообщение отредактировал Arranje - Nov 25 2016, 09:29
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 27 2016, 15:31
Сообщение #39


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(Arranje @ Nov 25 2016, 11:58) *
У открытых каналов сопротивление очень маленькое, у закрытых - очень большое.

Я моделировал эти режимы на спайсе для 65нм, в т.ч. и токи "КЗ", когда у инвертора открыты оба транзистора. Сопротивление между шинами в этот момент - килоОмы, так о "КЗ" речь вообще не идет! Не будет ни нагрева, ни повышенной электромиграции, ничего. Просто, течет чуть повышенный ток.


Цитата(Arranje @ Nov 25 2016, 11:58) *
Как известно, кМОП логика потребляет при переключении, а если состояние переключение "зависло" (из-за метастабильности), то микросхема начнёт потреблять, оснобенно при развесистой комбинационной логике после триггера.

Кому известно, где это написано? Если схема состоит из одного транзистора и десяти логических элементов, то ток вырастет заметно. А если в схеме транзисторов - миллионы, и один попал в метастабильность, то разницу в потреблении ни один прибор не увидит.
Метастабильность конечно распространяется в логике, но через 3-5 вентилей уровень сигнала достигает нижнего или верхнего порога, и дальше уже идет нормальный сигнал.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 27 2016, 17:42
Сообщение #40


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

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



Цитата(Shivers @ Nov 27 2016, 18:31) *
Я моделировал эти режимы на спайсе для 65нм

Не выдадите ли спайс-модели КМОП выходов, которые использовали?
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 27 2016, 18:58
Сообщение #41


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(ViKo @ Nov 27 2016, 20:42) *
Не выдадите ли спайс-модели КМОП выходов, которые использовали?

Я не очень понял вопроса про модели выходов. Имеются ввиду какие то эквивалентные схемы замещения моделей транзисторов?
Я использовал модели транзисторов TSMC 65нм (BSIM4), и элементы из этой же библиотеки: логику, триггеры. Все это NDA, публиковать не могу. Для обычного D-триггера пробовал вычислять постоянную времени и окно метастабильности. По моим расчетам, на частотах около гигагерца (CDC) метастабильность должна возникать на выходе триггера раз в несколько секунд. Если брать килогерцы, то - раз в миллионы лет. Расчеты делал для себя, они очень грубые; и я не готов их публиковать.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 27 2016, 19:09
Сообщение #42


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

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



Имел в виду логические выходы целиком. Не обязательно ПЛИС, но и стандартной логики. Ну, нет, так нет.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Dec 13 2016, 15:57
Сообщение #43


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Компрехенсив гайд по метастабильности: https://habrahabr.ru/post/317514/
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 13 2016, 19:18
Сообщение #44


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Так это что получается, полностью от метастабильности избавиться нельзя, и сбои будут в любом случае?
И все эти clock crossing bridge не дают 100% гарантии корректности передаваемых данных?
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Dec 13 2016, 19:34
Сообщение #45


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(sonycman @ Dec 13 2016, 22:18) *
Так это что получается, полностью от метастабильности избавиться нельзя, и сбои будут в любом случае?
И все эти clock crossing bridge не дают 100% гарантии корректности передаваемых данных?

100% не дают, зато дают 99,9999....%
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 14 2016, 05:33
Сообщение #46


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

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



Цитата(Shivers @ Dec 13 2016, 18:57) *
Компрехенсив гайд по метастабильности: https://habrahabr.ru/post/317514/

Автор статьи сам легонько плавает в теме. Особенно умиляет вывод 5. Засунул голову в песок, и нет проблемы.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Dec 14 2016, 06:30
Сообщение #47


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(ViKo @ Dec 14 2016, 08:33) *
Автор статьи сам легонько плавает в теме. Особенно умиляет вывод 5. Засунул голову в песок, и нет проблемы.

Плавает, конечно. Не плавают те, кто постит в IEEE, а не хабр wink.gif Да и то не факт
По пункту 5 - пост все же о метастабильности, а не STA. Хороший гайд по STA+CDC получится объемом не меньше, а может быть даже больше. Есть желающие написать? Я бы почитал

p.s. Вы просили спайс модели - там в комментах есть ссылки на FreePDK 45
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 14 2016, 07:27
Сообщение #48


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

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



Цитата(Shivers @ Dec 14 2016, 09:30) *
p.s. Вы просили спайс модели - там в комментах есть ссылки на FreePDK 45

Да-да, я заметил. Пойду качать.
А вот поставить параллельно два триггера, и объединить выходы. Лучше три. biggrin.gif Тоже вероятность получить неопределенное состояние значительно уменьшится. Особенно, если на вход данных подать сигналы с разными подтяжками. А такт не теряем. ?

Цитата(Shivers @ Dec 14 2016, 09:30) *
Хороший гайд по STA+CDC получится объемом не меньше, а может быть даже больше. Есть желающие написать? Я бы почитал

http://www.alterawiki.com/wiki/Timing_Constraints
http://www.alterawiki.com/wiki/File:TimeQuest_User_Guide.pdf

Или чуть-чуть задержать данные по-разному.
Go to the top of the page
 
+Quote Post
likeasm
сообщение Jan 5 2017, 16:55
Сообщение #49


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Всех с наступившим! Родился у меня вопрос про вероятность появления метастабильного состояния. Что будет надежнее при приеме асинхронного сигнала, цепочка из 2-х Д триггеров работающая на частоте CLK, или цепочка из 3-х или может 4-х biggrin.gif Д триггеров работающая на частоте CLK*2?
Go to the top of the page
 
+Quote Post
des333
сообщение Jan 5 2017, 17:17
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(likeasm @ Jan 5 2017, 19:55) *
Всех с наступившим! Родился у меня вопрос про вероятность появления метастабильного состояния. Что будет надежнее при приеме асинхронного сигнала, цепочка из 2-х Д триггеров работающая на частоте CLK, или цепочка из 3-х или может 4-х biggrin.gif Д триггеров работающая на частоте CLK*2?


Я думаю, что самый простой и надежный способ узнать ответ -- это подставить числа в формулу и посчитать.

Судя по графикам -- на 4-х триггерах будет надежнее.


--------------------
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jan 5 2017, 17:44
Сообщение #51


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Вероятность сбоя на выходе синхронизатора мультипликативна - при добавлении в синхронизатор дополнительного триггера, она умножается на вероятность сбоя этого триггера. Судя по формулам, вероятность сбоя при удвоенной частоте на входе и 4х триггерах такая же, как при ординарной частоте входного сигнала и двух триггерах в синхронизаторе. Об этом кстати явно написано в статье по ссылке выше.
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Jan 6 2017, 09:46
Сообщение #52


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Есть достаточно надежный способ полностью избежать проблем при синхронизации, но требуется простейший TA (время-амплитуда) конвертер или иной способ оценки коротких интервалов времени. Делается два синхронизатора - один по положительному фронту одного из сигналов, другой - по отрицательному. Один из них всегда даст надежный отсчет, важно лишь определить - какой. Это делается измерением времени между фронтами (TA конвертер) и выбором того канала, задержка которого ближе к правде.

Это проверено, сбои исчезли полностью.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:03
Рейтинг@Mail.ru


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