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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Деление клока на 3, Как еффективно делить входной клок на 3 с минимальным skew
Саша Z
сообщение Dec 2 2007, 20:24
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Ага, теперь более понятно. Я эту тему упомянул в первоначальном посте ветки.
Я, как новичок, практически не знаком пока с темой встроенных PLLей. Знаю что они есть и видимо их несколько, но не в курсе как они программируются как функция от входной тактовой, да и не знаю какой их фазоый сдвиг относительно входного клока.
Хотя это тоже может быть вариант...
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Dec 3 2007, 06:27
Сообщение #17


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



entity del3 is
Port ( clk : in STD_LOGIC;
del_3 : out STD_LOGIC);
end del3;

architecture Behavioral of del3 is


signal first_step : std_logic := '0';
signal sek_step : std_logic := '0';
signal clk_cnt : integer range 0 to 2 := 0;
begin

process (Clk )
begin
if (Clk'event and Clk = '1')
then

if clk_cnt = 2 then clk_cnt <= 0;
else clk_cnt <= clk_cnt + 1;
end if;

if clk_cnt = 2 then first_step <= '1';
elsif clk_cnt = 1 then first_step <= '0';
end if;

end if;
end process ;

process (Clk )
begin
if (Clk'event and Clk = '0')
then

if first_step = '0' then sek_step <= '0';
elsif first_step = '1' then sek_step <= '1';
end if;

end if;
end process ;

del_3 <= first_step and sek_step ;

end Behavioral;

что то типа того
Go to the top of the page
 
+Quote Post
ig_d
сообщение Dec 3 2007, 09:31
Сообщение #18


Участник
*

Группа: Свой
Сообщений: 26
Регистрация: 5-03-05
Пользователь №: 3 092




Прикрепленное изображение
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 3 2007, 09:51
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Tran @ Dec 2 2007, 18:51) *
Где взял - не помню.

Взяли скорее всего у Ксайлинкса. В их журнале была статья "необычные счетчики" - о счетчиках на 1,5 на 3 на 6...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Evil Archer
сообщение Dec 3 2007, 12:40
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 1-12-05
Пользователь №: 11 662



Цитата(Саша Z @ Dec 2 2007, 23:24) *
Ага, теперь более понятно. Я эту тему упомянул в первоначальном посте ветки.
Я, как новичок, практически не знаком пока с темой встроенных PLLей. Знаю что они есть и видимо их несколько, но не в курсе как они программируются как функция от входной тактовой, да и не знаю какой их фазоый сдвиг относительно входного клока.
Хотя это тоже может быть вариант...


Если вам требуется точная фаза, то делитель- не лучший вариант.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Dec 3 2007, 13:09
Сообщение #21


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(Evil Archer @ Dec 3 2007, 15:40) *
Если вам требуется точная фаза, то делитель- не лучший вариант.


что такое точная фаза??? он авсёравно с допуском - лучше уж не точная - но всегда сдвинутая в одну сторону.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 3 2007, 13:31
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(ig_d @ Dec 3 2007, 13:31) *

Прикрепленное изображение


Больше спасибо.
Имплементировал кодом VHDLя - работает как часы ! a14.gif , синхроннно по входному клоку.
Go to the top of the page
 
+Quote Post
syoma
сообщение Dec 3 2007, 13:34
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Саша Z @ Dec 2 2007, 22:24) *
Я, как новичок, практически не знаком пока с темой встроенных PLLей. Знаю что они есть и видимо их несколько, но не в курсе как они программируются как функция от входной тактовой, да и не знаю какой их фазоый сдвиг относительно входного клока.
Хотя это тоже может быть вариант...


Я бы в первую очередь познакомился - классная штука. Без геморроя может частоту и поделить и умножить. Главное что она 50-на-50 сохраняет без проблем, а фазовый сдвиг задается любой - 0-90-180-270.
По крайней мере в Xilinxe в EDK используется Wrapper который без проблемм этот DCM подключает.
Кстати не забывайте, что (по крайней мере в Xilinxe) если я правильно понял доку в ПЛИСине есть специальные линии - они называются BUFG, которые специально предназначены для клоков. Без них нормального SKEW и HOLD TIME не добиться.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Dec 3 2007, 13:47
Сообщение #24


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(syoma @ Dec 3 2007, 16:34) *
Я бы в первую очередь познакомился - классная штука. Без геморроя может частоту и поделить и умножить. Главное что она 50-на-50 сохраняет без проблем, а фазовый сдвиг задается любой - 0-90-180-270.
По крайней мере в Xilinxe в EDK используется Wrapper который без проблемм этот DCM подключает.
Кстати не забывайте, что (по крайней мере в Xilinxe) если я правильно понял доку в ПЛИСине есть специальные линии - они называются BUFG, которые специально предназначены для клоков. Без них нормального SKEW и HOLD TIME не добиться.



