Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 12:47

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: AHDL(VHDL): Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Пн авг 08, 2011 20:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Код:
   TITLE "1 bit filter";
   
SUBDESIGN BitFiltr (
   Di   : input;
   CLK   : input;
   Do   : output;
--   CNT[4..0]   : output;
)
VARIABLE
   CNT[4..0]   : DFF;
   SHMIDT      : DFF;
BEGIN

   CNT[].clk = CLK;
   
   Do = SHMIDT;
   
   CASE (DFF((CNT[] < 3),CLK,,),DFF(Di,CLK,,), DFF((CNT[] > 28),CLK,,)) IS
      WHEN B"X10" => CNT[] = CNT[] + 1;
      WHEN B"00X" => CNT[] = CNT[] - 1;
      WHEN others => CNT[] = CNT[];
   END CASE;
   
   SHMIDT.clk = CLK;
   
   CASE (DFF((CNT[] < 10),CLK,,),SHMIDT,DFF((CNT[] > 20),CLK,,)) IS
      WHEN B"1XX" => SHMIDT = GND;
      WHEN B"XX1" => SHMIDT = VCC;
      WHEN others => SHMIDT = SHMIDT;
   END CASE;
   
   
END;

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Пн авг 08, 2011 21:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Aka антидребезг?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Пн авг 08, 2011 22:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Типа того ;)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Вт авг 09, 2011 12:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Для подавления дребезга на кнопках время маловато. Если только это не используется как выделение фронта асинхронно приходящего клока.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Вт авг 09, 2011 20:43 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Если клок на схему подать не сильно высокий, то и для подавления дребезга подойдет...
в крайнем случае, можно разрядность счетчика поднять или сделать на всех тригерах вход разрешения, на который подавать нечастые короткие импульсы.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Вт авг 09, 2011 20:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Параметризованый набросок на VHDL:

Код:
entity bitfiltr is
Port(
     clk, input_pin, ENA : in std_logic;
     out_pinn : out std_logic
);

end bitfiltr;


arhitecture rtl of BitFiultr is

  signal out_pin : std_logic;
  signal count : integer;
  constant max : integer := 1000;
  constant min : integer := 10;
  constant gap : integer := 500;
  constant vcc : std_logic := '1';
 

begin

process (clk) begin

    if clk'event and clk=vcc and ENA = vcc then

       if input_pin = vcc then
              if count >max then count <= max+1; else count <=count + 1; end if;
       else
              if count < min then count <= min-1; else count <= count - 1; end if;
       end if;

       if count > (max+min+gap)/2 then
            out_pin <= vcc;
       elsif count < (max+min-gap)/2 then
            out_pin <= gnd;
      else
            out_pin <= out_pin;
      end if;
      out_pinn <= out_pin;

    end if;

end process;

end;


Не проверено!

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Ср авг 10, 2011 19:49 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
а я так делал:
Parameters (tau=75,sync=25);

constant cycles = ceil(tau div sync)-1;

SubDesign finp
( clk : input;
inp : input; -- вход

pos : output; -- в '1' если сигнал положителен ~ tau ns
neg : output; -- в '1' если сигнал отрицателен ~ tau ns
o : output; -- в '1' если pos, в '0' если neg
)

Variable
T[cycles..1] : dffe;

Begin
T[] = (T[cycles-1..1],inp); T[].clk = clk;
pos = dff(.d=( T[] == -1 ),.clk=clk);
neg = dff(.d=( T[] == 0 ),.clk=clk);

o = srff(.s=pos, .r=neg, .clk=clk);
End;

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 04:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
а я так делал:


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

Я с таким уже сталкивался, потому ставил на выходе регистра мажоритар, а не просто сравнение. А потом со счетчиком решил делать.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 09:23 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Аналоговый фильтр (с конденсатором) будет больше цифрового? Импульс скажем 1мкс.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 10:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
dynamic-wind писал(а):
Аналоговый фильтр (с конденсатором) будет больше цифрового? Импульс скажем 1мкс.

У аналогового фильтра нет абсолютно никакой гарантии подавить короткие пики. Только фронт завалит.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 15:07 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Хищник писал(а):
У аналогового фильтра нет абсолютно никакой гарантии подавить короткие пики. Только фронт завалит.

А как же работает фильтр в AVR, который (согласно даташиту) фильтрует слишком короткий RESET?
Он это делает при незапущенном тактовом генераторе.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 15:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Проблема в том, что в произвольно взятом устройстве вряд ли будет гарантия возможности применения конкретных номиналов R и С. Фильтр делается по принципу "чтобы работал", а не "пользователь ответственен за то, чтобы на вход фильтра подавались помехи с характеристиками...". Цифровой фильтр в этом плане более гибок и существенно более стабилен. Фильтр на сброс как раз можно сделать в виде RC, потому что можно вписать требование "длительность сброса не менее ...", и разработчикам обычно не составляет труда обеспечить выполнение этого требования. А вот произвольно взятому источнику часто бывает трудновато объяснить, какие помехи он имеет право генерировать :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 15:48 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
если на вход пройдет регулярная короткая помеха (1 такт длиной и довольно часто), то такая схемка не будет работать, т.к. ни четкого нуля, ни четкой единицы не будет на входе.

будет, т.к. на выходе стоит RS триггер 8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 18:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
будет, т.к. на выходе стоит RS триггер


Ага, а теперь представим, что пришел сигнал с помехами, так что схемы сравнения не совпадают всегда, т.е. RS-триггер просто не получает сигналы сброса и установки.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: AHDL: Цифровой фильтр для однобитного сигнала
СообщениеДобавлено: Чт авг 11, 2011 18:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
dynamic-wind писал(а):
Аналоговый фильтр (с конденсатором) будет больше цифрового? Импульс скажем 1мкс.


"больше" - это как? Цифровой фильтр - это 1/1000 от ПЛИС-а, а аналоговый - два компонента рядом с ним...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB