Forth
http://fforum.winglion.ru/

AHDL(VHDL): Цифровой фильтр для однобитного сигнала
http://fforum.winglion.ru/viewtopic.php?f=11&t=2748
Страница 2 из 2

Автор:  dynamic-wind [ Чт авг 11, 2011 22:08 ]
Заголовок сообщения:  Re: AHDL: Цифровой фильтр для однобитного сигнала

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

В азиках, кондер--это обратно смещенный диод, или затвор увеличенного полевика. И т.п.
В ПЛИСах таких ячеек нет, понял.

Автор:  Hishnik [ Чт авг 11, 2011 22:30 ]
Заголовок сообщения:  Re: AHDL: Цифровой фильтр для однобитного сигнала

dynamic-wind писал(а):
В азиках, кондер--это обратно смещенный диод, или затвор увеличенного полевика. И т.п.
В ПЛИСах таких ячеек нет, понял.

В ПЛИС такие решения абсолютно противопоказаны. В цифровой электронике, в принципе, тоже - чем меньше норма техпроцесса, тем более противопоказаны. Это же все плывет over PVT.

Автор:  mOleg [ Пт авг 12, 2011 14:56 ]
Заголовок сообщения:  Re: AHDL: Цифровой фильтр для однобитного сигнала

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

ну, так вроде как так быть и должно, сигнал длиной меньше какого-то заданного числа клоков не должен проваливаться сквозь фильтр 8)

Автор:  WingLion [ Пт авг 12, 2011 18:26 ]
Заголовок сообщения:  Re: AHDL: Цифровой фильтр для однобитного сигнала

mOleg писал(а):
ну, так вроде как так быть и должно, сигнал длиной меньше какого-то заданного числа клоков не должен проваливаться сквозь фильтр 8)


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

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

Автор:  WingLion [ Вс июн 24, 2012 05:38 ]
Заголовок сообщения:  Re: AHDL: Цифровой фильтр для однобитного сигнала

Понадобилось нечто подобное, но при условии, что период дискретизации лишь в 4-6 раз выше периода "единиц" и "нулей" в последовательном коде, который надо принять.

выделение фронтов и подавление помех делаю так:
Код:
VHDL:
-- шапку с заданием библиотек/входов/выходов опускаю

    signal reg : nibble; -- четырехбитный регистр

begin
    process (clk) begin
        if clk'event and clk = vcc then
            reg <= reg(2 downto 0)&data_in;
            if reg = "0011" or reg = "1100" then
                front_detected <= vcc;
            else
                front_detected <= gnd;
            end if;

            if reg(3 downto 1) = "111" or reg = "1101" then
                data_out <= vcc;
            elsif reg(3 downto 1) = "000" or reg = "0010" then
                data_out <= gnd;
            end if;

        end if;
    end;

end;


Выделеные фронты подаются на цифровую фапч, которая формирует строб-импульсы, нацеленые на середины передаваемых периодов, чтобы зафиксировать данные.

Работает такая штука при передаче данных со скоростью ~41мегабит/сек (250/6) по одному сигнальному проводу.
Применяется для передачи тестовой информации из исследуемой схемы на визуализатор, который эти данные на VGA выводит в нужном виде.
Для передачи данных используется кусок обычного плоского кабеля длиной 0.5 метра. Интересно, что при передачи с Альтеры на Альтеру скорость 41мегабит/сек плучилась нормально, а вот, при передачи с Xilinx на Альтеру пришлось скорость в 2 раза снизить (схема подавления помех и выделения фронтов осталась прежней)

Страница 2 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/