выходы pll компиллятор сам постарается развести на эти линии и старается при разводке, чтобы до всех клоковых входов триггеров этот клок доходил одновременно. правда у этого есть обратная сторона чем больше ресурсов таким способом занято, тем больше групповая задержка распространения клока

ВНИМАНИЕ скорость переключения триггера по входу CLK и RST может отличаться в несколько раз!!!!!! никогда не пользуюсь асинхронными установками
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 3 2007, 13:50
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(syoma @ Dec 3 2007, 17:34) *
Я бы в первую очередь познакомился - классная штука. Без геморроя может частоту и поделить и умножить. Главное что она 50-на-50 сохраняет без проблем, а фазовый сдвиг задается любой - 0-90-180-270.
По крайней мере в Xilinxe в EDK используется Wrapper который без проблемм этот DCM подключает.
Кстати не забывайте, что (по крайней мере в Xilinxe) если я правильно понял доку в ПЛИСине есть специальные линии - они называются BUFG, которые специально предназначены для клоков. Без них нормального SKEW и HOLD TIME не добиться.


Да, согласен, обязательно познакомлюсь...когда придет время. Пока для меня все впереди, есть видимо еще тысячу вещей с которыми буду знакомиться в области ПЛИС... smile.gif
Go to the top of the page
 
+Quote Post
syoma
сообщение Dec 3 2007, 14:16
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата
выходы pll компиллятор сам постарается развести на эти линии и старается при разводке, чтобы до всех клоковых входов триггеров этот клок доходил одновременно. правда у этого есть обратная сторона чем больше ресурсов таким способом занято, тем больше групповая задержка распространения клока


У меня как раз был прикол, что пока не указал, что этот клок должен везтись на эти линии, компилятор пытался развезти клок по обыкновенному. В итоге был ужас.
А насчет обратной стороны, то эти линии - это и есть отдельный ресурс, который ничем не кроме этого заниматься не может и эти специальные линии вроде сделаны так, что они имеют хорошие отводки правктически в любой части ПЛИС, большую нагрузочную способность и малую емкость и поэтому могут тактировать очень много нагрузок.
Go to the top of the page
 
+Quote Post
ps1979
сообщение Dec 3 2007, 20:05
Сообщение #27





Группа: Новичок
Сообщений: 6
Регистрация: 28-01-05
Пользователь №: 2 245



Мне кажется что если входная частота не опускаеться ниже скажем
25 MHz (это в случае Xilinx) то надо использовать DCM и не мучиться.
В противном случае надо использовать другой клок,скажем 50 MHz,
сгенерить с помощью DCM максимально возможный клок, типа 400 MHz.
Далее с его помощью сэмплировать входной клок, сгенерить поделенный на 3
клок и пропустить через BUFG. Если требование на скважность 10% то должно
работать до 20 MHz (если помучиться то наверное до 40)
Go to the top of the page
 
+Quote Post
vladec
сообщение Dec 4 2007, 07:18
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Зачем такие сложные решения? Не проще ли, взять два триггера - один с переключением по переднему фронту, другой - по заднему и три небольших комбинационных схемы?
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 4 2007, 07:41
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(vladec @ Dec 4 2007, 11:18) *
Зачем такие сложные решения? Не проще ли, взять два триггера - один с переключением по переднему фронту, другой - по заднему и три небольших комбинационных схемы?


Что подобное и реализовал на основе схемы предоставленной в ветке (спасибо тому кто кинул схемку). Только там 3 DFFа, из них 2 идет на счетчик modulo 3 считающий спады входного клока. Реализовал кодом - работает как часы. smile.gif
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Dec 4 2007, 08:07
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Выложили же ПДФку с делением на 1,5 - потом ещё Т-триггера на выход и вот вам 50% duty и частота в трое меньше.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:51
Рейтинг@Mail.ru


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