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

 
 
 
Reply to this topicStart new topic
> Altera Timequest. Констрейны для неизвестного клока, Как описать клок, точное значение которого неизвестно ?
Flip-fl0p
сообщение Mar 20 2018, 10:21
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Приветствую Уважаемые посетители форума !
Собственно имеется внутри FPGA некая схема, содержащая PLL.
PLL настроена таким образом, что у нас опорная частота умножается и делится на некие коэффициенты, которые никогда не меняются. (коэффициенты рассчитаны таким образом, чтобы не превышалась максимальная частота VCO( ГУН) по спецификации на чип).
Но вся проблема в том, что опорный клок у меня может лежать в диапазоне от 25Мгц до 80 Мгц. (т.е иметь любое значение, характерное для значения пиксельной частоты VESA)
Как можно обконстрейнить такой клок ?
Go to the top of the page
 
+Quote Post
Inanity
сообщение Mar 20 2018, 16:05
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Очевидно, что по максимальной частоте, т.е. в вашем случае - 80Мгц, если я правильно понял. Если проект на этой частоте по времянке проходит, то и на 25Мгц всё будет ок.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 20 2018, 17:45
Сообщение #3


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Inanity @ Mar 20 2018, 19:05) *
Очевидно, что по максимальной частоте, т.е. в вашем случае - 80Мгц, если я правильно понял. Если проект на этой частоте по времянке проходит, то и на 25Мгц всё будет ок.

Я пока так и сделал rolleyes.gif
Но есть подозрение, что это не совсем верно. Поскольку вполне может быть так, что из-за того, что пути между регистрами выровнены для максимальной частоты, эти пути могут быть непригодными для минимальной.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Mar 20 2018, 19:22
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(Flip-fl0p @ Mar 20 2018, 20:45) *
Но есть подозрение, что это не совсем верно. Поскольку вполне может быть так, что из-за того, что пути между регистрами выровнены для максимальной частоты, эти пути могут быть непригодными для минимальной.


Нет, почему же? В общем случае должны выполняться требования setup и hold для всех триггеров в схеме. Если это правило выполняется для частоты Fmax, то тем более будет выполняться и для меньших частот.

Есть другой подвох. У вас есть в схеме асинхронные сигналы? Если таковые имеются и переход из одного клокового домена в другой осуществляется через синхронизаторы на регистрах, то при изменении частоты проект может по естественным причинам перестать нормально работать.

Допустим, у вас проект тактируется снаружи частотой в диапазоне 25-80Мгц. Предположим, что на вход приходит единичный асинхронный импульс с длительностью 25нс (40МГц). Вы как положено с помощью синхронизатора делаете этот импульс синхронным для вашей схемы. Пока частота вашей схемы достаточно высока, импульс будет корректно пойман. Но если частота опуститься допустим с 80МГц до 25, то естественно, импульс будет пропущен (или будет ловиться, но иногда, как повезёт). Тоже самое может произойти для выходного сигнала вашей схемы, который будет входом для какого-нибудь другого блока со своей частотой. Короче говоря, за длительностью импульсов надо следить. А если дизайн на 100% синхронный, то при снижении частоты ничего не должно ломаться.

Сообщение отредактировал Inanity - Mar 20 2018, 19:25
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 21 2018, 04:40
Сообщение #5


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Inanity @ Mar 20 2018, 22:22) *
Нет, почему же? В общем случае должны выполняться требования setup и hold для всех триггеров в схеме. Если это правило выполняется для частоты Fmax, то тем более будет выполняться и для меньших частот.

Есть другой подвох. У вас есть в схеме асинхронные сигналы? Если таковые имеются и переход из одного клокового домена в другой осуществляется через синхронизаторы на регистрах, то при изменении частоты проект может по естественным причинам перестать нормально работать.

Допустим, у вас проект тактируется снаружи частотой в диапазоне 25-80Мгц. Предположим, что на вход приходит единичный асинхронный импульс с длительностью 25нс (40МГц). Вы как положено с помощью синхронизатора делаете этот импульс синхронным для вашей схемы. Пока частота вашей схемы достаточно высока, импульс будет корректно пойман. Но если частота опуститься допустим с 80МГц до 25, то естественно, импульс будет пропущен (или будет ловиться, но иногда, как повезёт). Тоже самое может произойти для выходного сигнала вашей схемы, который будет входом для какого-нибудь другого блока со своей частотой. Короче говоря, за длительностью импульсов надо следить. А если дизайн на 100% синхронный, то при снижении частоты ничего не должно ломаться.

Все переходы между доменами я делал через FIFO. А одиночные сигналы я синхронизирую путем handshake, как-раз для того, чтобы не беспокоиться на счет того, что короткий импульс может потеряться.
Я просто как-то на зарубежном форуме натыкался на аналогичную тему про то, как описывать такие клоки, да вот как-то не гуглится теперь эта тема.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 22 2018, 07:51
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Flip-fl0p @ Mar 20 2018, 20:45) *
Я пока так и сделал rolleyes.gif
Но есть подозрение, что это не совсем верно. Поскольку вполне может быть так, что из-за того, что пути между регистрами выровнены для максимальной частоты, эти пути могут быть непригодными для минимальной.


Есть такая штука, как physically exclusive clocks, позволяющая задавать разные тактовые сигналы на одном и том же порту. Если хочется наверняка - можно добавить и 25 и 80 (или вообще целый перечень), хотя смысла, и на мой тоже взгляд, особого нет.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 22 2018, 08:56
Сообщение #7


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(alexadmin @ Mar 22 2018, 10:51) *

