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

 
 
> При добавлении DDR2 UniPHY слетают тайминги, Cyclone V, Quartus 14
DmitryR
сообщение Jan 8 2015, 15:05
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Столкнулся со следующей проблемой. Есть некоторый дизайн, в нём одна PLL (плюс ещё пачка CDR в трансиверах, но не о них речь). Эта PLL генерирует несколько частот, например 125 МГц. В SDC файле написано тупо:
- derive_pll_clocks,
- derive_clock_uncertainty,
- плюс ещё буквально несколько строк объявлений false paths between clocks.

Проект копмилируется и нормально укладывается во времянку.

Потом я добавляю в проект контроллер DDR2 UniPHY. И времянка всего проекта разваливается, так как TimeQuest начинает вдруг считать, что у клока, который в PLL объявлен, как 125МГц период должен быть не 8нс, а 3.2нс! Контроллер UniPHY синтезирован без шаринга PLL, в качестве референсной ему подаётся частота с отдельного выхода той же PLL. DRAM применяю далеко не первый раз, последний раз на Cyclone IV, но такого ни разу не случалось.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Full41
сообщение Jan 30 2015, 14:15
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 309
Регистрация: 31-03-08
Из: САНКТ-ПЕТЕРБУРГ
Пользователь №: 36 375



У меня такая же проблема на плате стоит Cyclone V. Имеется два контроллера DDR2, собираю проект в Quartus 14.1.1, а Timing Analyzer не проходит. Хотя иногда получалось без ошибок, но почему так и не понял.
Нашли решение?
Go to the top of the page
 
+Quote Post
dinam
сообщение May 18 2017, 05:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Подниму тему.
Чтение документации и форумов, моделирование и чтение отчетов Quartus привели к неожиданной для меня проблеме. Пытаюсь осилить DDR3 SDRAM Hard Controller для CycloneV на 333 МГц. Оказывается данные подающиеся на контроллер DDR3 тактируются с частотой, подаваемой на внешнюю ногу входа PLL контроллера DDR3. Т. е. по задумке разработчиков из Intel(Altera) я должен подавать данные синхронно со внешней частотой, а это жутко неудобно. Вот что, например, отвечает support. Quartus выдаёт сообщения типа такого. Предлагаются способы типа такого или использование примитива или The DDR3 clock hack. Последний способ, не разобрался как применить sad.gif .
Не могу сообразить как всё таки правильнее писать данные в DDR3, получаемые с быстрого последовательного интерфейса скажем 830 Mbps. Т.е. тактовая частота 415 МГц. Есть ли какой-нибудь пример дизайна, разработанного самой Altera, чтобы посмотреть как они преодолевают созданную самой же Altera проблему. Ну или поделитесь собственным опытом в этом вопросе sm.gif .
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение May 18 2017, 08:49
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Цитата(dinam @ May 18 2017, 08:17) *
Подниму тему.
Чтение документации и форумов, моделирование и чтение отчетов Quartus привели к неожиданной для меня проблеме. Пытаюсь осилить DDR3 SDRAM Hard Controller для CycloneV на 333 МГц. Оказывается данные подающиеся на контроллер DDR3 тактируются с частотой, подаваемой на внешнюю ногу входа PLL контроллера DDR3. Т. е. по задумке разработчиков из Intel(Altera) я должен подавать данные синхронно со внешней частотой, а это жутко неудобно.
...

Вы должны подавать данные синхронно с выходной частотой PLL(afi_half_clk или afi_clk), которая внутри DDR контроллера, а не с внешней частотой. Если у вас QSYS, то можете свой master тактировать от любой частоты, QSYS сам вставит логику для перехода между клоковыми доменами. Но я стараюсь все мастера на шине DDR заставить рабoтать на afi_half_clk, чтобы лишних переходов не было
Go to the top of the page
 
+Quote Post
dinam
сообщение May 18 2017, 09:09
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(Burenkov Sergey @ May 18 2017, 15:49) *
Вы должны подавать данные синхронно с выходной частотой PLL(afi_half_clk или afi_clk), которая внутри DDR контроллера, а не с внешней частотой. Если у вас QSYS, то можете свой master тактировать от любой частоты, QSYS сам вставит логику для перехода между клоковыми доменами. Но я стараюсь все мастера на шине DDR заставить рабoтать на afi_half_clk, чтобы лишних переходов не было
Ещё раз проверил на тестовом примере. Данные пишутся и читаются синхронно с частотой pll_ref_clk. Вы точно говорите про Hard Controller? С soft насколько я помню при моделировании тестового примера у меня было всё по другому и скорее всего как вы говорите.
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение May 18 2017, 09:26
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Цитата(dinam @ May 18 2017, 12:09) *
Ещё раз проверил на тестовом примере. Данные пишутся и читаются синхронно с частотой pll_ref_clk. Вы точно говорите про Hard Controller? С soft насколько я помню при моделировании тестового примера у меня было всё по другому и скорее всего как вы говорите.

