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

 
 
> Деление клока на 3, Как еффективно делить входной клок на 3 с минимальным skew
Саша Z
сообщение Dec 2 2007, 09:15
Сообщение #1


Знающий
****

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



Есть входной клок с duty cycle 50%. Нужно его грамотно поделить на 3 при сохранении 50% +/- 10% duty cycle. Как сделать ?

Набросав диаграммы на бумажке я прикинул генерация выходного клока может быть:
Подсчитывать кол-во фронтов и спадов входного клока, по каждому второму фронту генерировать фронт выходного клока, по каждому второму спаду - генерировать спад выходного клока.
Но тогда получается что вмешивается комбинаторная логика в схему генерации выходного клока, и это насколько я понял не есть "здоровая" практика.

Подскажите как сделать грамотно ? Вообще, какие есть грамотные пути деления клока в ПЛИСах (кроме наверно встроенных PLLей...)

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Dec 2 2007, 09:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(Саша Z @ Dec 2 2007, 12:15) *
Есть входной клок с duty cycle 50%. Нужно его грамотно поделить на 3 при сохранении 50% +/- 10% duty cycle. Как сделать ?

Набросав диаграммы на бумажке я прикинул генерация выходного клока может быть:
Подсчитывать кол-во фронтов и спадов входного клока, по каждому второму фронту генерировать фронт выходного клока, по каждому второму спаду - генерировать спад выходного клока.
Но тогда получается что вмешивается комбинаторная логика в схему генерации выходного клока, и это насколько я понял не есть "здоровая" практика.

Подскажите как сделать грамотно ? Вообще, какие есть грамотные пути деления клока в ПЛИСах (кроме наверно встроенных PLLей...)

Спасибо.


Если Вы работает на одном системном клоке, без разницы скважность этого клока. Потому что если это не DDR? работают по переднему фронту. Т.Е образно берется временной интервал в отсчетах этого клока и внужный временной момент делается выборка данных по этому клоку длительностью в один период этого системного клока. такой подход легко ложиться на поведенческое описание. А на выход выдаются только данные, сопровождающиеся clk_en длительностью в один период системного клока.
Подразумевается что следующий модуль тоже работает на системном клоке.
Все чисто и прозрачно. И никакго skew/ потому что этот системный клок идет по специализированному пути. Т.Е его задержка поступления на С входы регистров в любой точке кристалла меньше, чем задержка поступления данных по цепям входов выходов регистров.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity RGB is
port (
DATA_IN : in std_logic_vector(7 downto 0);
XTAL_CLK : in std_logic;
nRST : in std_logic;
DATA_OUT : out std_logic_vector(23 downto 0);
INT_CPU : out std_logic
);
end RGB;

architecture RGB_arch of RGB is

signal cnt : std_logic_vector(1 downto 0);
signal clk_en_a, clk_en_b, clk_en_c : std_logic;
signal rg_a, rg_b : std_logic_vector(7 downto 0);

begin
process(XTAL_CLK)
begin
if XTAL_CLK'event and XTAL_CLK = '1' then
if nRST = '0' then
cnt <= (others => '0');
elsif cnt = "10" then
cnt <= (others => '0');
else
cnt <= cnt + 1;
end if;
if clk_en_a = '1' then
rg_a <= DATA_IN;
end if;
if clk_en_b = '1' then
rg_b <= DATA_IN;
end if;
if clk_en_c = '1' then
DATA_OUT <= DATA_IN & rg_b & rg_a;
end if;
INT_CPU <= clk_en_c;
end if;
end process;

clk_en_a <= '1' when (cnt = "00") else '0';
clk_en_b <= '1' when (cnt = "01") else '0';
clk_en_c <= '1' when (cnt = "10") else '0';

