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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Перенос данных между доменами
MegaVolt
сообщение May 30 2018, 13:37
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 730
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Делители на 2 и на 4 синхронные между собой?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 30 2018, 15:07
Сообщение #17


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

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



Цитата(MegaVolt @ May 30 2018, 16:37) *
Делители на 2 и на 4 синхронные между собой?

Клок 275МГц используется ещё для приёма данных DDR из АЦП, поэтому режим работы PLL - source-synchronous. Делителей как таковых нет, только PLL.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение May 30 2018, 17:05
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 730
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(_Anatoliy @ May 30 2018, 18:07) *
Клок 275МГц используется ещё для приёма данных DDR из АЦП, поэтому режим работы PLL - source-synchronous. Делителей как таковых нет, только PLL.
В смысле две PLLки работают от одной опорной частоты с разными коэффициентами умножения?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 31 2018, 02:47
Сообщение #19


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

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



Цитата(MegaVolt @ May 30 2018, 20:05) *
В смысле две PLLки работают от одной опорной частоты с разными коэффициентами умножения?

Почему две? Одна с выходными клоками 275 и 137,5МГц.
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jun 1 2018, 18:06
Сообщение #20


Знающий
****

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



И все-таки по поводу sdc: вы бы привели его здесь.
Там все что нужно прописано? Всякие derive_clock_uncertainty derive_pll_clocks ?
Go to the top of the page
 
+Quote Post
Inanity
сообщение Jun 1 2018, 20:50
Сообщение #21


Местный
***

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



_Anatoliy, если я правильно понял, то вы пытаетесь сделать децимацию просто уменьшив частоту шины в 2 раза. Шина бьётся, поскольку 137.5MHz домен защёлкивает данные которые в этот момент меняются в 275MHz домене:



Решение проблемы очень простое. Нужно саму децимацию сделать в 275MHz домене, просто отбрасывая каждый второй отчёт. Шина данных DATA_DEC будет переключаться в 2 раза медленнее. Теперь можно перепрыгнуть в другой домен (только частоту 137.5MHz на PLL нужно будет инвертировать). Переход будет безопасным, т.к. активный фронт 137.5MHz частоты будет посередине активной фазы на шине данных:



STA надо будет предупредить, чтобы он этот переход не анализировал.

Сообщение отредактировал Inanity - Jun 1 2018, 21:03
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 2 2018, 08:01
Сообщение #22


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

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



Цитата(dvladim @ Jun 1 2018, 21:06) *
И все-таки по поводу sdc: вы бы привели его здесь.
Там все что нужно прописано? Всякие derive_clock_uncertainty derive_pll_clocks ?

1). Если в задании отсутствует команда derive_clock_uncertainty то Квартус выполняет её автоматически, о чём сообщает в репорте.
2). Я пользуюсь командой derive_pll_clocks однократно - при создании проекта(ну или при полной пересборке). Мне не нравятся имена, которые эта команда присваивает клокам. Предпочитаю сам назначать удобные мне имена.
3). Мультициклы в данном случае объявлять не нужно.
А это описание клоков:
Код
create_generated_clock -source {spll2|pll2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|refclkin} -divide_by 2 -multiply_by 10 -duty_cycle 50.00 -name {spll2|pll2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]} {spll2|pll2_inst|altera_pll_i|general[0].gpll~FRACTIONAL_PLL|vcoph[0]}
create_generated_clock -source {spll2|pll2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|vco1ph[0]} -divide_by 5 -phase 161.98 -duty_cycle 50.00 -name {clk275} {spll2|pll2_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}
create_generated_clock -source {spll2|pll2_inst|altera_pll_i|general[2].gpll~PLL_OUTPUT_COUNTER|vco1ph[0]} -divide_by 10 -phase 80.98 -duty_cycle 50.00 -name {clk137_5} {spll2|pll2_inst|altera_pll_i|general[2].gpll~PLL_OUTPUT_COUNTER|divclk}


