реклама на сайте
подробности

 
 
> делитель частоты и джиттер, влияние ПЛИС на джиттер
sysel
сообщение May 18 2009, 20:29
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Здравствуйте!
Задача такова: имеется генератор с частотой 33 МГц и джиттером N пикосекунд (генератор подключен ко входу CLK0 ПЛИС семейства Cyclone III).
требуется на ПЛИС реализовать управляемый делитель частоты (1/2, 1/4, 1/6, 1/8, 1/10, 1/12, 1/14, 1/16). Требуется на выходе делителя получить сигнал с как можно меньшим джиттером (разумеется, джиттер меньше чем N пс получить не выйдет).

Моё решение:
Код
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;

ENTITY clkdiv IS
    GENERIC
        (
            divsz : natural := 3 -- разрядность счетчика
        );    
    PORT
        (
            clk: in std_logic; -- входной клок
            div: in std_logic_vector((divsz-1) downto 0); -- коэффициент деления
            sco: out std_logic -- выходной клок
        );
END clkdiv;

ARCHITECTURE rtl OF clkdiv IS
    signal CN : std_logic_vector((divsz-1) downto 0); -- счетчик
    signal T,Q : std_logic;
BEGIN
    T<='1' when (CN=div) else '0';
    process (clk,T)
    begin
        if (falling_edge(clk)) then    -- по спаду клока
            if (T='1') then
                CN<=(others=>'0');
            else
                CN<=CN+1;
            end if;
        end if;
    end process;
    
    process (clk,T)
    begin
        if (rising_edge(clk) and (T='1')) then -- по фронту клока
            Q<=not Q;
        end if;
    end process;
    sco<=Q;
END rtl;


Дополнительная синхронизация (та, что по переднему фронту) внесена в схему для того, чтобы время переключения выходного сигнала не зависело от скорости работы сумматора и схемы сравнения (мало ли время срабатывания зависит от значения CN и div).

Вопросы:
1) насколько корректна такая реализация?
2) как такое решение может повлиять на джиттер выходного сигнала?
3) ПЛИС и джиттер - как они вообще связаны.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Boris_TS
сообщение May 19 2009, 14:25
Сообщение #2


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188





Мдааа. Конечно, я с Cyclon 3 не работал, но визуально схема - отвратительная (на уровне начинающего):
1. Выходной триггер имеет обратную связь, в нормальных ПЛИС в IOB это не ложиться (или у Cyclon 3 нет выходных триггеров ?) - соответственно будет прирост jitter'а за счет передачи логического сигнала к выходному буферу (обычно clock распространяеста по ПЛИС с меньшим jitter'ом, чем все остальные сигналы).
2. Э-хе-хе... Кто ж так делитель делает ??! Нормальные люди используют выходной перенос (назовём его CY) загружаемого счетчика: сам CY подается на счетный триггер, сигнал с которого подается на дополнительный выходной триггер (обязательно выходной триггер, иначе дополнительный прирост jitter’а). Дополнительно CY подаётся на вход Load это загружаемого счётчика, а вот значением, которое загружается - выбирается количество тактов, которое счетчик будет досчитывать до переноса (т.е. коэффициент деления). Такая схема значительно компактнее и быстродейственней... если конечно суметь правильно сделать тот самый загружаемый счетчик.
Go to the top of the page
 
+Quote Post
sysel
сообщение May 20 2009, 18:30
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Всем спасибо за помощь и конструктивную критику.
Я не делал никаких "assignment" - этот RTL

Квартус навалял с настройками по умолчанию.

Цитата(Boris_TS @ May 19 2009, 18:25) *
Нормальные люди используют выходной перенос (назовём его CY) загружаемого счетчика: сам CY подается на счетный триггер, сигнал с которого подается на дополнительный выходной триггер (обязательно выходной триггер, иначе дополнительный прирост jitter’а). Дополнительно CY подаётся на вход Load это загружаемого счётчика, а вот значением, которое загружается - выбирается количество тактов, которое счетчик будет досчитывать до переноса (т.е. коэффициент деления).

