|
делитель частоты и джиттер, влияние ПЛИС на джиттер |
|
|
|
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, 20:12
|
Знающий
   
Группа: Свой
Сообщений: 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 А если есть желание избавиться от джиттера ПЛИС, то надо вынести последний триггер за пределы ПЛИС.
|
|
|
|
|
May 19 2009, 20:34
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(dvladim @ May 20 2009, 00:12)  Совсем не уверен. Если триггер не может туда лечь, он не ляжет, причем без предупреждений. (Altera, IMHO, проверять лениво) А я уверен. Если насильно register duplication не отключили, то если триггер не может туда лечь, то туда ложится копия этого триггера. Если отключили, то сами виноваты, констрейны это святое  По крайней мере вышеприведенный ckg_reg_a ложится и в альтере (cyclone-ii), и в LatticeXP без каких либо противопоказаний. Цитата(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 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   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
|
|
|