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

 
 
> Схема тактирования всех MCB Spartan-6 от одного тактового источника
ZZZRF413
сообщение Jan 27 2015, 13:41
Сообщение #1


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Всем доброго дня! sm.gif
Посоветуйте пожалуйста по следующему вопросу. Есть плата с Xilinx Spartan-6 FPGA (XC6SLX100T-3FGG676C). Необходимо задействовать все четыре Memory Controller Block от одного тактового сигнала. К 2 MCB подключена память DDR2 800 Mb/s (400 MHz), а к другим двум подключена память LPDDR 400 Mb/s (200 MHz). На ПЛИС заводиться тактовый сигнал 400 МГц.
В User guides я схемы не нашел. Там все просто: частота cX_sys_clk для каждого MCB (или группы из 2) заводиться "с улицы". В IP ядро соответственно встроен IBUFG. Опытным путем я пришел к следующей схеме:
1) Убрал из IP буфер IBUFG перед PLL
2) Подал входную частоту на DCM_SP. Поскольку 400 МГц превышает максимальную входную частоту DCM пришлось задействовать параметр CLKIN_DIVIDE_BY_2. Получилась на выходе частота 200 МГц
3) C этого DCM_SP через BUFG подал частоту на два других DCM_SP, которые располагаются рядом с PLL. Соответственно с этих DCM_SP завел на соответствующий PLL.
4) Поскольку частота разные скорректировал для параметры IP для DDR2 (контроллеры C3 и C4).

Схема в приложении
Проект проходит P&R (трассируется), но по таймингам не проходит(см. приложение). В проекте контроллер LPDDR (контроллеры C5 и C1) не задействован, синтезируется только схема калибровки.
Если DCM_SP не ставить проект не проходит P&R (не трассируется).

Собственно вопрос как побороть эту проблему?
Я вот думаю у меня задан тайминг на входную тактовую частоту, а для остальных ISE сам прописывает. Может там что-нибудь не так и на самом деле все ок? Мне бы не хотелось бы гонятся за черной кошкой в черной комнате...
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ZZZRF413
сообщение Jan 28 2015, 07:19
Сообщение #2


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

Группа: Участник
Сообщений: 115
Регистрация: 26-07-09
Из: Нижний Новгород
Пользователь №: 51 578



Цитата(Opex @ Jan 27 2015, 18:59) *
Зачем такие сложности? Одна нужная частота сразу заводится, вторая делением на 2 получается. Поделить без DCM можно через BUFIO2.



Цитата(Timmy @ Jan 27 2015, 20:34) *
Судя по отчёту трассировщика, вы сконфигурировали MCB на 666МГц, но пытаетесь разгонять его до 800. Чтобы конфигурировать на 800, надо ставить галку "Use extended MCB perfomance range"(если эти условия на самом деле выполняютсяsm.gif).

И не понятно, зачем потребовались DCM. 100МГц для логики можно снять с одного из PLL, обслуживающих память, а 400МГц заводить на оба PLL прямо через BUFG.


Спасибо! Я разобрался почему проект не проходил P&R (не трассировался). Тактовый сигнал заводиться через IBUFGDS в банке 2. А я напрямую с него подавал на тактовый вход PLL находящиеся в других банка. Убрал DCM_SP и добавил BUFG после IBUFGDS и стал проходил P&R (трассироваться). Но проблемы с таймингами остались.

MCB я конфигурировал на 800 МГц. Галочку "Use extended MCB perfomance range" я поставил. На плате физически напряжение ядра 1,26 В. А как можно проверить сгенерировал ли MIG с учетом этой опции? В сгенерированых *.vhd файла есть информация об этом? Может быть ещё где-нибудь этот режим надо прописывать?
А ещё мне не нравиться то, что он ругается на тайминг TS_Memory_memc5_infrastructure*, который относится к контроллеру С5 памяти LPDDR работающей на 400 МГц...
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jan 28 2015, 07:54
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(ZZZRF413 @ Jan 28 2015, 10:19) *
MCB я конфигурировал на 800 МГц. Галочку "Use extended MCB perfomance range" я поставил. На плате физически напряжение ядра 1,26 В. А как можно проверить сгенерировал ли MIG с учетом этой опции? В сгенерированых *.vhd файла есть информация об этом? Может быть ещё где-нибудь этот режим надо прописывать?
А ещё мне не нравиться то, что он ругается на тайминг TS_Memory_memc5_infrastructure*, который относится к контроллеру С5 памяти LPDDR работающей на 400 МГц...

Это надо посмотреть в сгенерированном UCF файле, лежащем в "user_design/par/". Возможно, вы на LPDDR контроллер подаёте в два раза большую частоту, чем он ждёт.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 07:36
Рейтинг@Mail.ru


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