Такие дела. На отладке NiosII CycloneII Edition есть DDR память 16 бит.
Настраиваем контроллер High Performance DDR на частоту 100 МГц, FULL. Шина данных на выходе контроллера будет 16*2 = 32 бита.
Таким образом получаем шину 100 МГц 32 бита.
Я подключаю к ней свое устройство и... наблюдаю сигналтабом совершенно не ту картину, на которую рассчитывал. Получается пропускная способность как на 50 МГц. На приложенном рисунке видно, что на чтение одного байта тратится 2 такта (верхний datavalid, нижний waitrequest).
Что это может быть за фигня?
Причем это происходит только на DDR памяти. На другом типе памяти (SDRAM, SSRAM) - все нормально...
Может надо как-то использовать half-rate? Но судя по описанию на DDR контроллер, в этом нет необходимости.
Serhiy_UA
Mar 2 2009, 08:42
Вы свой DDR HP контроллер используете под программную память для NiosII, или как-то иначе?
У меня задача такая, NiosII на on-chip memory, а DDR под отдельный FSM, и пока планирую использовать half-rate.
Правда, не определился с типом IP-корки, пока прорабатываю три варианта:
altmemphy
ddr controller
ddr hp controller
Вы уверены в IP core которое используете и установленном режиме?
Память не для ниоса, а для видео. Да и есть ли разница, кто будет использовать память?
Цитата
Вы уверены в IP core которое используете и установленном режиме?
Делал согласно документации на этот контроллер (хотя мог чего-нибудь напутать, не без этого). Испоьзовал режим full-rate. Half-rate для меня менее удобен, т.к. в этом случае шина будет 64 бита, а мне удобнее 32.
Вот выкладываю проектик, в SOPC установлен контроллер DDR (QII8.1). Поглядите, может увидите явную нелепость...
Проверил - на half-rate память ведет себя точно также...
Там на закладке визарда PHY Settings есть нечто Address/command clock settings -> Clock phase. Возможные варианты 0, 90, 180, 270. Какую необходимо установить для full и half, кто знает? Что-то в даташите на контроллер вообще не нашел...
Serhiy_UA
Mar 3 2009, 07:48
Посмотрите на простой DDR and DDR2 SDRAM Controller (не HP), то там нет градаций full/half, да и Burst lengths там длинее 2, 4, or 8, в отличии от HP, где только 2 и 4.
Или только DDR and DDR2 SDRAM High-Performance?
У меня критично иметь Burst lengths = 8
Да, спасибо.
Все-таки осилил HP. Дело оказалось как раз в Burst lengths - согласно документации в моем случае она должна быть 2.
Все заработало.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.