wolfman
Jul 5 2005, 06:04
Не обходимо сделать схему подавления Jitter-а и Wander-a ( так называемый Retiming) на ПЛИС с помощью двупортовой памяти либо FIFO, подскажите как можно реализовать схему управления записью/чтением в буфер. Запись происходит с одной частотой (точнее с той же, но с Jitter-ом и Wander-ом), а чтение с другой.
Возьмите описание lxt332 на Intel.
Builder
Jul 7 2005, 10:34
Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ?
Цитата(Builder @ Jul 7 2005, 13:34)
Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ?
Человек вообще спрашивал о принципе построения в смысле управления FIFO.
Т.к. FIFO это только часть того, что называется Jitter Attenuator.
wolfman
Jul 8 2005, 07:38
Не знаю как цитировать. потому пишу в кавычках.
"Возьмите описание lxt332 на Intel. "
Вобще-то мне нужно на ПЛИС забацать аналог LXT6282. Точнее схему ретайминга, схему я сделал, но проблема с сигналами записи/чтения в FIFO они друг относительно друга плавают, вот как бы сделать так чтобы сигналы были синхронны?
Хотя дело может быть в самой ПЛИС мне приходиться поект создавать под FLEX6000, при моделировании после нормального сигнала возникают непонятные пики, как с этим бороться?
Танцующий
Jul 8 2005, 10:36
Цитата(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
Jul 8 2005, 11:39
[quote=Танцующий,Jul 8 2005, 20:06]
Спасибо, попробую.
Цитата(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
Jul 11 2005, 04:46
Гм, я не очень силен верилоге, что нужно в исходниках править, чтобы заработало в квартусе, он выдает ошибку.
Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру.
Вот собственно
wolfman
Jul 11 2005, 12:06
Цитата(Wh`te @ Jul 11 2005, 14:29)
Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру.
Вот собственно
В том-то и дело, что мне нужно без ФАПЧа. Схема частично заработала. Осталась самая малость- заставить проходить ПСП, т.к произвольное слово проходит.
Спасибо всем откликнувшимся.
Так и скажите, научите делать FIFO, если с языками не владах возьмите лучше готовые мегакорки Altera.
wolfman
Jul 12 2005, 20:02
Цитата(cdg @ Jul 12 2005, 15:49)
Так и скажите, научите делать FIFO, если с языками не владах возьмите лучше готовые мегакорки Altera.
Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов.
Цитата(wolfman @ Jul 12 2005, 23:02)
Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов.
Где эти импульсы появляются? Может там не регистровые выходы, тогда естественно возможны глитчи, ставим триггер(или соответствующую опцию в свойствах корки) и все дела.
wolfman
Jul 17 2005, 12:31
Цитата(cdg @ Jul 13 2005, 16:08)
Где эти импульсы появляются? Может там не регистровые выходы, тогда естественно возможны глитчи, ставим триггер(или соответствующую опцию в свойствах корки) и все дела.
Перешел на двухпортовую память и проблема решилась, схема работает (на выходе вижу такой же сигнал как и на входе, но без джиттера) проблема только одна при подаче ПСП пробегает ошибка, почему пока не ясно, т.к. при подаче любого слова ошибки нет.
wolfman
Aug 4 2005, 05:48
Цитата(Танцующий @ Jul 8 2005, 20:06)
Не мог ли бы Вы подробнее объяснить свой пример. Что в нем есть что. Спасибо.
wolfman
May 23 2006, 12:45
Спасибо всем откликнувшимся, подавитель джитера я сделал, если кому надо будет обращайтесь.
Поздравляю!
Теперь осталось это все проверить на устойчивость к дрожаниям по G.823
и измерить МОВИ и ДВИ на удовлетворение нормам.
Приборчик ANT-20 фирмы Acterna с опцией измерения синхронизации очень поможет.
Еще бы знать частоту среза и передаточную характеристику.
Но то, что уже не сыпет ошибок, уже замечательно.
wolfman
May 23 2006, 17:05
Цитата(maegg @ May 23 2006, 22:46)

Поздравляю!
Теперь осталось это все проверить на устойчивость к дрожаниям по G.823
и измерить МОВИ и ДВИ на удовлетворение нормам.
Приборчик ANT-20 фирмы Acterna с опцией измерения синхронизации очень поможет.
Еще бы знать частоту среза и передаточную характеристику.
Но то, что уже не сыпет ошибок, уже замечательно.
Проверил, правда на приборе HP, у него есть возможность измерения джитера. Он же строит и график допустимого джитера и передаточную.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.