end RGB_arch;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Саша Z   Деление клока на 3   Dec 2 2007, 09:15
- - Саша Z   Спасибо, но на выход нужно подавать именно тактову...   Dec 2 2007, 11:02
|- - sazh   Цитата(Саша Z @ Dec 2 2007, 14:02) Спасиб...   Dec 2 2007, 12:07
|- - Саша Z   Цитата(sazh @ Dec 2 2007, 16:07) Понимает...   Dec 2 2007, 12:31
- - Tran   module DivThree( input clk, output r...   Dec 2 2007, 14:51
|- - Саша Z   Цитата(Tran @ Dec 2 2007, 18:51) module D...   Dec 2 2007, 15:23
- - Tran   Где взял - не помню.   Dec 2 2007, 15:51
|- - iosifk   Цитата(Tran @ Dec 2 2007, 18:51) Где взял...   Dec 3 2007, 09:51
- - BSV   Кроме того, что клок поделить Вам еще нужно, чтобы...   Dec 2 2007, 15:51
- - Саша Z   Да, нужна фазовая синхронизация, не уверен что дан...   Dec 2 2007, 16:14
- - BSV   Сделайте два делителя на 6 - один по восходящему ф...   Dec 2 2007, 16:34
|- - Singer   А все-таки, если не искать приключений на ровном м...   Dec 2 2007, 19:02
|- - Doka   Цитата(Singer @ Dec 2 2007, 22:02) А все-...   Dec 2 2007, 19:44
|- - makc   Цитата(Doka @ Dec 2 2007, 22:44) это прод...   Dec 2 2007, 20:05
- - Саша Z   Сорри за my ignorance, что такое DCM ?   Dec 2 2007, 19:42
- - Саша Z   Ага, теперь более понятно. Я эту тему упомянул в п...   Dec 2 2007, 20:24
|- - Evil Archer   Цитата(Саша Z @ Dec 2 2007, 23:24) Ага, т...   Dec 3 2007, 12:40
||- - rv3dll(lex)   Цитата(Evil Archer @ Dec 3 2007, 15:40) Е...   Dec 3 2007, 13:09
|- - syoma   Цитата(Саша Z @ Dec 2 2007, 22:24) Я, как...   Dec 3 2007, 13:34
|- - rv3dll(lex)   Цитата(syoma @ Dec 3 2007, 16:34) Я бы в ...   Dec 3 2007, 13:47
|- - Саша Z   Цитата(syoma @ Dec 3 2007, 17:34) Я бы в ...   Dec 3 2007, 13:50
- - rv3dll(lex)   entity del3 is Port ( clk : in STD_LOGIC; ...   Dec 3 2007, 06:27
- - ig_d   RE: Деление клока на 3   Dec 3 2007, 09:31
|- - Саша Z   Цитата(ig_d @ Dec 3 2007, 13:31) Больше...   Dec 3 2007, 13:31
- - syoma   Цитатавыходы pll компиллятор сам постарается разве...   Dec 3 2007, 14:16
- - ps1979   Мне кажется что если входная частота не опускаетьс...   Dec 3 2007, 20:05
- - vladec   Зачем такие сложные решения? Не проще ли, взять дв...   Dec 4 2007, 07:18
|- - Саша Z   Цитата(vladec @ Dec 4 2007, 11:18) Зачем ...   Dec 4 2007, 07:41
- - Евгений Николаев   Выложили же ПДФку с делением на 1,5 - потом ещё Т-...   Dec 4 2007, 08:07
|- - Саша Z   Цитата(Евгений Николаев @ Dec 4 2007, 12...   Dec 4 2007, 08:25
|- - sazh   Цитата(Саша Z @ Dec 4 2007, 11:25) Выложи...   Dec 4 2007, 08:40
|- - Саша Z   Цитата(sazh @ Dec 4 2007, 12:40) Все эти ...   Dec 4 2007, 10:36
|- - sazh   Цитата(Саша Z @ Dec 4 2007, 13:36) Честно...   Dec 4 2007, 12:13
|- - Саша Z   Цитата(sazh @ Dec 4 2007, 16:13) Я просто...   Dec 4 2007, 12:42
- - Евгений Николаев   sazh, хммм... а ведь данные можно хватать по обоим...   Dec 4 2007, 08:59
- - sazh   Цитата(Евгений Николаев @ Dec 4 2007, 11...   Dec 4 2007, 10:07


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:08
Рейтинг@Mail.ru


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