Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: умножение частоты
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
gethan
Всем привет! Может это покажется многим легким, но подскажите,как реализовать (или где прочесть) умножение частоты? подразумевается,что необходимо получить, скажем частоту в два раза большую,чем тактовая.
garlands
PLL
gethan
Цитата(garlands @ Feb 24 2014, 01:29) *

Спасибо большое! Есть ли способ написания отдельного блока,выполняющего функцию PLL, но на логических элементах ПЛИС?)
SM
Есть, если ГУН и фильтр ФАПЧ снаружи поставить. Или частоты у Вас настолько низкие, что можно обойтись ЦФАПЧ на базе DDS, и есть лишняя быстрая частота.
gethan
Цитата(SM @ Feb 24 2014, 09:08) *
Есть, если ГУН и фильтр ФАПЧ снаружи поставить. Или частоты у Вас настолько низкие, что можно обойтись ЦФАПЧ на базе DDS, и есть лишняя быстрая частота.

А если всего это нет, то и не получится что ли? Нельзя описать процесс, который увеличивает частоту?((
SM
Цитата(gethan @ Feb 24 2014, 09:16) *
Нельзя описать процесс, который увеличивает частоту?((


Можно, на базе задержек, формируемых на логических элементах/ячейках, описав схему, делающую операцию XOR с прямым и задержанным сигналом. Но это "сопливое" решение, требующее жесткого задания временнЫх ограничений на внутренние пути (что далеко не во всех средах можно адекватно задать), и дающее сигнал со скважностью, далекой от двух.
Dmitriyspb
Цитата(gethan @ Feb 24 2014, 09:16) *
А если всего это нет, то и не получится что ли? Нельзя описать процесс, который увеличивает частоту?((


Вообще, если вы интересуетесь этим для реализации какой-то задачи, тогда PLL. Он для этого и нужен!!!!
А если говорить об извращениях, тогда можно уменьшить период дискретизации путем тактирования устройства как + так и - фронтами тактов.
Ну это все странно как-то.
Для чего вам нужно умножить частоту в ПЛИС не прибегая к поможи PLL?
gethan
Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!Подскажите, для элемента задержки подойдет ли использование нескольких "И-НЕ"?

Цитата(SM @ Feb 24 2014, 09:26) *
Но это "сопливое" решение, требующее жесткого задания временнЫх ограничений на внутренние пути (что далеко не во всех средах можно адекватно задать), и дающее сигнал со скважностью, далекой от двух.

А насколько скважность далека от двух? Правильно ли то,что второй сигнал нужно задержать на четверть периода?)спасибоsm.gif
MrYuran
Цитата(gethan @ Feb 24 2014, 13:37) *
Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!Подскажите, для элемента задержки подойдет ли использование нескольких "И-НЕ"?

Насколько я помню, оптимизатор такие вещи безжалостно выкидывает.
gethan
Цитата(MrYuran @ Feb 24 2014, 13:40) *
Насколько я помню, оптимизатор такие вещи безжалостно выкидывает.

А как тогда быть?(
SM
Цитата(gethan @ Feb 24 2014, 13:37) *
Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!Подскажите, для элемента задержки подойдет ли использование нескольких "И-НЕ"?

Все равно, какие элементы, лишь бы синтезатор их оставил, преобразовав в физическую ячейку ПЛИС, а для этого надо указать какие то атрибуты, смотрите сами, я не знаю как это сделать для конкретного Вашего семейства. Какие нибудь там syn_keep, syn_preserve, и т.п., а лучше вообще сразу примитивы из библиотеки ставить, которые, как черные ящики, не подлежат выкидыванию синтезатором априори.

Цитата(gethan @ Feb 24 2014, 13:37) *
А насколько скважность далека от двух? Правильно ли то,что второй сигнал нужно задержать на четверть периода?)спасибоsm.gif

На столько, на сколько сделаете... Как правило, очень далеко, потому что сигнал не удается разумным количеством ячеек ПЛИС задержать на четверть периода. Ну а достаточно задержать на сколько то, сколько даст длительность импульсов, большую или равную минимально допустимой. Да, констрейнить надо будет именно MINIMUM delay!


Внутри APA300, судя по ее описанию, есть аж ДВЕ PLL, почему их нельзя использовать?
gethan
Цитата(SM @ Feb 24 2014, 14:53) *
Внутри APA300, судя по ее описанию, есть аж ДВЕ PLL, почему их нельзя использовать?

Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?))

Какой элемент задержки подойдет?)
SM
Цитата(gethan @ Feb 24 2014, 15:42) *
Какой элемент задержки подойдет?)


Я же написал, любой - буфер, инвертор, И-НЕ, ИЛИ, и т.д. Сами посмотрите какие там примитивы в библиотеке дают.
Джеймс
Цитата(gethan @ Feb 24 2014, 12:37) *
Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!


Цитата(gethan @ Feb 24 2014, 14:42) *
Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?))

