|
умножение частоты, как сделать |
|
|
|
Feb 23 2014, 19:51
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Всем привет! Может это покажется многим легким, но подскажите,как реализовать (или где прочесть) умножение частоты? подразумевается,что необходимо получить, скажем частоту в два раза большую,чем тактовая.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 28)
|
Feb 24 2014, 04:57
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Цитата(garlands @ Feb 24 2014, 01:29)  Спасибо большое! Есть ли способ написания отдельного блока,выполняющего функцию PLL, но на логических элементах ПЛИС?)
|
|
|
|
|
Feb 24 2014, 05:16
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Цитата(SM @ Feb 24 2014, 09:08)  Есть, если ГУН и фильтр ФАПЧ снаружи поставить. Или частоты у Вас настолько низкие, что можно обойтись ЦФАПЧ на базе DDS, и есть лишняя быстрая частота. А если всего это нет, то и не получится что ли? Нельзя описать процесс, который увеличивает частоту?((
|
|
|
|
|
Feb 24 2014, 05:26
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

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

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(gethan @ Feb 24 2014, 09:16)  А если всего это нет, то и не получится что ли? Нельзя описать процесс, который увеличивает частоту?(( Вообще, если вы интересуетесь этим для реализации какой-то задачи, тогда PLL. Он для этого и нужен!!!! А если говорить об извращениях, тогда можно уменьшить период дискретизации путем тактирования устройства как + так и - фронтами тактов. Ну это все странно как-то. Для чего вам нужно умножить частоту в ПЛИС не прибегая к поможи PLL?
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
|
Feb 24 2014, 09:37
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!Подскажите, для элемента задержки подойдет ли использование нескольких "И-НЕ"? Цитата(SM @ Feb 24 2014, 09:26)  Но это "сопливое" решение, требующее жесткого задания временнЫх ограничений на внутренние пути (что далеко не во всех средах можно адекватно задать), и дающее сигнал со скважностью, далекой от двух. А насколько скважность далека от двух? Правильно ли то,что второй сигнал нужно задержать на четверть периода?)спасибо
|
|
|
|
|
Feb 24 2014, 10:42
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Цитата(MrYuran @ Feb 24 2014, 13:40)  Насколько я помню, оптимизатор такие вещи безжалостно выкидывает. А как тогда быть?(
|
|
|
|
|
Feb 24 2014, 10:53
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(gethan @ Feb 24 2014, 13:37)  Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис!Подскажите, для элемента задержки подойдет ли использование нескольких "И-НЕ"? Все равно, какие элементы, лишь бы синтезатор их оставил, преобразовав в физическую ячейку ПЛИС, а для этого надо указать какие то атрибуты, смотрите сами, я не знаю как это сделать для конкретного Вашего семейства. Какие нибудь там syn_keep, syn_preserve, и т.п., а лучше вообще сразу примитивы из библиотеки ставить, которые, как черные ящики, не подлежат выкидыванию синтезатором априори. Цитата(gethan @ Feb 24 2014, 13:37)  А насколько скважность далека от двух? Правильно ли то,что второй сигнал нужно задержать на четверть периода?)спасибо  На столько, на сколько сделаете... Как правило, очень далеко, потому что сигнал не удается разумным количеством ячеек ПЛИС задержать на четверть периода. Ну а достаточно задержать на сколько то, сколько даст длительность импульсов, большую или равную минимально допустимой. Да, констрейнить надо будет именно MINIMUM delay! Внутри APA300, судя по ее описанию, есть аж ДВЕ PLL, почему их нельзя использовать?
|
|
|
|
|
Feb 24 2014, 11:42
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Цитата(SM @ Feb 24 2014, 14:53)  Внутри APA300, судя по ее описанию, есть аж ДВЕ PLL, почему их нельзя использовать? Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?)) Какой элемент задержки подойдет?)
|
|
|
|
|
Feb 24 2014, 12:12
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399

