|
Детектор совпадения импульсов, Помогите чайнику please! |
|
|
|
May 28 2008, 20:51
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(Herz @ May 29 2008, 00:40)  Совпадение фронтов может быть только с определённым допуском. Какие импульсы? И какое временное рассогласование фронтов ещё считается совпадением? Чем меньше тем лучше  где-то 10-20 нс
|
|
|
|
|
May 29 2008, 11:34
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 30-11-06
Из: Запорожье
Пользователь №: 22 958

|
Цитата(lex_84 @ May 28 2008, 22:17)  Как можно реализовать цифровой детектор совпадения импульсов? Как сделать обычный ФД я знаю, но он показывает только <> А чтобы реагировал на совпадение фронтов??? Опишите задачу пдробнее.
|
|
|
|
|
May 29 2008, 15:35
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(Herz @ May 29 2008, 00:57)  А сами импульсы какой длительности, каков период следования? В общем случае к импульсам можно применить фунцию И-НЕ и дискриминатор. Если на выходе не наблюдается иголок длиннее 10-20 нс, можно считать фронты совпадающими. Длительность импульсов 1-2 мкс. Частота 5-10 МГц. Необходимо чтобы при совпадении импульсов схема формировала на своем выходе импульс для цепей сброса счетчиков. Я хочу поэксперементировать с реализацией нониусного метода на ПЛИС. И любопытно насколько это реализуемо и какого наилучшего результата можно добиться. К сожалению в нете не видел материалов на эту тему. Даже на аглицком. А в Ратхоре и Дворяшине ничего не написано про такие схемы  Цитата(rv3dll(lex) @ May 29 2008, 15:24)  генератор на 100-200 мегагерц 2 сдвиговых линии для подавления метастабильности и анализ по фронту одного из сигналов сигнал в соседнем канале в +-1-2 отсчёта вокруг него Вы хотите сказать что чисто цифровую схему не удастся создать и без аналоговой части не обойтись?
|
|
|
|
|
May 29 2008, 18:31
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(Herz @ May 29 2008, 21:40)  Так не бывает. Сорри 5 МГц с коэффициентом заполнения 50.
|
|
|
|
|
May 30 2008, 18:58
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(rv3dll(lex) @ May 30 2008, 22:07)  я говорю про реализацию на ПЛИС генератор на 100-200 мегагерц 2 сдвиговых линии для подавления метастабильности и анализ по фронту одного из сигналов сигнал в соседнем канале в +-1-2 отсчёта вокруг него Метод мне не совсем понятен. особенно термин "метастабильность" и "анализ по фронту" Это же раздел для чайников!
|
|
|
|
|
Jun 2 2008, 04:13
|

Полное ничтожество
    
Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354