В смысле?? Использование предназначенных для этого функциональных элементов теперь называется "усложнять себе жизнь"?
Или это опять колхозный доморощенный radhard??
Dmitriyspb
Цитата(gethan @ Feb 24 2014, 15:42) *
Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?))

Какой элемент задержки подойдет?)



УВАЖАЕМЫЙ АВТОР ПОСТА!!!! ВЫ ИЩЕТЕ ТО, ОТ ЧЕГО ВЕСЬ МИР УХОДИТ.

Уровень логики все компиляторы стараются снизить по максимуму!!!!!!

Когда Вы подберете необходиму логическую задержку, тогда после очередного перекомпелирования проекта эта задержка изменится и умножитель частоты так же поменяется. Жестко задать уровень логики Вам скорее всего не удасться. Любая среда разработки будет её оптимизировать как только может.

Ваш путь решения задачи не правельный.
SM
Цитата(Dmitriyspb @ Feb 25 2014, 08:58) *
Жестко задать уровень логики Вам скорее всего не удасться. Любая среда разработки будет её оптимизировать как только может.

Это почему не удастся? Если грамотно все делать, то все удастся, любому синтезатору/мапперу можно указать, что нельзя оптимизировать. Только, конечно, решение "сопливое", но имеющее право на существование.
Dmitriyspb
Цитата(SM @ Feb 25 2014, 10:15) *
Это почему не удастся? Если грамотно все делать, то все удастся, любому синтезатору/мапперу можно указать, что нельзя оптимизировать. Только, конечно, решение "сопливое", но имеющее право на существование.


Согласен.
А можно ли синтезатору задать точное время задержки?! Скорее всего нет. Возможно я ошибаюсь. Но я хочу сказать, что запретить отимизацию можно, а вот точно быть уверенным в том, что он будет при каждой перекомпиляции пользоваться все теме же ресурсами плис мне кажется нельзя. Допустим, первый раз он разведет используя n - ячеек в k-ом блоке ПЛИС, а после того как в проект что-то добавят трассировщик решит переразвести топологию ПЛИС уже используя те же ресурсы кристалла но в другом блоке (месте). В результате задержка может остаться неизменной, а может поменяться. Как повезет выходит.

КСТАТИ!=))
Наверняка можно пользоваться ручным размещением блоков в топологии. На подобие того что PlanaHead у Xilinx предлогает.
В общем точно, сопливо и по радиолюбительски=)))
SM
Цитата(Dmitriyspb @ Feb 25 2014, 10:43) *
А можно ли синтезатору задать точное время задержки?!


Чаще можно, реже нельзя (в ISE, например, нельзя, а в Diamond, или во всех asic-средах - можно), и не точное, а диапазон MIN...MAX, так как оно меняется от разных условий PVT. Это констрейны называется, set_max_delay, set_min_delay MAXDELAY с опцией MIN, т.п. Насчет конкретно актеля я не в курсе (поверхностное гугление говорит, что вроде можно, там SDC)...
Dmitriyspb
Цитата(SM @ Feb 25 2014, 11:04) *
Чаще можно, реже нельзя (в ISE, например, нельзя, а в Diamond, или во всех asic-средах - можно), и не точное, а диапазон MIN...MAX, так как оно меняется от разных условий PVT. Это констрейны называется, set_max_delay, set_min_delay MAXDELAY с опцией MIN, т.п. Насчет конкретно актеля я не в курсе (поверхностное гугление говорит, что вроде можно, там SDC)...


Я сужу о всем тут происходящем с точки зрения Xilinx. =)) Наверное поэтому такой подход показался странным..
SM
Цитата(Dmitriyspb @ Feb 25 2014, 11:32) *
Наверное поэтому такой подход показался странным..

