|
Подавление Jitter-а и Wander-a (Retiming) на ПЛИС |
|
|
|
Jul 8 2005, 06:01
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата(Builder @ Jul 7 2005, 13:34) Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ? Человек вообще спрашивал о принципе построения в смысле управления FIFO. Т.к. FIFO это только часть того, что называется Jitter Attenuator.
|
|
|
|
|
Jul 8 2005, 10:36
|
Участник

Группа: Свой
Сообщений: 60
Регистрация: 17-06-04
Из: Н.Новгород
Пользователь №: 42

|
Цитата(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;
|
|
|
|
|
Jul 8 2005, 18:16
|
Участник

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146

|
Цитата(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.
|
|
|
|
|
Jul 11 2005, 04:59
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 5-07-05
Пользователь №: 6 532

|
Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру. Вот собственно
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 11 2005, 12:06
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(Wh`te @ Jul 11 2005, 14:29) Сначала быстрой фапч восстанавливаем тактовую из потока, затем делим ее на некий коэф. чтобы в итоге получить скажем 1 кГц. затем стоит уже более медленная фапч, она следит за восстановленной тактовой. Далее две выделенные тактовых перетактируют данные по закольцованному сдвиговому регистру. Вот собственно В том-то и дело, что мне нужно без ФАПЧа. Схема частично заработала. Осталась самая малость- заставить проходить ПСП, т.к произвольное слово проходит. Спасибо всем откликнувшимся.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
|
Jul 12 2005, 20:02
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(cdg @ Jul 12 2005, 15:49) Так и скажите, научите делать FIFO, если с языками не владах возьмите лучше готовые мегакорки Altera. Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
|
Jul 13 2005, 06:38
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Цитата(wolfman @ Jul 12 2005, 23:02) Дело в том, что готовые Альтеровские как-то странно работают, возможно это особенность флекса 6000. Проявляется странность в появлении паразитных коротких импульсов. Где эти импульсы появляются? Может там не регистровые выходы, тогда естественно возможны глитчи, ставим триггер(или соответствующую опцию в свойствах корки) и все дела.
|
|
|
|
|
Jul 17 2005, 12:31
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

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