Перейти к содержанию
    

Делитель частоты с дробным коэффициентом

Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным.

 

Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным.

 

Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты?

PLL с динамической настройкой частоты

 

Не подходит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

PLL и

Динамическая настройка PLL

Не подходит?

Думал об этом. Почитал документацию к используемой серии ПЛИС (Xilinx Virtex - 5), и вроде как там нет такой возможности. Возможно,я не внимательно смотрел или что-то не так понял. Посмотрю еще раз.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думал об этом. Почитал документацию к используемой серии ПЛИС (Xilinx Virtex - 5), и вроде как там нет такой возможности. Возможно,я не внимательно смотрел или что-то не так понял. Посмотрю еще раз.

стр 58

http://www.xilinx.com/support/documentatio...uides/ug190.pdf

 

Еще можно попробовать так (документ старенький!) - во вложении, но я бы воспользовался динамической настройкой PLL

UnusualClockDeviders.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты?

 

Вариантов усложнить себе жизнь много - один из самых простых - каждый такт F1 суммируете в регистр шириной N бит константу K =<2^(N-1). Старший бит регистра будет выходом деленной частоты F2=F1*K/2^N.

 

Успехов! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если фазовая точность выходного сигнала не важна, то можно воспользоваться фазовым аккумулятором, вот тут нормально объясняется. Я обычно использую для тактирования UART-ов, чтобы не занимать PLL, но народ даже для генерации пиксельного клока и цветовой поднесущей на видеовыходе ухитряется использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным.

 

Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты?

Главный вопрос - для чего потом вам нужна эта частота? Есть несколько разных способов получить дробную частоту. Всё зависит от конкретных условий (соотношения частот, абсолютный значения частоты и для чего потом планируете её использовать). Самый распространённый способ получения такой частоты - NCO. Но в этом способе есть свои особенности.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

стр 58

http://www.xilinx.com/support/documentatio...uides/ug190.pdf

 

Еще можно попробовать так (документ старенький!) - во вложении, но я бы воспользовался динамической настройкой PLL

Спасибо, посмотрю.

 

 

Приветствую!

 

 

 

Вариантов усложнить себе жизнь много - один из самых простых - каждый такт F1 суммируете в регистр шириной N бит константу K =<2^(N-1). Старший бит регистра будет выходом деленной частоты F2=F1*K/2^N.

 

Успехов! Rob.

Спасибо, идея понятна.

 

 

Если фазовая точность выходного сигнала не важна, то можно воспользоваться фазовым аккумулятором, вот тут нормально объясняется. Я обычно использую для тактирования UART-ов, чтобы не занимать PLL, но народ даже для генерации пиксельного клока и цветовой поднесущей на видеовыходе ухитряется использовать.

Спасибо. Как я понял из описания по ссылке предложенный метод эквивалентен тому, что посоветовал RobFPGA.

 

Главный вопрос - для чего потом вам нужна эта частота? Есть несколько разных способов получить дробную частоту. Всё зависит от конкретных условий (соотношения частот, абсолютный значения частоты и для чего потом планируете её использовать). Самый распространённый способ получения такой частоты - NCO. Но в этом способе есть свои особенности.

По полученным тактовым сигналам производится чтение из памяти и модуляция.

 

Посмотрите здесь.

Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

VslavX

 

А как хорошо Ваш метод в железе работает? Я сравниваю результаты в Моделсиме с калькулятором на сайте и при моделировании получаю результат слегка иной. То есть, у меня там еще некоторая стороняя логика есть, которая в итоге вычиляет константу для суммирования; и значение этой константы совпадает с вычисленным на сайте, но частота в итоге чуть больше получается. Или в среднем я все равно получу требуемую? Или ,если мне нужна большая точность при делении частоты, то стоит задуматься о других методах?

Изменено пользователем dak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую: Baud generator

Проект UART целиком .

Те же яйца, только в профиль. Кратко. Лаконично. Настраиваемо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую: Baud generator

Проект UART целиком .

Те же яйца, только в профиль. Кратко. Лаконично. Настраиваемо.

Спасибо.

 

Жаль, но я не знаю Верилог. По описанию вроде тоже самое,что я на VHDL сделал.

Изменено пользователем dak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

VslavX

А как хорошо Ваш метод в железе работает? Я сравниваю результаты в Моделсиме с калькулятором на сайте и при моделировании получаю результат слегка иной.

Сайт не мой, поэтому что там в калькуляторе выдается - сложно сказать. А для генерации Baud_x16 в модуле UART оно вполне подходит и работает хорошо. На выходе будет небольшое дрожание фазы (в пределах периода опорной частоты), но для UART это неважно. Вот пример системы с таким UART-ом. Сейчас разрабатываю модуль видеозахвата для ретрокомпов, по прикидкам метод фазового аккумулятора тоже неплохо подходит для генерации пиксельной частоты.

 

Или ,если мне нужна большая точность при делении частоты, то стоит задуматься о других методах?

Смотря что понимать под точностью, если надо уменьшить jitter - то наращивать опорную частоту, если wander - то увеличивать разрядность сумматора.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сайт не мой, поэтому что там в калькуляторе выдается - сложно сказать. А для генерации Baud_x16 в модуле UART оно вполне подходит и работает хорошо. На выходе будет небольшое дрожание фазы (в пределах периода опорной частоты), но для UART это неважно. Вот пример системы с таким UART-ом. Сейчас разрабатываю модуль видеозахвата для ретрокомпов, по прикидкам метод фазового аккумулятора тоже неплохо подходит для генерации пиксельной частоты.

 

 

Смотря что понимать под точностью, если надо уменьшить jitter - то наращивать опорную частоту, если wander - то увеличивать разрядность сумматора.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...