Кстати, по идее, достаточно задать только MIN DELAY и MAX DELAY по обоим путям до XOR, а задержку обеспечит уже разводчик сам, ведь тут не важно, как он ее обеспечит (пустив трассу по кругу вокруг кристалла, или понавстявляв буферов), важно чтобы она была.
Dmitriyspb
Цитата(SM @ Feb 25 2014, 11:47) *
Кстати, по идее, достаточно задать только MIN DELAY и MAX DELAY по обоим путям до XOR, а задержку обеспечит уже разводчик сам, ведь тут не важно, как он ее обеспечит (пустив трассу по кругу вокруг кристалла, или понавстявляв буферов), важно чтобы она была.


Согласен.
Вот только что по этому поводу думает автор темы? rolleyes.gif
SM
Цитата(Dmitriyspb @ Feb 25 2014, 12:06) *
Вот только что по этому поводу думает автор темы? rolleyes.gif


Я думаю, что-то типа "нифига какие непонятные слова тут говорят и как много!" rolleyes.gif lol.gif
Dmitriyspb
Цитата(SM @ Feb 25 2014, 12:16) *
Я думаю, что-то типа "нифига какие непонятные слова тут говорят и как много!" rolleyes.gif lol.gif

biggrin.gif

Наверное ожидал конструкцию типа "clk_in * 2 = clk_out " =))))))))))))))))))))))))))))))))))
Torpeda
Цитата(SM @ Feb 25 2014, 11:04) *
Чаще можно, реже нельзя (в ISE, например, нельзя, а в Diamond, или во всех asic-средах - можно), и не точное, а диапазон MIN...MAX, так как оно меняется от разных условий PVT. Это констрейны называется, set_max_delay, set_min_delay MAXDELAY с опцией MIN, т.п. Насчет конкретно актеля я не в курсе (поверхностное гугление говорит, что вроде можно, там SDC)...

...задать-то можно (в смысле команды есть для этого), вот только не факт, что тулза выполнять будет....
MIN...MAX - обычно игнорится оптимизатором (точнее, становится очень низкоприоритетным), а вот только MIN или MAX - есчё может и выполнить...

В этом случае, более-менее стабильно-воспроизводимый результат возможен только при ручной трасировке. Насколько это переносимое решение - не знаю...
Но даже и в этом случае, генератор на буферах будет иметь плохие характеристики особенно в диапазоне PVT...

SM
Цитата(Torpeda @ Feb 25 2014, 13:20) *
...задать-то можно (в смысле команды есть для этого), вот только не факт, что тулза выполнять будет....
MIN...MAX - обычно игнорится оптимизатором (точнее, становится очень низкоприоритетным), а вот только MIN или MAX - есчё может и выполнить...


Да в том и дело, что в ISE нельзя, там минимум можно задать только для холда входного синхронного сигнала, а для внутренних путей, и даже для выходного - нельзя. А в Diamond, например, без проблем, и роутер именно исполняет эти констрейны на этапе оптимизации холдов (специально тестовый проект даже сваял, так как самому интересно).
Corner
Ограничения среды можно обойти через выводы ПЛИС, если задержку реализовать снаружи через RC-цепочку. Два пина и XOR между ними. Годится для частот на которых задержка в пинах меньше половины требуемой.
Dmitriyspb
Цитата(Corner @ Feb 26 2014, 19:02) *
Ограничения среды можно обойти через выводы ПЛИС, если задержку реализовать снаружи через RC-цепочку. Два пина и XOR между ними. Годится для частот на которых задержка в пинах меньше половины требуемой.


Очень сомнительная стабильность будет у такого умножителя.
Если уж вешать к пинам что-то, тогда проще генератор подвесить с нужной частотой=))
Corner
Цитата(Dmitriyspb @ Feb 27 2014, 08:34) *
Очень сомнительная стабильность будет у такого умножителя.
Если уж вешать к пинам что-то, тогда проще генератор подвесить с нужной частотой=))


Стабильность равна исходной. А вот negedge использовать не стоит - джитер конкретный.
Dmitriyspb
Цитата(Corner @ Feb 28 2014, 19:40) *
А вот negedge использовать не стоит - джитер конкретный. Стабильность равна исходной.


biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
джиттер - нежелательные фазовые и/или частотные случайные отклонения передаваемого сигнала. Возникают вследствие нестабильности задающего генератора, изменений параметров линии передачи во времени и различной скорости распространения частотных составляющих одного и того же сигнала.

О КАКОЙ СТАБИЛЬНОСТИ ВЫ ГОВОРИТЕ??????????? Если сами пишите, что джиттер будет велик!!! ПРИ ЧЕМ ТУТ negedge?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.