hard или soft не имеет значение, принцип тот же самый. Вы QSYS используете?
Go to the top of the page
 
+Quote Post
dinam
сообщение May 18 2017, 09:35
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(Burenkov Sergey @ May 18 2017, 16:26) *
hard или soft не имеет значение, принцип тот же самый. Вы QSYS используете?
Нет QSYS не применяю. Странно. У меня имеет принципиальное значение. Вот нашел своё старое сообщение.
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение May 18 2017, 09:49
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



Цитата(dinam @ May 18 2017, 12:35) *
Нет QSYS не применяю. Странно. У меня имеет принципиальное значение. Вот нашел своё старое сообщение.

А, у вас видимо на mp_cmd_clk_xx заведен тот же клок что и на pll_ref_clk. Вот альтеровский реф дизайн, где они так же делают.
http://www.alterawiki.com/wiki/Reference_D...ed_for_User_ECC

Я для этого использую afi_half_clk, где-то в примерах работы с видео я именно такое решение видел
Go to the top of the page
 
+Quote Post
dinam
сообщение May 18 2017, 10:20
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Промоделировал тестовый пример. Вы правы mp_cmd_clk_0_clk совпадает с pll_ref_clk. Спасибо за наводку. Буду дальше разбираться.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DmitryR   При добавлении DDR2 UniPHY слетают тайминги   Jan 8 2015, 15:05
- - novartis   Посмотрите в альтеровской базе, например, по ссылк...   Jan 8 2015, 17:11
|- - DmitryR   Цитата(novartis @ Jan 8 2015, 21:11) Они ...   Jan 9 2015, 07:33
- - sast777   Quartus 14.1, Cyclone V, (5CEFA5F23), самостройная...   Jan 8 2015, 19:20
- - des00   Может быть эта корка свой sdc подсовывает после ос...   Jan 9 2015, 08:17
|- - DmitryR   Очевиндно, но это явный косяк - не должна корка ни...   Jan 9 2015, 08:20
|- - blackfin   Цитата(DmitryR @ Jan 9 2015, 11:20) Очеви...   Jan 9 2015, 09:00
|- - DmitryR   Цитата(blackfin @ Jan 9 2015, 13:00) В до...   Jan 9 2015, 09:32
|- - DmitryR   А у меня такой ещё вопрос: в TimeQuest есть какой-...   Jan 9 2015, 11:52
|- - des00   Цитата(DmitryR @ Jan 9 2015, 19:52) А у м...   Jan 9 2015, 14:11
|- - Timmy   Цитата(DmitryR @ Jan 9 2015, 14:52) А у м...   Jan 10 2015, 10:03
|- - DmitryR   Цитата(Timmy @ Jan 10 2015, 13:03) В Time...   Jan 12 2015, 11:11
|- - DmitryR   Вобщем, кроме отказа от derive_pll_clocks и описан...   Jan 12 2015, 14:36
- - Kuzmi4   2 DmitryR тут без Qsys не получится, выложите Qsy...   Jan 9 2015, 08:40
|- - DmitryR   Цитата(Kuzmi4 @ Jan 9 2015, 12:40) выложи...   Jan 9 2015, 08:45
- - krux   а что происходит если убрать pll_0? собирается?   Jan 9 2015, 12:32
|- - DmitryR   Цитата(krux @ Jan 9 2015, 16:32) а что пр...   Jan 9 2015, 12:39
- - krux   а с pll_0 получается только 125 или ещё какие-то ч...   Jan 9 2015, 13:03
|- - DmitryR   Цитата(krux @ Jan 9 2015, 16:03) а с pll_...   Jan 9 2015, 16:02
|- - dinam   Burenkov Sergey Большое спасибо! Всё получилос...   May 22 2017, 01:55
- - Golikov A.   ну вроде как в описании написано The ALTMEMPHY meg...   May 18 2017, 06:43
|- - dinam   В том, то и дело, что при каскадировании PLL, слет...   May 18 2017, 07:26
- - Golikov A.   not support PLL cascading using the global and reg...   May 18 2017, 07:32
- - dinam   Ну значит это не мой случай. Но факт остаётся факт...   May 18 2017, 08:21


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:58
Рейтинг@Mail.ru


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