Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подавление Jitter-а и Wander-a (Retiming) на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
wolfman
Не обходимо сделать схему подавления Jitter-а и Wander-a ( так называемый Retiming) на ПЛИС с помощью двупортовой памяти либо FIFO, подскажите как можно реализовать схему управления записью/чтением в буфер. Запись происходит с одной частотой (точнее с той же, но с Jitter-ом и Wander-ом), а чтение с другой.
cdg
Возьмите описание lxt332 на Intel.
Builder
Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ?
cdg
Цитата(Builder @ Jul 7 2005, 13:34)
Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ?
*

Человек вообще спрашивал о принципе построения в смысле управления FIFO.
Т.к. FIFO это только часть того, что называется Jitter Attenuator.
wolfman
Не знаю как цитировать. потому пишу в кавычках.
"Возьмите описание lxt332 на Intel. "

Вобще-то мне нужно на ПЛИС забацать аналог LXT6282. Точнее схему ретайминга, схему я сделал, но проблема с сигналами записи/чтения в FIFO они друг относительно друга плавают, вот как бы сделать так чтобы сигналы были синхронны?
Хотя дело может быть в самой ПЛИС мне приходиться поект создавать под FLEX6000, при моделировании после нормального сигнала возникают непонятные пики, как с этим бороться?
Танцующий
Цитата(wolfman @ Jul 8 2005, 10:38)
проблема с сигналами записи/чтения в FIFO они друг относительно друга плавают, вот как бы сделать так чтобы сигналы были синхронны?
*

Задача решается при использовании более высокой частоты тактирования (Clk), лучше в 2^n больше, чем битрэйт потока (ClkIn). Необходимым является всегда(!) выполнение условия T(ClkIn)>T(Clk)+delta
Код
-- SyncRo
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity SyncRo is
   port(
       Clk  : in    std_logic;
       ClkIn   : in    std_logic;
 Reset    : in    std_logic;
       D       : in    std_logic;
       Q       : out   std_logic;
       E       : out   std_logic
 );
   end SyncRo;

architecture default of SyncRo is

signal r1, r2, dd   : std_logic;

begin

ClkInProc: process (Reset, ClkIn)
begin
if(Reset='1') then
   r1<='0';
   dd<='0';
elsif(r2='1') then
   r1<='0';
elsif(ClkIn = '1' and ClkIn'event) then
   r1<='1';
   dd<=D;
end if;
end process;

ClkProc: process (Reset, Clk)
begin
if(Reset='1') then
   r2<='0';
elsif(Clk = '1' and Clk'event) then
   r2<=r1;
end if;
end process;

Q<=dd;
E<=r2;

end default;
wolfman
[quote=Танцующий,Jul 8 2005, 20:06]
Спасибо, попробую.
Genn
Цитата(wolfman @ Jul 5 2005, 09:04)
Не обходимо сделать схему подавления Jitter-а и Wander-a ( так называемый Retiming) на ПЛИС с помощью двупортовой памяти либо FIFO, подскажите как можно реализовать схему управления записью/чтением в буфер.  Запись происходит с одной частотой (точнее с той же, но с Jitter-ом и Wander-ом), а чтение с другой.
*


Алгоритмы, используемые для построения FIFO (в т.ч. с различными частотами записи и чтения) приводятся на сайте www.xilinx.com (Product & Services -> Application Notes). В архиве приложения (APPx) находится pdf-файл, а так же исходники на VHDL и Verilog.
wolfman
Гм, я не очень силен верилоге, что нужно в исходниках править, чтобы заработало в квартусе, он выдает ошибку.
Wh`te
Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру.

Вот собственно
wolfman
Цитата(Wh`te @ Jul 11 2005, 14:29)
Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру.

Вот собственно
*


В том-то и дело, что мне нужно без ФАПЧа. Схема частично заработала. Осталась самая малость- заставить проходить ПСП, т.к произвольное слово проходит.
Спасибо всем откликнувшимся.
cdg
Так и скажите, научите делать FIFO, если с языками не владах возьмите лучше готовые мегакорки Altera.
wolfman
Цитата(cdg @ Jul 12 2005, 15:49)
Так и скажите, научите делать FIFO, если  с языками не владах возьмите лучше готовые мегакорки Altera.
*


Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов.
cdg
Цитата(wolfman @ Jul 12 2005, 23:02)
Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов.

Где эти импульсы появляются? Может там не регистровые выходы, тогда естественно возможны глитчи, ставим триггер(или соответствующую опцию в свойствах корки) и все дела.
wolfman
Цитата(cdg @ Jul 13 2005, 16:08)
Где эти импульсы появляются? Может там не регистровые выходы, тогда естественно возможны глитчи, ставим триггер(или соответствующую опцию в свойствах корки) и все дела.
*

Перешел на двухпортовую память и проблема решилась, схема работает (на выходе вижу такой же сигнал как и на входе, но без джиттера) проблема только одна при подаче ПСП пробегает ошибка, почему пока не ясно, т.к. при подаче любого слова ошибки нет.
wolfman
Цитата(Танцующий @ Jul 8 2005, 20:06)

Не мог ли бы Вы подробнее объяснить свой пример. Что в нем есть что. Спасибо.
wolfman
Спасибо всем откликнувшимся, подавитель джитера я сделал, если кому надо будет обращайтесь.
maegg
Поздравляю!
Теперь осталось это все проверить на устойчивость к дрожаниям по G.823
и измерить МОВИ и ДВИ на удовлетворение нормам.
Приборчик ANT-20 фирмы Acterna с опцией измерения синхронизации очень поможет.
Еще бы знать частоту среза и передаточную характеристику.
Но то, что уже не сыпет ошибок, уже замечательно.
wolfman
Цитата(maegg @ May 23 2006, 22:46) *
Поздравляю!
Теперь осталось это все проверить на устойчивость к дрожаниям по G.823
и измерить МОВИ и ДВИ на удовлетворение нормам.
Приборчик ANT-20 фирмы Acterna с опцией измерения синхронизации очень поможет.
Еще бы знать частоту среза и передаточную характеристику.
Но то, что уже не сыпет ошибок, уже замечательно.


Проверил, правда на приборе HP, у него есть возможность измерения джитера. Он же строит и график допустимого джитера и передаточную.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.