|
Проблемы с DDR |
|
|
|
Dec 9 2012, 07:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Собрал проект NIOS II + DDRII. На опытных экземплярах ни каких нариканий на работу DDR не было. Запустили серию. В 10 из 20 плат не работает DDR. Непропаи отмели, смотрели ренгеном. Стоит два чипа mocron MT47H32M16HR-3 I, у каждого шина данных 16 бит. две микросхемы образуют 32-х битную шину данных. Собрал проект хеловорд в котором заюзал только одну микросхему ддр - работает. Собрал другой хеловорд в котором заюзал др мк/с - работает. .......... собрал рабочий проект, в котором использовал только одну микросхему - неработает. Думаю, что проблемы с настройками тайменгов в QSys-t в настройках параметров контроллера DDR. там сотня всяких тайменгов. с даташита акуратно указал все времена - неработает. На половине плат всё работает, на половине плат нет. Причем на некоторых нерабочих платах иногда запускается ддр. Т.е. включаю плату - и вижу, все работает, ддр живет, программа работает. выключаю, включаю - и всё(((( неработает, конфигурация в плис грузится, но программа, которая распологается в ддр не работает. Получается что иногда контроллер ддр запускается и исправно работает, а иногда какая нибудь синхронизация у него сдвигается и в фазу не попадает чтоли, и не работает.
Скорее всего нужно какое-нибудь нужное время проставить в контроллере ДДР. но какое? как можно проанализировать контроллер ддр и что у него не работает?
ps Можно конечно социлом встать на ножки ддр и тачего глянуть. Но что смотреть?
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 30)
|
Dec 10 2012, 05:11
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата Стоит два чипа mocron MT47H32M16HR-3 I, у каждого шина данных 16 бит. две микросхемы образуют 32-х битную шину данных. Это как с точки зрения схемы - шины данных раздельные, всё остальное общее? Или как-то по-другому.
|
|
|
|
|
Dec 10 2012, 07:53
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 14-05-09
Пользователь №: 49 060

|
Когда при включении то работает, то не работает, то стоит обратить внимание на сигнал reset, который подаётся на контроллер. Может быть, нужно держать контроллер в сбросе подольше при вкл. питания, пока питание на м/с памяти не придёт в норму.
|
|
|
|
|
Dec 10 2012, 08:46
|

Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954

|
Цитата(vars @ Dec 10 2012, 14:53)  Когда при включении то работает, то не работает, то стоит обратить внимание на сигнал reset, который подаётся на контроллер. Может быть, нужно держать контроллер в сбросе подольше при вкл. питания, пока питание на м/с памяти не придёт в норму. Или просто перезалить проект при уже включенном питании. Если помогло значит слишком рано начинает контроллер с памятью общаться. Я бы урезал рабочий проект до контроллера ддр + проц и пытался стартовать его. Возможно тайминги немного плывут, тут как вариант ужесточить требования по времени.
|
|
|
|
|
Dec 10 2012, 09:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Wic @ Dec 10 2012, 14:46)  Или просто перезалить проект при уже включенном питании. Если помогло значит слишком рано начинает контроллер с памятью общаться. Я бы урезал рабочий проект до контроллера ддр + проц и пытался стартовать его. Возможно тайминги немного плывут, тут как вариант ужесточить требования по времени. Ресет после включения держу достаточно долго. потому как перестраиваюися внешний клокдестебъютер. После перестройки нужно ждать пока устаканится частота. Ресет держу порядра 2-х сек. Частота устаканивается после включения ...... ну на глаз по осцылу - мгновенно. запас ресета по временни огромный. Цитата проект до контроллера ддр урезал с одной ддр. Работает. С одной ддр полный проект не работает. вот ещё мысль: ресет общий. и для контроллера ддр и для ядра ниоса. т.е. после включения через 2 сек ресет снимается. Может нужно сначало снять ресет с ддр, потом с ядра?
|
|
|
|
|
Dec 12 2012, 14:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Wic @ Dec 12 2012, 12:18)  Чисто ради интереса, не пробовали смотреть разницу в поведение сигнала на этом входе когда платы запускаются и когда не запускаются? Смотрел. Одинаковое повидение. На циклоне3 нету терменирующих резисторов. Я так понял что при передачи данных контроллер ДДР сигналом ОДТ включает терминирующие резисторы в мкс.памяти. При получении данных одт снимается и резисторы внутри памяти отключаются. Тут какбы источник сигнала память, поэтому терминатор должен стоять в плис. Но в плис нету терминирующих резисторов. Подключив ОДТ к Vcc я включил терминирующие резисторы в памяти постоянно. Когда шину QD захватывает плис - то всё нормально, в конце линии терминаторы. А когда шину QD захватывает память, то терминаторы должны стоять в плис (конец линии теперь плис), но они у меня остаются в памяти. Т.е. шина QD всегда затерминирована со стороны памяти. Это конечно не гуд, но для коротких линий прокатывает. А почему то работало то неработало, да ещё на половине плат всегда работало? ну наверно в этих платах фортануло. И без терминаторов шина QD как то умудрялась работать, но наверно работала на грани фола.
|
|
|
|
|
Dec 13 2012, 05:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(gosu-art @ Dec 13 2012, 01:21)  А разве резисторы PUP, PDN - 50 Ом не для терминации подключаются на специальные ноги ПЛИС? Какие резисторы? я внешними резисторами терминировал шину адреса и шину управления. а на шине данных должна быть динамическая терминация. то со стороны плис, то со стороны памяти. в плисе в цыклоне нету таких резиторов (в стратиксе вроде есть). может в цыклоне внешние куда подключать? но куда? и это как, 32 внешних резистора на 32 дополнительных пина? Цитата Думаю, что надо почитать про то, какие настройки контроллера рекомендуются для Вашей памяти. Я тоже так думал. перекурил кучу док по ддр и по плис, по контроллеру..... В Qsys пожно установить конкретный чип памяти и все настройки высталяются автоматом для этого чипа. Конкретно мой чип в списке в Qsys есть. Я его выбирал. Потом сверял полученные настройки с даташитом на память: ноздря в наздрю - Неработает. Это что касается настроек времянок. Но там в контроллере есть настройки тиипа Разрешить автоРефреш и т.п. Там галок не много - перепробовал все варианты - Неработает. Если есть опыт и вы знаете как запустить динамическую терминацию на цыклоне - поделитесь.
|
|
|
|
|
Dec 13 2012, 07:11
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Цитата The Cyclone III device family provides output driver on-chip impedance matching and on-chip series termination for single-ended outputs and bidirectional pins. For bidirectional pins, OCT is active only for output. А резисторы цепляются на ноги RUP, RDN - два всего, но это для калибровки ОСТ. Все подробности тут
|
|
|
|
|
Dec 13 2012, 11:56
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(DmitryR @ Dec 13 2012, 13:50)  Это легко, резисторными сборками  Ну и конечно надо моделировать плату, такие вещи сразу бы вылезли. Это не просто. Где взять дополнительно 32 пина? Есть кит с цыклоном3 с ддр. сделал всё как в ките. не терминируется там внешними резисторами шина данных. Плату моделировали. моделировали в хиперлинксе. всё пучком. И при чем тут моделирование платы, если не работает схема, не работает динамическа терминация. 2 gosu-art А что такое OCT? Не нашол в хэндбуке. Цитата OCT is active only for output. Мне же нужно, чтобы терминаторы внутри ПЛИС подключались только на время, когда шина данных становится входом по отношению к ПЛИС.
|
|
|
|
|
Dec 13 2012, 12:29
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Цитата 2gosu-art А что такое OCT? Не нашол в хэндбуке. On Chip Terminations.
|
|
|
|
|
Dec 14 2012, 13:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(juvf @ Dec 13 2012, 14:56)  Где взять дополнительно 32 пина? Не надо нигде брать, терминация делается на существующих линиях. Чаще всего проходные резисторы помогают, особенно на таких низких частотах. Цитата(juvf @ Dec 13 2012, 14:56)  не работает динамическа терминация. Как так она не работает? Она работает, просто в Cyclone её нет. Поэтому надо делать две модели: передача от ПЛИС к памяти, с включённой ODT (это отдельная модель в IBIS памяти), передача от памяти к ПЛИС (с выключенной ODT, это другая модель).
|
|
|
|
|
Dec 14 2012, 21:08
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(DmitryR @ Dec 14 2012, 17:39)  Как так она не работает? Она работает, просто в Cyclone её нет. Поэтому надо делать две модели: передача от ПЛИС к памяти, с включённой ODT (это отдельная модель в IBIS памяти), передача от памяти к ПЛИС (с выключенной ODT, это другая модель). +100500 Вопрос про терминацию должен был всплыть на этапах разработки принципиальной схемы и печатной платы. Разработчики должны были заметить что в Циклопах3 нету ODT - и порешать эту проблему: либо моделированием и доп. терминацией, либо сменой ПЛИС на Спартан6, где уже есть всё встроенное (нет только Ниоса и Кактуса  ). Тем более, что, по словам ТС, разработчики вроде как продвинутые и моделируют плату в Гиперлинксе. Я вот, например, плату целиком ещё ни разу не моделировал, однако для критических цепей и их терминации ещё на этапе схемотехники смотрю IBIS модели и осциллограммы сигналов и возможности ПЛИС в плане терминации.
|
|
|
|
|
Dec 15 2012, 06:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(VladimirB @ Dec 15 2012, 03:08)  +100500 Вопрос про терминацию должен был всплыть на этапах разработки принципиальной схемы и печатной платы. Разработчики должны были заметить что в Циклопах3 нету ODT - и порешать эту проблему Ну вот не заметили.  Вообще в нашей канторе это был первый опыт с DDR. И ни кого рядом, кто уже её щюпал. Моделировали так, что на конце линии есть терминация 50 Ом. Т.е. в моделировании не было динамической терминации. просто линиия и на конце терминатор. За основу был взят кит на томже циклоне3, на котором ддр с данными аш в 72 бита (5 микросхем). Мы же упростили сделав 32 бита на 2-х микросхемах. На ките на шине данных не было внешней терминации. Ну не стали изобретать велосипед, доверились киту. Цитата Тем более, что, по словам ТС, разработчики вроде как продвинутые и моделируют плату в Гиперлинксе. Я вот, например, плату целиком ещё ни разу не моделировал Ну целиком плату, да ещё плату с реальной полученной трасировкой, мы не моделировали. Моделировали отдельный цепи до трасировки. А как можно было на этапе моделирования понять, что в циклоне3 нет ODT? Немного доки недокурили по работе ддр и про ODT в циклоне3.
|
|
|
|
|
Dec 18 2012, 11:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(juvf @ Dec 15 2012, 10:39)  Моделировали так, что на конце линии есть терминация 50 Ом. Т.е. в моделировании не было динамической терминации. просто линиия и на конце терминатор. <...> На ките на шине данных не было внешней терминации. Ну не стали изобретать велосипед, доверились киту. Полностью лишённая смысла работа: вы смоделировали одно, а сделали по-другому. Цитата(juvf @ Dec 15 2012, 10:39)  А как можно было на этапе моделирования понять, что в циклоне3 нет ODT? Звон бы увидели в линии, сталии бы искать причины и поняли бы.
|
|
|
|
|
Dec 18 2012, 12:59
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(juvf @ Dec 15 2012, 08:39)  Ну вот не заметили.  Вообще в нашей канторе это был первый опыт с DDR. И ни кого рядом, кто уже её щюпал. Моделировали так, что на конце линии есть терминация 50 Ом. Это как? Дорисовали на схеме в HL резистор? Так схему моделировали или реально оттрасированную плату? Цитата(juvf @ Dec 15 2012, 08:39)  А как можно было на этапе моделирования понять, что в циклоне3 нет ODT? Немного доки недокурили по работе ддр и про ODT в циклоне3.  Так модель пинов в HL подключается. И там выбирается режим работы пина - один из описанных в файле модели. Если нужный режим (с включенным ODT) в списке не найден (поскольку не поддерживается), то это уже был повод задуматься - а шо ж не так. И еще мне странно немного - на коротких линиях (1 дюйм) шина данных в топологии точка-точка должна бы заработать и без терминации. Ну вероятно были бы overshoot/undershoot, но времянка должна быть OK. Есть же примеры успешных проектов, работающих без терминации. Так что весьма вероятно что у Вас на плате еще какие-то косяки есть.
|
|
|
|
|
Dec 18 2012, 14:19
|

Местный
  
Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599

|
Цитата(VslavX @ Dec 18 2012, 18:04)  Два чипа можно подключить же по-разному. Например два 16-битных чипа в двух разных банках (chip-select имею ввиду разные) на 16-битной шине - это уже не соединение типа "точка-точка", потому что на каждой линии данных уже будет три пина. А если из двух 16-разрядных чипов набрать 32-разрядную шину, то на каждой линии данных будет два пина - контроллера и одного из чипов памяти. Это уже точка-точка. К скоростям и выравниваниям чувствительны именно клоки и шины данных, остальные сигналы значительно менее проблемные, к тому же можно обычно применить режим 2T, если все совсем уж плохо. Ну и чисто проблемы Альтеры бывают. у автора, как и у меня именно 32-разрядная шина. И не работает без терминации. С терминацией работает. DmitryR а по поводу DIMM - если на FPGA нет терминации, то ее делают на плате с FPGA. У альтеры не помню, у кзайлинкса видел такое. Я кстати с альтерского кита на Циклон 4 и срисовывал терминацию на 2 чипа в шине 32 разряда
|
|
|
|
|
Dec 19 2012, 17:03
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(VslavX @ Dec 18 2012, 18:59)  Это как? Дорисовали на схеме в HL резистор? Так схему моделировали или реально оттрасированную плату?
Так модель пинов в HL подключается. И там выбирается режим работы пина - один из описанных в файле модели. Если нужный режим (с включенным ODT) в списке не найден (поскольку не поддерживается), то это уже был повод задуматься - а шо ж не так. Неее.... Ну говорю же первый опыт, первое знакомство с хиперлинксом. Хиперлинкс - вообще отдельная планета. Реальную плату не моделировали. Моделировали даже не схему а отдельную цепь. Нарисовали цепь: Источник-резисторДорожка-виа-резисторДорожка-виа-терминатор+приемник. Ну какбы подрозумевал что на время передачи терминатор подключится. Цитата И еще мне странно немного - на коротких линиях (1 дюйм) шина данных в топологии точка-точка должна бы заработать и без терминации. Видать она у нас на опытных образцах и заработала, причем вроде из 7-ми плат на одной так и не пошла ддр - списали на непропай бга. А в серии на каждой 2-ой не пошла. В серию платы заказывали в др канторе, стек изменили, чуть тоньше платы получились. Ну допустим нету в CycloneIII ODT и нужно ножку на микросхеме ODT затянуть в "1" (или в "0"). В прикреплении Э3 демокита . В схеме ODT идет на порт Cyclon-a, но если там нет одт - достаточно же ногу памяти подтянуть на "1" и не мучится с трассировкой этой цепи, тем более она идет на две мк.сх., да ещё с терминацией, да ещё с выравниванием. в SOPSбилдере указывается для какой ПЛИС будет собираться НИОС. Билдер собрал контроллер с ногой ODT. Даже не было тени сомнения, что ОДТ нету. ps Всетаки, а почему в ките ODT от памяти завели на циклон?
|
|
|
|
|
Dec 19 2012, 19:44
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(Sergey_Bekrenyov @ Dec 18 2012, 17:03)  Этот "косяк" называется 2 чипа подключенных на один контроллер. Меня в свое время заставили поставить на схему с одним чипом DDR2 терминацию, хотя я упирался. Так вот на схему с двумя чипами я поставил сам - при производстве ошиблись и не поставили терминацию. Получилось хочу работаю - хочу нет. Хотя все линии короткие Два чипа параллелятся по шине управления и адреса. Шины данных независимые - 2x16=32. И проблема у ТС именно в отсутствии терминации входов на шине данных в Циклопе3 при чтении из DDR2. А то что линии короткие - в некоторых случаях это может быть ещё и хуже, особенно при разветвлениях древовидной структуры. В техасовских DSP помнится встречал требования не только максимальной, но и к минимальной длине линий до памяти. ИМХО надо моделировать и смотреть, какая длина и терминация будет оптимальной.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|