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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Делитель f1 на f2, это возможно?
GGGG
сообщение Nov 29 2005, 06:02
Сообщение #1


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

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



Доброго всем времени суток!

Помогите определиться с возможными вариантами решения задачки:
Есть 2-а clock сигнала с частотами f1 и f2, причем f1 > f2. Хотелось бы написать на VHDL универсальный модуль делителя f1 на f2.
К примеру 40МГц превратить в 8МГц, путем деления на 5 Гц.

Какие будут предложения?
Какие ограничения возникают при написании такого модуля?

Спасибо.

Сообщение отредактировал GGGG - Nov 29 2005, 08:34
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Nov 29 2005, 06:07
Сообщение #2


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(GGGG @ Nov 29 2005, 09:02) *
Помогите определиться с возможными вариантами решения задачки:
Есть 2-а clock сигнала с частотами f1 и f2, причем f1 > f2. Хотелось бы написать на VHDL универсальный модуль делителя f1 на f2.
К примеру 40МГц превратить в 8МГц, путем деления на 5МГц.

Какие будут предложения?
Какие ограничения возникают при написании такого модуля?

Ничего не понял. Делим мегагерцы на мегагерцы и получаем мегагерцы?
Go to the top of the page
 
+Quote Post
GGGG
сообщение Nov 29 2005, 08:35
Сообщение #3


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

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



Цитата(andrew_b @ Nov 29 2005, 09:07) *
Ничего не понял. Делим мегагерцы на мегагерцы и получаем мегагерцы?


Сорри, уже поправил. smile.gif Цифры были приведены как пример. А сделать хотелось бы делитель одной частоты на другую.
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 29 2005, 09:32
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(GGGG @ Nov 29 2005, 12:02) *
К примеру 40МГц превратить в 8МГц, путем деления на 5 Гц.



Цитата(GGGG @ Nov 29 2005, 14:35) *
Цитата(andrew_b @ Nov 29 2005, 09:07) *

Ничего не понял. Делим мегагерцы на мегагерцы и получаем мегагерцы?


Сорри, уже поправил. smile.gif Цифры были приведены как пример. А сделать хотелось бы делитель одной частоты на другую.

Как-то странно Вы поправили - мегагерцы в герцы перевели. smile.gif Все равно делим частоту на частоту и получаем частоту. smile.gif Наверное имелось в виду, что делим частоту в N раз и получаем поделенную частоту.

Сделать это достаточно просто - используйте счетчик. С другой стороны, если надо иметь синхронные клоки, то этот вариант не пойдет. Для получения синхронных клоков надо использовать специальные аппаратные средства типа PLL. В этом случае коэффициенты умножения/деления, фазовые сдвиги и прочее задаются не HDL описанием, а с помощью параметров модуля, соответствующего аппаратному PLL.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
maksya
сообщение Nov 29 2005, 11:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-08-04
Из: Ленинград
Пользователь №: 562



Цитата(GGGG @ Nov 29 2005, 09:02) *
Какие будут предложения?
Какие ограничения возникают при написании такого модуля?

Спасибо.


предложение 1: скорректируй до конца условие задачи. [Гц]/[Гц] = число, а не Гц. Надо нечто вроде делителя частоты.

предложение 2: дествительно, как правильно заметил dxp, для деления частоты в ПЛИС лучше пользоваться встроенными блоками PLL. А счетчик может делить только на величину, кратную 2 (f/2, f/4 ...)

предложение 3: не пытайтесь строить perpettum mobile, универсальность не всегда выгодна


--------------------
Лень - это не врожденное чувство русского человека, а средство борьбы с неуемной, но бестолковой энергией начальника.
Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 29 2005, 14:41
Сообщение #6


Гуру
******

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



Видимо Вам нужен делитель по модулю. Может кто переведет.
// A modulus 8 up counter
module ct_module (clk, out_a, out_b);

parameter modulus = 8;
parameter width = 3;

input clk;
output out_a;
output out_b;

reg [width-1:0] ct;
reg out_b;