Спасибо за совет! Теперь у меня есть реальный шанс стать нормальным человеком! Кажется таким образом в 51-м микроконтроллере счетчики реализованы.

Цитата(SM @ May 20 2009, 00:34) *
Ну да, в контексте конкретной задачи от автора поста самое оно, и десяток строк против килобайта текста. Моя же цель была слегка посложнее, и на частотах аццких.

У меня аццких частот тут нет, всё по-божески.

Цитата(dvladim @ May 20 2009, 00:12) *
А если есть желание избавиться от джиттера ПЛИС, то надо вынести последний триггер за пределы ПЛИС.

Очень здоровая мысль! Мне требуется маленький джиттер только на одном из фронтов, по другому фронту малый джиттер не интересен.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sysel   делитель частоты и джиттер   May 18 2009, 20:29
- - =AK=   Цитата(sysel @ May 19 2009, 05:59) (разум...   May 19 2009, 01:08
|- - sysel   В своём вопросе я не конкретизировал джиттер. Я то...   May 19 2009, 05:24
|- - =AK=   Цитата(sysel @ May 19 2009, 14:54) Откуда...   May 19 2009, 05:49
|- - SM   Цитата(Boris_TS @ May 19 2009, 18:25) 1. ...   May 19 2009, 14:33
||- - Boris_TS   Цитата(SM @ May 19 2009, 17:33) Или ложит...   May 19 2009, 16:47
||- - SM   Цитата(Boris_TS @ May 19 2009, 20:47) тен...   May 19 2009, 16:56
|- - sazh   Цитата(Boris_TS @ May 19 2009, 18:25) Нор...   May 19 2009, 18:04
||- - SM   Цитата(sazh @ May 19 2009, 22:04) Примерч...   May 19 2009, 18:25
|||- - sazh   Цитата(SM @ May 19 2009, 22:25) Я думаю, ...   May 19 2009, 19:25
|||- - SM   Цитата(sazh @ May 19 2009, 23:25) Но речь...   May 19 2009, 20:03
|||- - sazh   Цитата(SM @ May 20 2009, 00:03) Для тех, ...   May 19 2009, 20:09
||- - Boris_TS   Цитата(sazh @ May 19 2009, 21:04) Примерч...   May 20 2009, 11:14
||- - SM   Цитата(Boris_TS @ May 20 2009, 15:14) нео...   May 20 2009, 11:33
||- - Boris_TS   Цитата(SM @ May 20 2009, 14:33) А зачем д...   May 20 2009, 12:10
||- - SM   Цитата(Boris_TS @ May 20 2009, 16:10) Мы ...   May 20 2009, 12:27
- - dvladim   Цитата(SM @ May 19 2009, 20:56) То есть, ...   May 19 2009, 20:12
|- - SM   Цитата(dvladim @ May 20 2009, 00:12) Совс...   May 19 2009, 20:34
|- - _Anatoliy   Цитата(SM @ May 19 2009, 21:34) Моя же це...   May 20 2009, 04:52
|- - Maverick   посмотрите это Может поможет   May 20 2009, 06:08
|- - des00   Цитата(_Anatoliy @ May 19 2009, 22:52) Мо...   May 20 2009, 06:21
|- - SM   Цитата(_Anatoliy @ May 20 2009, 08:52) Мо...   May 20 2009, 07:14
|- - Andr2I   Цитата(des00 @ May 20 2009, 10:21) т.к. о...   May 21 2009, 18:50
|- - SM   Цитата(Andr2I @ May 21 2009, 22:50) А мож...   May 21 2009, 19:10
- - dvladim   Цитата(SM @ May 20 2009, 00:34) А я увере...   May 20 2009, 19:25
|- - SM   Цитата(dvladim @ May 20 2009, 23:25) надо...   May 21 2009, 04:21
- - atlantic   Похоже вопрос в неправильной ветке задан(надо к ан...   May 20 2009, 20:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 20:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016