|
Цитата(lex_84 @ May 30 2008, 22:58)  Метод мне не совсем понятен. особенно термин "метастабильность" и "анализ по фронту" Это же раздел для чайников!  метастабильность - это когда у триггера изза того, что фронт клока попадает на фронт входных данных непонятное состояние выхода - лечится установкой нескольких триггеров подрят как бы в линию задержки. дальше поставить 3 триггера, на их клоковый вход подать один из сигналов иосле подавителя мета стабильности а на вход данных три сигнала со сдвигом на шаг середина точно с тогоже по линии задержки времени но сдругого канала и остальные два до и после середины. есть ещё вариант сделать на основном клоке клоке. вы Vhdl знаете???
|
|
|
|
|
Jun 2 2008, 17:17
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Цитата(Kuzmi4 @ Jun 2 2008, 16:37)  2 rv3dll(lex) - можете описать как это будет на vhdl, а то как то не ясна суть... Как по мне то там Д-тригера + AND реализация... Интересно было бы посмотреть на временную диаграмму такого детектора Цитата(rv3dll(lex) @ Jun 2 2008, 08:13)  метастабильность - это когда у триггера изза того, что фронт клока попадает на фронт входных данных непонятное состояние выхода - лечится установкой нескольких триггеров подрят как бы в линию задержки.
дальше поставить 3 триггера, на их клоковый вход подать один из сигналов иосле подавителя мета стабильности а на вход данных три сигнала со сдвигом на шаг середина точно с тогоже по линии задержки времени но сдругого канала и остальные два до и после середины.
есть ещё вариант сделать на основном клоке клоке. вы Vhdl знаете??? VHDL знаю, но все равно не совсем понятно, хоть бы структуру или ту же временную диаграмму такого метода...
|
|
|
|
|
Jun 3 2008, 08:22
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 lex_84 - а чем она вам может не понтавится ? 2 rv3dll(lex) - интересно получилось.. Если правильно вас понял: Код LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; -- entity sinc_detector is port(
strob_sovp : out std_logic; strob_sovp_dlit : out std_logic; sig100meg : in std_logic; syg_1 : in std_logic; syg_2 : in std_logic ); end entity sinc_detector;
ARCHITECTURE system_architecture OF sinc_detector IS --signal syg_1 : std_logic; --signal syg_2 : std_logic; signal syg_1_del_line : std_logic_vector(0 to 6); signal syg_2_del_line : std_logic_vector(0 to 6);
signal syg_1_front : std_logic; signal syg_2_front_t1 : std_logic; signal syg_2_front_t2 : std_logic; signal syg_2_front_t3 : std_logic;
--signal 100meg : std_logic;
--signal strob_sovp_dlit : std_logic; --signal strob_sovp : std_logic; BEGIN --+++++++++++++++++++++++++++++++ process (sig100meg) begin if (sig100meg'event and sig100meg = '1') --polog front then syg_1_del_line(0 to 6) <= syg_1 & syg_1_del_line(0 to 5); syg_2_del_line(0 to 6) <= syg_2 & syg_2_del_line(0 to 5); end if; end process; --- syg_1_front <= syg_1_del_line(4) and not(syg_1_del_line(5)); syg_2_front_t1 <= syg_2_del_line(3) and not(syg_2_del_line(4)); syg_2_front_t2 <= syg_2_del_line(4) and not(syg_2_del_line(5)); syg_2_front_t3 <= syg_2_del_line(5) and not(syg_2_del_line(6)); --- process (sig100meg) begin if (sig100meg'event and sig100meg = '1') --polog front then if (syg_1_front = '1') then if (syg_2_front_t1 = '1' or syg_2_front_t2 = '1' or syg_2_front_t3 = '1') then strob_sovp_dlit <= '1'; strob_sovp <= '1'; else strob_sovp_dlit <= '0'; strob_sovp <= '0'; end if; else strob_sovp <= '0'; end if; end if; end process; --++++++++++++++++++++++++++++++++ END system_architecture; В результате RTL выдал такую реализацию:
Мапа выдала такую гирляндочку:
А симуляция:
Странно как то....
|
|
|
|
|
Jun 3 2008, 08:52
|

Полное ничтожество
    
Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354

|
Цитата(Kuzmi4 @ Jun 3 2008, 12:48)  Так это детктор совпадения фронтов.. Блин.. сплужил. Теперь идя ясна стала - получается мы прогоняем сигналы по сдвиговому регистру - цифруем типа с частотой 100 мегагерц а потом сравниваем... Получил такую картинку:
А почему strob_sovp_dlit не падает ? это для того., чтобы показать что импульс в канале 1 точнее его фронт всегда совпадает с фронтом в канале 2 нарисуй дальше ещё и не несовпадающие фронты - и он упадёт три выборки канала 2- это как раз допуск на совпадение
|
|
|
|
|
Jun 3 2008, 09:28
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
И наверно последний вопрос касательно Код syg_1_front <= syg_1_del_line(4) and not(syg_1_del_line(5)); То это - до было("1"), после небыло("0") и AND даст 1 - типа фронт есть. А вот касательно: Код syg_2_front_t1 <= syg_2_del_line(3) and not(syg_2_del_line(4)); syg_2_front_t2 <= syg_2_del_line(4) and not(syg_2_del_line(5)); syg_2_front_t3 <= syg_2_del_line(5) and not(syg_2_del_line(6)); ... if (syg_2_front_t1 = '1' or syg_2_front_t2 = '1' or syg_2_front_t3 = '1') then ... Типа выборки с линии задержки, но почему именно такая хитрая выборка с 3 по 6 (вроде ж 4-5 даёт нам фронт) ? Можете обяснить ?  Понял, там же OR - именно допуск на совпадение. Теперь всё стало на свои места.
|
|
|
|
|
Jun 3 2008, 15:41
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 17-05-08
Из: Питер
Пользователь №: 37 575

|
Спасибо!!!  Даст ист фантастиш!!!  Судя по диаграмме то что надо! Попробую повторить в Либеро и Моделсиме
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|