always @(posedge clk)
begin
if (ct == (modulus-1))
ct <= {width{1'b0}};
else
ct <= ct + 1'b1;
end

assign out_a = ct[width-1];

always @(posedge clk)
begin
out_b <= (ct == (modulus-1));
end

endmodule
Go to the top of the page
 
+Quote Post
GGGG
сообщение Nov 29 2005, 15:12
Сообщение #7


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

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



Спасибо за ответы.

Вот что еще интересно. В данной задачке хотелось, чтобы один из clockов выступал в роли коэффициента деления.

Т.е., если не вдаваться в размерности, то подав на 1 pin clock с частотой f1, а на 2 pin с частотой f2, на выходе получить clock с частотой f3= f1/f2. (опять, к примеру 30Мгц и 6Гц а на выходе получить 5МГц)

Прошу отнестись с пониманием к этому вопросу, т.к. эта задача чисто абстрактная и нацелина на мое любопытство.

Сообщение отредактировал GGGG - Nov 29 2005, 15:12
Go to the top of the page
 
+Quote Post
Gate
сообщение Nov 29 2005, 17:09
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Цитата(dxp @ Nov 29 2005, 12:32) *
Как-то странно Вы поправили - мегагерцы в герцы перевели. smile.gif Все равно делим частоту на частоту и получаем частоту. smile.gif Наверное имелось в виду, что делим частоту в N раз и получаем поделенную частоту.

Сделать это достаточно просто - используйте счетчик. С другой стороны, если надо иметь синхронные клоки, то этот вариант не пойдет. Для получения синхронных клоков надо использовать специальные аппаратные средства типа PLL. В этом случае коэффициенты умножения/деления, фазовые сдвиги и прочее задаются не HDL описанием, а с помощью параметров модуля, соответствующего аппаратному PLL.


На самом деле делить частоту не нужно - можно использовать выход счетчика как сигнал clock enable. При этом глобальная частота остается одна.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
stalko
сообщение Nov 29 2005, 19:10
Сообщение #9


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

Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762



Цитата(maksya @ Nov 29 2005, 14:29) *
счетчик может делить только на величину, кратную 2 (f/2, f/4 ...)

Я Вас умоляю!!!
ОДИН регистр делит на 2, ДВА последовательно на четыре и т.д.... если больше не строить никаких комбинационных схем... smile.gif
Go to the top of the page
 
+Quote Post
GGGG
сообщение Nov 29 2005, 19:25
Сообщение #10


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

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



а если, к примеру, из 40МГц надо получить 8256 кГц? То как тогда быть?
Go to the top of the page
 
+Quote Post
psL
сообщение Nov 29 2005, 19:38
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Т.е., если у одного инженера зарплата 30 т.p., а у другого 6 т.р. - то получается, что первый инженер получает больше второго в 5 т.рублей? smile.gif
Go to the top of the page
 
+Quote Post
stalko
сообщение Nov 29 2005, 19:43
Сообщение #12


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

Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762



Цитата(GGGG @ Nov 29 2005, 22:25) *
а если, к примеру, из 40МГц надо получить 8256 кГц? То как тогда быть?

Поделить на 4845 smile.gif Зато скважность сигнала можно получить просто идеальную smile.gif
Go to the top of the page
 
+Quote Post
psL
сообщение Nov 29 2005, 19:46
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Читайте FAQ Общие вопросы п.11
http://fpga-faq.narod.ru/#%C0%20%EA%E0%EA%...F2%EE%F2%F3%20Y?
Go to the top of the page
 
+Quote Post
tegumay
сообщение Nov 29 2005, 21:25
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 16-09-05
Из: Москва
Пользователь №: 8 640



Э-э-э построение счетчиков (aka делителей) c требуемым коэффициентом счета обязательная задача, по крайней мере нас этим и в техникуме и в институте мурыжили, мурыжат и надеюсь след. поколение будут мурыжить maniac.gif


--------------------
;X
Go to the top of the page
 
+Quote Post
stalko
сообщение Nov 29 2005, 22:03
Сообщение #15


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

Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762



Цитата(GGGG @ Nov 29 2005, 09:02) *
Доброго всем времени суток!

Помогите определиться с возможными вариантами решения задачки:
Есть 2-а clock сигнала с частотами f1 и f2, причем f1 > f2. Хотелось бы написать на VHDL универсальный модуль делителя f1 на f2.
К примеру 40МГц превратить в 8МГц, путем деления на 5 Гц.

Какие будут предложения?
Какие ограничения возникают при написании такого модуля?

Спасибо.

Еще раз внимательно перечитал вопрос, напряг все самые извилистые извилины и пришел к выводу, что человек хочет получить делитель частоты, в котором коэффициент деления определяется второй входной частотой.
Тогда вариант один: сделать частотомер по сигналу f2, т.е. подать опорную частоту, считать число фронтов f2, получать ЧИСЛО и это ЧИСЛО использовать в качестве коэффициента делителя.
Предупреждаю сразу, будет приличный переходной процесс, если частота опоры частотомера будет низкой, либо большая ошибка, если высокой.
Хотя мелькал в голове другой вариант: может надо ВЫЧЕСТЬ частоты? Типа смесителя цифрового сделать...
Go to the top of the page
 
+Quote Post

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

 


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


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