|
делитель частоты и джиттер, влияние ПЛИС на джиттер |
|
|
|
May 18 2009, 20:29
|

Знающий
   
Группа: Свой
Сообщений: 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) ПЛИС и джиттер - как они вообще связаны.
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
May 19 2009, 14:25
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

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

Знающий
   
Группа: Свой
Сообщений: 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)  А если есть желание избавиться от джиттера ПЛИС, то надо вынести последний триггер за пределы ПЛИС. Очень здоровая мысль! Мне требуется маленький джиттер только на одном из фронтов, по другому фронту малый джиттер не интересен.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|