dak 0 February 2, 2016 Posted February 2, 2016 · Report post Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным. Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты? Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 2, 2016 Posted February 2, 2016 · Report post Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным. Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты? PLL с динамической настройкой частоты Не подходит? Quote Share this post Link to post Share on other sites More sharing options...
dak 0 February 2, 2016 Posted February 2, 2016 · Report post PLL и Динамическая настройка PLL Не подходит? Думал об этом. Почитал документацию к используемой серии ПЛИС (Xilinx Virtex - 5), и вроде как там нет такой возможности. Возможно,я не внимательно смотрел или что-то не так понял. Посмотрю еще раз. Quote Share this post Link to post Share on other sites More sharing options...
Maverick_ 17 February 2, 2016 Posted February 2, 2016 · Report post Думал об этом. Почитал документацию к используемой серии ПЛИС (Xilinx Virtex - 5), и вроде как там нет такой возможности. Возможно,я не внимательно смотрел или что-то не так понял. Посмотрю еще раз. стр 58 http://www.xilinx.com/support/documentatio...uides/ug190.pdf Еще можно попробовать так (документ старенький!) - во вложении, но я бы воспользовался динамической настройкой PLL UnusualClockDeviders.pdf Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 58 February 2, 2016 Posted February 2, 2016 · Report post Приветствую! Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты? Вариантов усложнить себе жизнь много - один из самых простых - каждый такт F1 суммируете в регистр шириной N бит константу K =<2^(N-1). Старший бит регистра будет выходом деленной частоты F2=F1*K/2^N. Успехов! Rob. Quote Share this post Link to post Share on other sites More sharing options...
VslavX 0 February 2, 2016 Posted February 2, 2016 · Report post Если фазовая точность выходного сигнала не важна, то можно воспользоваться фазовым аккумулятором, вот тут нормально объясняется. Я обычно использую для тактирования UART-ов, чтобы не занимать PLL, но народ даже для генерации пиксельного клока и цветовой поднесущей на видеовыходе ухитряется использовать. Quote Share this post Link to post Share on other sites More sharing options...
Bad0512 2 February 3, 2016 Posted February 3, 2016 · Report post Здравствуйте. Надо сделать делитель частоты, чтобы коэффициент деления был дробным. Понятно, что на ПЛИС можно сделать только некую имитацию такого деления. Есть мысль, что провернуть это можно примерно так: какое-то число раз делим частоту в х раз, а потом разок в х-1 раз. Тогда в среднем коэффициент деления уменьшается, но выглядит это как-то не очень красиво. Да и не понятно, сколько раз делить в х раз перед делением на х-1,чтобы в среднем получить некий меньший коэффициент деления (как его считать - тоже вопрос). Какие еще есть варианты? Главный вопрос - для чего потом вам нужна эта частота? Есть несколько разных способов получить дробную частоту. Всё зависит от конкретных условий (соотношения частот, абсолютный значения частоты и для чего потом планируете её использовать). Самый распространённый способ получения такой частоты - NCO. Но в этом способе есть свои особенности. Quote Share this post Link to post Share on other sites More sharing options...
Shamil 2 February 3, 2016 Posted February 3, 2016 · Report post Посмотрите здесь. Quote Share this post Link to post Share on other sites More sharing options...
dak 0 February 4, 2016 Posted February 4, 2016 · Report post стр 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. Но в этом способе есть свои особенности. По полученным тактовым сигналам производится чтение из памяти и модуляция. Посмотрите здесь. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
Guest TSerg February 4, 2016 Posted February 4, 2016 · Report post 155(133) ИЕ8 :) Quote Share this post Link to post Share on other sites More sharing options...
dak 0 February 6, 2016 Posted February 6, 2016 (edited) · Report post VslavX А как хорошо Ваш метод в железе работает? Я сравниваю результаты в Моделсиме с калькулятором на сайте и при моделировании получаю результат слегка иной. То есть, у меня там еще некоторая стороняя логика есть, которая в итоге вычиляет константу для суммирования; и значение этой константы совпадает с вычисленным на сайте, но частота в итоге чуть больше получается. Или в среднем я все равно получу требуемую? Или ,если мне нужна большая точность при делении частоты, то стоит задуматься о других методах? Edited February 6, 2016 by dak Quote Share this post Link to post Share on other sites More sharing options...
shamrel 0 February 6, 2016 Posted February 6, 2016 · Report post Рекомендую: Baud generator Проект UART целиком . Те же яйца, только в профиль. Кратко. Лаконично. Настраиваемо. Quote Share this post Link to post Share on other sites More sharing options...
dak 0 February 6, 2016 Posted February 6, 2016 (edited) · Report post Рекомендую: Baud generator Проект UART целиком . Те же яйца, только в профиль. Кратко. Лаконично. Настраиваемо. Спасибо. Жаль, но я не знаю Верилог. По описанию вроде тоже самое,что я на VHDL сделал. Edited February 6, 2016 by dak Quote Share this post Link to post Share on other sites More sharing options...
VslavX 0 February 8, 2016 Posted February 8, 2016 · Report post VslavX А как хорошо Ваш метод в железе работает? Я сравниваю результаты в Моделсиме с калькулятором на сайте и при моделировании получаю результат слегка иной. Сайт не мой, поэтому что там в калькуляторе выдается - сложно сказать. А для генерации Baud_x16 в модуле UART оно вполне подходит и работает хорошо. На выходе будет небольшое дрожание фазы (в пределах периода опорной частоты), но для UART это неважно. Вот пример системы с таким UART-ом. Сейчас разрабатываю модуль видеозахвата для ретрокомпов, по прикидкам метод фазового аккумулятора тоже неплохо подходит для генерации пиксельной частоты. Или ,если мне нужна большая точность при делении частоты, то стоит задуматься о других методах? Смотря что понимать под точностью, если надо уменьшить jitter - то наращивать опорную частоту, если wander - то увеличивать разрядность сумматора. Quote Share this post Link to post Share on other sites More sharing options...
dak 0 February 8, 2016 Posted February 8, 2016 · Report post Сайт не мой, поэтому что там в калькуляторе выдается - сложно сказать. А для генерации Baud_x16 в модуле UART оно вполне подходит и работает хорошо. На выходе будет небольшое дрожание фазы (в пределах периода опорной частоты), но для UART это неважно. Вот пример системы с таким UART-ом. Сейчас разрабатываю модуль видеозахвата для ретрокомпов, по прикидкам метод фазового аккумулятора тоже неплохо подходит для генерации пиксельной частоты. Смотря что понимать под точностью, если надо уменьшить jitter - то наращивать опорную частоту, если wander - то увеличивать разрядность сумматора. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...