|
Цитата(gethan @ Feb 24 2014, 12:37)  Работаю с АРА300,нет возможности использовать доп девайсы для PLL ((нужно сделать именно внутри плис! Цитата(gethan @ Feb 24 2014, 14:42)  Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?)) В смысле?? Использование предназначенных для этого функциональных элементов теперь называется "усложнять себе жизнь"? Или это опять колхозный доморощенный radhard??
|
|
|
|
|
Feb 25 2014, 04:58
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(gethan @ Feb 24 2014, 15:42)  Ну а если все же усложнить себе жизнь и не использовать ничего встроенного и навесного?))
Какой элемент задержки подойдет?) УВАЖАЕМЫЙ АВТОР ПОСТА!!!! ВЫ ИЩЕТЕ ТО, ОТ ЧЕГО ВЕСЬ МИР УХОДИТ. Уровень логики все компиляторы стараются снизить по максимуму!!!!!! Когда Вы подберете необходиму логическую задержку, тогда после очередного перекомпелирования проекта эта задержка изменится и умножитель частоты так же поменяется. Жестко задать уровень логики Вам скорее всего не удасться. Любая среда разработки будет её оптимизировать как только может. Ваш путь решения задачи не правельный.
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
|
Feb 25 2014, 06:43
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(SM @ Feb 25 2014, 10:15)  Это почему не удастся? Если грамотно все делать, то все удастся, любому синтезатору/мапперу можно указать, что нельзя оптимизировать. Только, конечно, решение "сопливое", но имеющее право на существование. Согласен. А можно ли синтезатору задать точное время задержки?! Скорее всего нет. Возможно я ошибаюсь. Но я хочу сказать, что запретить отимизацию можно, а вот точно быть уверенным в том, что он будет при каждой перекомпиляции пользоваться все теме же ресурсами плис мне кажется нельзя. Допустим, первый раз он разведет используя n - ячеек в k-ом блоке ПЛИС, а после того как в проект что-то добавят трассировщик решит переразвести топологию ПЛИС уже используя те же ресурсы кристалла но в другом блоке (месте). В результате задержка может остаться неизменной, а может поменяться. Как повезет выходит. КСТАТИ!=)) Наверняка можно пользоваться ручным размещением блоков в топологии. На подобие того что PlanaHead у Xilinx предлогает. В общем точно, сопливо и по радиолюбительски=)))
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
|
Feb 25 2014, 07:04
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

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

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(SM @ Feb 25 2014, 11:04)  Чаще можно, реже нельзя (в ISE, например, нельзя, а в Diamond, или во всех asic-средах - можно), и не точное, а диапазон MIN...MAX, так как оно меняется от разных условий PVT. Это констрейны называется, set_max_delay, set_min_delay MAXDELAY с опцией MIN, т.п. Насчет конкретно актеля я не в курсе (поверхностное гугление говорит, что вроде можно, там SDC)... Я сужу о всем тут происходящем с точки зрения Xilinx. =)) Наверное поэтому такой подход показался странным..
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
|
Feb 25 2014, 07:47
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Dmitriyspb @ Feb 25 2014, 11:32)  Наверное поэтому такой подход показался странным.. Кстати, по идее, достаточно задать только MIN DELAY и MAX DELAY по обоим путям до XOR, а задержку обеспечит уже разводчик сам, ведь тут не важно, как он ее обеспечит (пустив трассу по кругу вокруг кристалла, или понавстявляв буферов), важно чтобы она была.
|
|
|
|
|
Feb 25 2014, 08:06
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(SM @ Feb 25 2014, 11:47)  Кстати, по идее, достаточно задать только MIN DELAY и MAX DELAY по обоим путям до XOR, а задержку обеспечит уже разводчик сам, ведь тут не важно, как он ее обеспечит (пустив трассу по кругу вокруг кристалла, или понавстявляв буферов), важно чтобы она была. Согласен. Вот только что по этому поводу думает автор темы?
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
|
Feb 25 2014, 09:20
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Цитата(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...
|
|
|
|
|
Feb 25 2014, 09:29
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Torpeda @ Feb 25 2014, 13:20)  ...задать-то можно (в смысле команды есть для этого), вот только не факт, что тулза выполнять будет.... MIN...MAX - обычно игнорится оптимизатором (точнее, становится очень низкоприоритетным), а вот только MIN или MAX - есчё может и выполнить... Да в том и дело, что в ISE нельзя, там минимум можно задать только для холда входного синхронного сигнала, а для внутренних путей, и даже для выходного - нельзя. А в Diamond, например, без проблем, и роутер именно исполняет эти констрейны на этапе оптимизации холдов (специально тестовый проект даже сваял, так как самому интересно).
|
|
|
|
|
Feb 27 2014, 04:34
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(Corner @ Feb 26 2014, 19:02)  Ограничения среды можно обойти через выводы ПЛИС, если задержку реализовать снаружи через RC-цепочку. Два пина и XOR между ними. Годится для частот на которых задержка в пинах меньше половины требуемой. Очень сомнительная стабильность будет у такого умножителя. Если уж вешать к пинам что-то, тогда проще генератор подвесить с нужной частотой=))
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|