|
|
  |
Асинхронный сигнал с ДНУ и синхронная оцифровка данных, как правильней реализоватьв FPGA.. |
|
|
|
Jul 30 2008, 11:56
|

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

|
Здравствуйте. Собственно задача такова => с ADC идёт поток данных и есть ДНУ - которым мы задаём наш порог.. Нужно иметь до сигнала с ДНУ и после сигнала с ДНУ одинаковое кол-во отсчётов. Применяю alt_taps -2 штуки. Объём их фиксирован с начала. Между alt_taps стоит мультиплексер, который при приходе сигнала с ДНУ начинает пропускать данные во второй alt_taps. Однако есть нъюанс - если поднять порог ДНУ высоко(чтоб не ловить всяческие шумы) то сигнал с него будет очень коротким и что самое главное - сигнал по своей сути асинхронен к клоку, что заходит на ADC и в этом беда.. Обрисовал картинку внизу:
Сигнал с ДНУ может возникнуть и сбросится за долго до rising_edge(Input_clock) или будет импульс до falling_edge(Input_clock) - ну в обсчем суть думаю обрисовал. Первая идея конечно - загнать сигнал с ДНУ как клоковый в тригер и таким образом защёлкнуть его. Сие в принципе не есть гут, как уже неоднократно обсуждалось, потому хотелось бы как то уйти от этого.... Есть у кого какие идеи как это можно реализовать корректно чтоб не пропускать отсчёты и не заводить сигнал с ДНУ как клоковый ?? Есть мысля перегонять его в Input_clock клоковый домен и там смотреть , но тогда нужно будет иметь ситуацию когда сигнал возникает до rising_edge(Input_clock) и гасится гораздо позже .... Такое в принципе при высоком уровне на ДНУ можно очень долго ждать............
|
|
|
|
|
Jul 30 2008, 13:44
|

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

|
Цитата(Kuzmi4 @ Jul 30 2008, 16:24)  2 Maverick - ситуация такова , что если поднять сильно порог , то могут быть при пикообразных сигналах на входе - коротенькие импульсы на сигнале с ДНУ. Идею оцифровывания сигнала с ДНУ в принципе можно организовать вот так:
Или в мап въювере:
но так правду я узнаю только через 3 такта при правильном расположении сигнала с ДНУ - сигнал возникает до rising_edge(Input_clock).. может глупо, просто на работе устал и соображалка не работает  : а если взять и увеличить работу блока в 3 раза (т.е. 1 такт данных = 3 или 4 тактам твоего блока), тогда возможно будет реал-тайм. "я узнаю только через 3 такта " - так это твоя постоянная будет задержка.
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Jul 31 2008, 08:02
|

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

|
Цитата(Kuzmi4 @ Jul 31 2008, 10:42)  2 slog - ДискриминаторНижнегоУровня - компаратор с петлёй обратной связи от дребезга(как по буржуйски не знаю).. не знаю, может быть пригодиться, Xilinx рекомендует бороться с дребезгом (и называет это debounce circuite) так: Код -- Provides a one-shot pulse from a non-clock input, with reset --**Insert the following between the 'architecture' and ---'begin' keywords** signal Q1, Q2, Q3 : std_logic; --**Insert the following after the 'begin' keyword** process(<clock>) begin if (<clock>'event and <clock> = '1') then if (<reset> = '1') then Q1 <= '0'; Q2 <= '0'; Q3 <= '0'; else Q1 <= D_IN; Q2 <= Q1; Q3 <= Q2; end if; end if; end process; Q_OUT <= Q1 and Q2 and (not Q3); взял из Templates Language Таким образом, вначале ставишь схему подавления от дребезга (которая кстати и делала б синхронизацию со входным сигналом), потом схему компаратора. На постоянную задержку на несколько тактов я бы просто не обращал бы внимания
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|