Jump to content

    

Cyclone II и SDRAM

Добрый день. Есть проект, работающий на отладочной плате (Terrasic DE1).

Есть изготовленная плата устройства. Отличий не много, но они есть:

На отладочнике стоит EP2C20 в bga, на устройстве EP2C8 в tqfp.

На отладочнике cтоит SDRAM 64 Mbit, на устройстве 128 Mbit.

Вроде бы, изменения не смертельные.

Но на устройстве не удается ничего запустить из SDRAM - при запуске через Debug в NIOS IDE ругается на ошибки верификации памяти.

Сделал проект с запуском из onchip memory, прогнал тест SDRAM - все в норме, ошибок нет, хотя, если быть честным, у меня есть вопросы к тесту, но это в следующий раз.

И вот вопрос - если та SDRAM, что я впаял в устройство (MT48LC8M16A2) слишком быстрая (она на 167 МегаГорцев, а система крутится на 50-ти, сможет ли она там заработать, и если да, то что надо исправить?

Share this post


Link to post
Share on other sites

Причин может быть масса.

От плохого питания до ошибок в дизайне.

ИМХО в первую очередь надо смотреть разводку и назначение ног, настройку регенерации.

В тесте проверьте используется ли при записи/чтении из SDRAM кеш.

Share this post


Link to post
Share on other sites
ИМХО в первую очередь надо смотреть разводку и назначение ног, настройку регенерации.

В тесте проверьте используется ли при записи/чтении из SDRAM кеш.

 

Ноги все прошлую неделю смотрел и пересматривал, а про регенерацию, как раз мне и хотелось бы понять. Возможно, надо было по другому вопрос формулировать.

Это первая моя система на ПЛИС, потому вопросы могут быть и детскими.

Повторюсь - есть проект с НИОСом, взятый из рабочего примера. Отладочная плата отличается от устройства не значительно. В проекте QSYS в настройках SDRAM только изменил количество столбцов, строк и банков.

Соответствие названий таймингов в модуле qsys и в даташите на ОЗУ для меня загадка, но, вроде бы, те параметры, которые я смог понять, соответствуют необходимым для работы.

А про кеш в тесте можно поподробнее?

Я сейчас тестирую вот таким тестом: http://electronix.ru/forum/index.php?showt...st&p=198587.

Share this post


Link to post
Share on other sites
Соответствие названий таймингов в модуле qsys и в даташите на ОЗУ для меня загадка, но, вроде бы, те параметры, которые я смог понять, соответствуют необходимым для работы.

Вероятно придется разбираться. Пользовал только DDR2, потому подсказать конкретно не смогу.

А Warning_и после комптляции анализировали? Могут навести на правильную мысль.

 

Чтобы обойти кеш в ниосе надо поднять старший бит в адресе.

Share this post


Link to post
Share on other sites
Вероятно придется разбираться. Пользовал только DDR2, потому подсказать конкретно не смогу.

А Warning_и после комптляции анализировали? Могут навести на правильную мысль.

 

Чтобы обойти кеш в ниосе надо поднять старший бит в адресе.

 

Варнинги есть, но они теже, что и при компиляции для отладочной платы (неподключенные пины, изменение разрядности с 32 до таргета, переопределение переменной в константу).

А про старший бит не очень понял. Можно поподробнее? Тем более, что специально сделал НИОС эконом, там нет кеша. Или я не о том?

Share this post


Link to post
Share on other sites

может поможет.

 

на ксалинксе запуск проекта из ДДР и из он чип разный. Для запуска из ддр надо залить в он чип мемори бутлуп - специальная прожка, которая останавливает работу проца, пока вы заливаете проект в ДДР, иначе ни чег не срастется... Может у вас также... на старките из ДДР запускали?

Share this post


Link to post
Share on other sites
может поможет.

 

на ксалинксе запуск проекта из ДДР и из он чип разный. Для запуска из ддр надо залить в он чип мемори бутлуп - специальная прожка, которая останавливает работу проца, пока вы заливаете проект в ДДР, иначе ни чег не срастется... Может у вас также... на старките из ДДР запускали?

 

На стартерките стоит такая же SDRAM, только в два раза меньше. Купил бОльшую не от жадности, а потому, что такие были у поставщика.

Share this post


Link to post
Share on other sites

ну то есть на стартките вы запускали и все работало.

 

А тест памяти на новой плате проходит? вы пробовали всю память записать счетчиком, и потом ее всю считать. Это гарантия того что никакие кэши не влезли в проверку.

 

Еще у меня была такая фигня, я затактировал память от того же ПЛЛ что и ядро в плисине (где то в мануалах написано что надо от отдельного). У меня все собралось, и все вроде работало, но время от времени падало, чуть температура вырастет и все проект что я пишу в память писал несхождение содержимого и кирдык...

Share this post


Link to post
Share on other sites
А про старший бит не очень понял. Можно поподробнее? Тем более, что специально сделал НИОС эконом, там нет кеша. Или я не о том?

 

n2cpu_nii51002.pdf

стр.2-13

"The Bit-31 Cache Bypass Method

The bit-31 cache bypass method on the data master port uses bit 31 of the address as a tag that indicates whether the processor should transfer data to/from cache, or bypass it. ...."

 

Адрес 0х80000000 = 0х00000000 только в обход кеша.

Share this post


Link to post
Share on other sites

Всем спасибо, кажется, заработало.

Я так и не понял, что именно мешало, но догадываюсь.

Изначально проект qsys у меня был взят из какого-то примера. Там для на выходы PLL ставились мосты (Clock bridge). Где-то, в описании примера я читал, что они сильно нужны для счастья. Сомневаться не приходилось, тем более, что на отладочной плате все работало.

Решил их удалить, параллельно еще поковырялся в настройках PLL, (правда все те параметры, которые я сейчас установил и были изначально, просто я по мере поиска проблемы пытался играть смещением фазы на клоке SDRAM).

Share this post


Link to post
Share on other sites
Решил их удалить, параллельно еще поковырялся в настройках PLL, (правда все те параметры, которые я сейчас установил и были изначально, просто я по мере поиска проблемы пытался играть смещением фазы на клоке SDRAM).

а у вас констрейны на i/o выставлены? отсутствующие/кривые констрейны - частая причина ситуаций типа "то работает, то не работает" при нерелевантных с виду изменениях в проекте.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this