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

 
 
> делитель частоты и джиттер, влияние ПЛИС на джиттер
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
Ответов
dvladim
сообщение May 19 2009, 20:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(SM @ May 19 2009, 20:56) *
То есть, что я имею в виду - если указан констрейн, что Fast Output Register, то он ляжет в IOE, и никаких гвоздей. Не может быть регистров, которые туда не ложатся (за исключением того, что слишком много регистров одновременно пытаются запихать)

Совсем не уверен. Если триггер не может туда лечь, он не ляжет, причем без предупреждений. (Altera, IMHO, проверять лениво)

Цитата(SM @ May 19 2009, 22:25) *
Я думаю, что речь о чем-то типа того:

Более чем впечатляет.

Я бы так:
Код
always @(posedge clk)
begin
    if (counter == 3'b0)
    begin
        out <= ~out;
        counter <= (divider[3:1] - 1'b1);
    end
    else
        counter <= counter - 1'b1;
end

А если есть желание избавиться от джиттера ПЛИС, то надо вынести последний триггер за пределы ПЛИС.
Go to the top of the page
 
+Quote Post
SM
сообщение May 19 2009, 20:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(dvladim @ May 20 2009, 00:12) *
Совсем не уверен. Если триггер не может туда лечь, он не ляжет, причем без предупреждений. (Altera, IMHO, проверять лениво)

А я уверен. Если насильно register duplication не отключили, то если триггер не может туда лечь, то туда ложится копия этого триггера. Если отключили, то сами виноваты, констрейны это святое wink.gif По крайней мере вышеприведенный ckg_reg_a ложится и в альтере (cyclone-ii), и в LatticeXP без каких либо противопоказаний.

Цитата(dvladim @ May 20 2009, 00:12) *
Я бы так:

Ну да, в контексте конкретной задачи от автора поста самое оно, и десяток строк против килобайта текста. Моя же цель была слегка посложнее, и на частотах аццких.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 20 2009, 04:52
Сообщение #4


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(SM @ May 19 2009, 21:34) *
Моя же цель была слегка посложнее, и на частотах аццких.


Можно поинтересоваться какой частоты удалось достичь?
Go to the top of the page
 
+Quote Post
des00
сообщение May 20 2009, 06:21
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Anatoliy @ May 19 2009, 22:52) *
Можно поинтересоваться какой частоты удалось достичь?


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

2 SM

я правильно понимаю при нечетных tckg_div_coeff скважность выходного сигнала не 50/50 ? и вас это устраивало?


--------------------
Go to the top of the page
 
+Quote Post
Andr2I
сообщение May 21 2009, 18:50
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379



Цитата(des00 @ May 20 2009, 10:21) *
т.к. описан самый оптимальный синхронный счетчик для фпга с 4-х входовым лютом


А можно спросить в плане самообразования? - как я понял, увеличение быстродействия связано с изменением состояния счетчика на единицу (думаю не важно увеличение или уменьшение biggrin.gif ) - не нужен сумматор (довольно много логических связей), и момент достижения порога отлавливается внутренними средствами ячейки - перенос (не требуется компаратор)?
Попутно - если описан компаратор, который сравнивает состояние регистра с нулем всегда будет использоваться бит переноса или иногда будет вставляться компаратор?
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
- - Boris_TS   Мдааа. Конечно, я с Cyclon 3 не работал, но визуал...   May 19 2009, 14:25
|- - 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
|- - sysel   Всем спасибо за помощь и конструктивную критику. Я...   May 20 2009, 18:30
|- - Maverick   посмотрите это Может поможет   May 20 2009, 06:08
|- - SM   Цитата(_Anatoliy @ May 20 2009, 08:52) Мо...   May 20 2009, 07:14
|- - 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 Текстовая версия Сейчас: 21st July 2025 - 22:46
Рейтинг@Mail.ru


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