Ключи -exclusive, -asynchronous, -logically_exclusive и -physically_exclusive применительно к Альтере работают совершенно одинаково.
Go to the top of the page
 
+Quote Post
dvladim
сообщение Mar 22 2018, 20:03
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(Flip-fl0p @ Mar 20 2018, 13:21) *
PLL настроена таким образом, что у нас опорная частота умножается и делится на некие коэффициенты, которые никогда не меняются. (коэффициенты рассчитаны таким образом, чтобы не превышалась максимальная частота VCO( ГУН) по спецификации на чип).
Но вся проблема в том, что опорный клок у меня может лежать в диапазоне от 25Мгц до 80 Мгц. (т.е иметь любое значение, характерное для значения пиксельной частоты VESA)

ИМХО такая схема вообще не будет работать. В большинстве случаев PLL в ПЛИС не позволит использовать такой диапазон входных частот без перестройки коэффициентов. Т.к. диапазон VCO будет выходить за допустимые пределы.
Ну например: Cyclone IV Fvco = 600-1300 МГц. Т.е. перекрытие 2.16 раз, а нужно 25-80 МГц, т.е. 3.2 раза.
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Mar 23 2018, 08:04
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(dvladim @ Mar 22 2018, 23:03) *
ИМХО такая схема вообще не будет работать. В большинстве случаев PLL в ПЛИС не позволит использовать такой диапазон входных частот без перестройки коэффициентов. Т.к. диапазон VCO будет выходить за допустимые пределы.
Ну например: Cyclone IV Fvco = 600-1300 МГц. Т.е. перекрытие 2.16 раз, а нужно 25-80 МГц, т.е. 3.2 раза.


А КАК ПЛИС узнает, что на её вход подали именно 25 МГц, а не 40 или 80?
Если проект разводится на 80 МГЦ, то 25 работать будут! Можно прогнать TimeQuest на минимальную частоту и на максимальную, не компилируя при это сам проект! Если slack отсутствуют - то все работать будет!


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 23 2018, 08:07
Сообщение #10


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(dvladim @ Mar 22 2018, 23:03) *
ИМХО такая схема вообще не будет работать. В большинстве случаев PLL в ПЛИС не позволит использовать такой диапазон входных частот без перестройки коэффициентов. Т.к. диапазон VCO будет выходить за допустимые пределы.
Ну например: Cyclone IV Fvco = 600-1300 МГц. Т.е. перекрытие 2.16 раз, а нужно 25-80 МГц, т.е. 3.2 раза.

Это если VCO выходит за разумные пределы rolleyes.gif
В моем случае коэффициенты PLL подобраны таким образом, чтобы частота VCO не выходила за пределы спецификации.

Например:
У меня Cyclone V SEMA5F31C6
По спецификации максимальная частота VCO 1600 Мhz
На вход FPGA подается видеосигнал VESA 800x600 60 Hz pixel_clk 40 Mhz

pixel_clk я применяю в качестве опорного клока
На PLL я получаю частоту VCO путем умножения опорного клока (который как раз и неизвестен - т.е может быть разным в зависимости от разрешения видеосигнала) на 10.
А остальные частоты получаю делением этой частоты.
В моем случае я получаю частоты:

VGA_clk - равный частоте опорного клока т.е делю частоту VCO на 10.
RX0_clk - частота в 5 раз выше опорного клока для DDR регистров - т.е делю частоту на 2
RX1_clk - частота в 5 раз выше опорного клока для DDR регистров - т.е делю частоту на 2
RX2_clk - частота в 5 раз выше опорного клока для DDR регистров - т.е делю частоту на 2

Данные коэффициенты у меня никогда не меняются. Таким образом я покрываю все возможные разрешения VESA, где скорость передачи данных не выше 800 Mb/s (частота pixel_clk не больше 80 Mhz). Т.к основное ограничение накладывают LVDS приёмники, которые ограничены приемом 800 Mb/s т.е (DDR клоком в 400 Мгц). И частота VCO у меня никогда не превышает максимальную.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 23 2018, 09:21
Сообщение #11


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Flip-fl0p @ Mar 23 2018, 11:07) *
И частота VCO у меня никогда не превышает максимальную.

А минимальная Fvco какая? Обычно они работают примерно на октаву.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 23 2018, 10:16
Сообщение #12


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(_Anatoliy @ Mar 23 2018, 12:21) *
А минимальная Fvco какая? Обычно они работают примерно на октаву.

Хм... После Вашего вопроса решил ещё раз глянуть datasheet. Там написано что Fvco min 600 Мгц.... Странно.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 23 2018, 10:35
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Flip-fl0p @ Mar 23 2018, 13:16) *
Хм... После Вашего вопроса решил ещё раз глянуть datasheet. Там написано что Fvco min 600 Мгц.... Странно.

Не странно, а обычно примерно так и есть. Меняйте консерваторию.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Mar 23 2018, 10:57
Сообщение #14


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(_Anatoliy @ Mar 23 2018, 13:35) *
Не странно, а обычно примерно так и есть. Меняйте консерваторию.

Странно что такое ограничение в даташите. Сейчас специально проверил. Сам Quartus поставил коэффициенты там, что частота VCO получается 400 Мгц. Где-то я не то прочитал.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 23 2018, 11:56
Сообщение #15


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Flip-fl0p @ Mar 23 2018, 13:57) *
Странно что такое ограничение в даташите. Сейчас специально проверил. Сам Quartus поставил коэффициенты там, что частота VCO получается 400 Мгц. Где-то я не то прочитал.

смотрите в даташите:

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 06:03
Рейтинг@Mail.ru


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