Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Деление частоты
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
mcaffee
Столкнулся с задачей:есть меандр одной частоты,необходимо получить меандр с частотой в 3 раза меньше!
Сделал вот так:
ARCHITECTURE beh OF Devider IS

signal cout: std_logic;

signal pos_cnt :std_logic_vector (1 downto 0);
signal neg_cnt :std_logic_vector (1 downto 0);
begin

process (takt, clr) begin
if (clr = '1') then
pos_cnt <= (others=>'0');
elsif (rising_edge(takt)) then

if conv_integer(pos_cnt)=2 then
pos_cnt<=conv_std_logic_vector (0,2);
else pos_cnt <= pos_cnt + 1;
end if;
end if;
end process;

process (takt, clr) begin
if (clr = '1') then
neg_cnt <= (others=>'0');
elsif (falling_edge(takt)) then
if conv_integer(neg_cnt)=2 then
neg_cnt<=conv_std_logic_vector (0,2);
else neg_cnt <= neg_cnt + 1;

end if;
end if;
end process;

cout <= '1' when ((pos_cnt /= 2) and (neg_cnt /= 2)) else
'0';
end architecture;


-не работает;(
Может посоветуете еще способы?wink.gif
Iptash
Цитата(mcaffee @ Apr 19 2013, 17:20) *
...
-не работает;(
Может посоветуете еще способы?wink.gif

Тоже не рабочие? wink.gif
А деленный на 3, должен быть меандр, или без разницы?
mcaffee
Цитата(Iptash @ Apr 19 2013, 17:47) *
Тоже не рабочие? wink.gif
А деленный на 3, должен быть меандр, или без разницы?

Тоже должен быть меандром!
Kuzmi4
2 mcaffee
PLL ??
mcaffee
Цитата(Kuzmi4 @ Apr 19 2013, 18:52) *
2 mcaffee
PLL ??

Как?)
vadimp61
Цитата(mcaffee @ Apr 19 2013, 21:37) *
Как?)

Например из 3Мгц получаем 1Мгц

3*10 далее делим по модулю 15 и берем со счетчика выход переноса счета (cout) и делим на 2 Т- триггером для получения меандра 1 Мгц.
MaverickDSP
Вариант 1: когда pos_cnt равен, допустим, 2- формируется положительный импульс. Его скважность будет 3. Задерживаем его на пол такта (по заднему фронту takt) и складываем по "или" задержанный и не задержанный импульсы. Понятно,что асинхронщина, но работать должно...
Вариант 2: на pll умножаем частоту в 2 раза, формируем строб скважностью 3 (аналогично pos_cnt=2), умноженную частоту на такты, строб на разрешение тактов Т-триггера.
mcaffee
Нужно из 15 МГц тактовой частоты получить 5 МГц!)
vadimp61
Цитата(mcaffee @ Apr 20 2013, 00:47) *
Нужно из 15 МГц тактовой частоты получить 5 МГц!)

Ну так умножьте на 2 с помощью PLL получите 30, потом делим по модулю 3, получаем 10 и Т триггер на два, получаем 5 Мгц
Какой у вас чип?
mcaffee
Цитата(vadimp61 @ Apr 20 2013, 08:35) *
Какой у вас чип?

Actel APA 300. Никогда не приходилось заниматься умножением частоты,как это делается?)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.