Цитата(Inanity @ Jun 1 2018, 23:50) *
Решение проблемы очень простое. Нужно саму децимацию сделать в 275MHz домене, просто отбрасывая каждый второй отчёт. Шина данных DATA_DEC будет переключаться в 2 раза медленнее. Теперь можно перепрыгнуть в другой домен (только частоту 137.5MHz на PLL нужно будет инвертировать). Переход будет безопасным, т.к. активный фронт 137.5MHz частоты будет посередине активной фазы на шине данных:

А чем Вам не нравится первая картинка? Если сетапы и холды выдержаны то всё будет работать на ура. STA мне сообщает что выдержаны.
Конечно во втором случае запас по сетапу будет гораздо больше.
Цитата(Inanity @ Jun 1 2018, 23:50) *
STA надо будет предупредить, чтобы он этот переход не анализировал.

Почему? Пусть анализирует. Но в этом случае уже понадобится описание мультициклов.
p.s. После установки полифазного варианта децимирующего фильтра эта проблема ушла.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Jun 2 2018, 09:45
Сообщение #23


Местный
***

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



Цитата(_Anatoliy @ Jun 2 2018, 11:01) *
А чем Вам не нравится первая картинка? Если сетапы и холды выдержаны то всё будет работать на ура. STA мне сообщает что выдержаны.
Конечно во втором случае запас по сетапу будет гораздо больше.

Верю, что и первый вариант может работать. Просто реализация второго варианта требует всего 21 триггер (20 бит - шина + 1 для enable чёт/нечёт) и инверсию клока 137.5MHz, что практически ничего не стоит по ресурсам. Таким образом компилятор будет меньше напрягаться с выдерживанием строгих таймингов, вы улучшите переносимость кода (будет работать и на медленных ПЛИСах).

Цитата(_Anatoliy @ Jun 2 2018, 11:01) *
Почему? Пусть анализирует. Но в этом случае уже понадобится описание мультициклов.

Да, согласен, лучше так.

P.S. и да, справедливости ради, товарищ yes первый предложил эту мысль, просто я не внимательно прочитал.
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jun 2 2018, 16:07
Сообщение #24


Знающий
****

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



Цитата(_Anatoliy @ Jun 2 2018, 11:01) *
2). Мне не нравятся имена, которые эта команда присваивает клокам. Предпочитаю сам назначать удобные мне имена.
3). Мультициклы в данном случае объявлять не нужно.

Что ж удобные имена это действительно удобно. Однако, в вашем описании клоков есть -phase 161.98 -phase 80.98. Насколько это верно?
Может имеет смысл попробовать с derive_pll_clocks? Правильно ли вы описали клоки? Если будут отличия - то это и будет вопрос отличий.
Что касается мультициклов, то как я понял, у вас времянка сходится, а работает не так как ожидается. Т.е. мультициклы ни при чем.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 3 2018, 04:52
Сообщение #25


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

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



Цитата(dvladim @ Jun 2 2018, 19:07) *
Что ж удобные имена это действительно удобно. Однако, в вашем описании клоков есть -phase 161.98 -phase 80.98. Насколько это верно?

На этих клоках ещё много чего работает, фазовый сдвиг для клока 275Мгц выбирался из соображений стыковки с другими блоками. Частоты 275Мгц и 137,5МГц отличаются в два раза, следовательно если сделать сдвиг для 137,5МГц в два раза меньше то разность фаз клоков будет равна нулю.
Цитата(dvladim @ Jun 2 2018, 19:07) *
Может имеет смысл попробовать с derive_pll_clocks? Правильно ли вы описали клоки? Если будут отличия - то это и будет вопрос отличий.

Отличий быть не может в принципе, т.к. описания клоков я беру из репорта STA при объявленном derive_pll_clocks, потом только меняю имена.

Цитата(dvladim @ Jun 2 2018, 19:07) *
Что касается мультициклов, то как я понял, у вас времянка сходится, а работает не так как ожидается. Т.е. мультициклы ни при чем.

Не понял Вашу логику. Я же выше сказал что мультициклы для моего случая объявлять не нужно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th August 2018 - 08:43
Рейтинг@Mail.ru


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