Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MIG 7-series энергопотребление
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Inanity
Здравствуте!

В устройстве применяется Artix-7 XC7A50TCSG325-2L. К ней подключены 2 микросхемы DDR3L (4Gb x8), запитаны от 1.5в (при возможных 1.35в). Соответственно предполагалось иметь 2 контроллера MIG для каждой памяти. Для тестов была пока запаяна только одна микросхема DDR3L. Инициализацию память проходит, memorytest тоже (тест прогонялся примерно 1 час).

Ситуации:
1. ПЛИС с включенным питанием без конфигурации потребляет ~0.7W (темп-ра кристалла ~45град)
2. ПЛИС с проектом microblaze (Helloworld в бесконечном цикле) ~0.9W (темп-ра кристалла ~52град)
3. ПЛИС с проектом microblaze + одна DDR3L (MemoryTest в бесконечном цикле) ~ 2.0W(!) (темп-ра кристалла ~82град!)
Сразу скажу, что даже в таких диких условиях память корректно работает. Однако, температура кристалла и энергопотребление никак не сопоставляется с тем, что
обещал XPE и тем, что было спрогнозировано компилятором:
>>Total On-chip Power 0.78W
>>Junction Temperature 28.7 град
Проверял напряжение всех линий питания под нагрузкой и без - всё в порядке.

Я нахожу ситуацию №3 неадекватной. Я не первый, кто столкнулся с этой проблемой, однако решения ей пока в сети не нашёл:
раз два три

Прикладываю конфиг MIGa для одной из DDR3L:

Цитата
MIG Output Options:
Module Name : SoC_my_mig_7series_0_0
No of Controllers : 1
Selected Compatible Device(s) : xc7a35t-csg325

FPGA Options:
System Clock Type : No Buffer
Reference Clock Type : No Buffer
Debug Port : OFF
Internal Vref : enabled
IO Power Reduction : ON
XADC instantiation in MIG : Enabled

Extended FPGA Options:
DCI for DQ,DQS/DQS#,DM : enabled
Internal Termination (HR Banks) : 40 Ohms

/*******************************************************/
/* Controller 0 */
/*******************************************************/
Controller Options :
Memory : DDR3_SDRAM
Interface : AXI
Design Clock Frequency : 2500 ps ( 0.00 MHz)
Phy to Controller Clock Ratio : 4:1
Input Clock Period : 10000 ps
CLKFBOUT_MULT (PLL) : 8
DIVCLK_DIVIDE (PLL) : 1
VCC_AUX IO : 1.8V
Memory Type : Components
Memory Part : MT41K512M8XX-125
Equivalent Part(s) : MT41K512M8RH-125
Data Width : 8
ECC : Disabled
Data Mask : enabled
ORDERING : Normal

AXI Parameters :
Data Width : 64
Arbitration Scheme : RD_PRI_REG
Narrow Burst Support : 0
ID Width : 1

Memory Options:
Burst Length (MR0[1:0]) : 8 - Fixed
Read Burst Type (MR0[3]) : Sequential
CAS Latency (MR0[6:4]) : 6
Output Drive Strength (MR1[5,1]) : RZQ/6
Controller CS option : Enable
Rtt_NOM - ODT (MR1[9,6,2]) : RZQ/6
Rtt_WR - Dynamic ODT (MR2[10:9]) : Dynamic ODT off
Memory Address Mapping : BANK_ROW_COLUMN


Что пробовал сделать:
1. Первоначально думал, что проблема с памятью. Благо запаял для тестов только одну микр-му. Сконфигал ядро на работу с незапянной памятью и наблюдал такое же высокое потребление. (стало быть дело в MIG?)
2. Пробовал отключать терминирование DQ\DSQ на ПЛИС - не помогло. Кстати работать не перестало, память всё так же инициализируется и проходит memorytest.
3. Версия ПЛИС с индексом -2L позволяет гонять её при напряжении ядра 0.9v. Что соответственно и сделал (1.0v -> 0.9v). Это помогло на ~10% снизить энергопотребление, но проблему не решило.

Заметил следующую одну очень странную особенность: ПЛИС зашита конфигурацией, но кода microblaze нет (ничего не гоняется и по идее DDR3 неактивна, кроме, наверное refresh). После загрузки кода, и запуска проекта (memorytest), потребление НЕ изменяется!! Тогда вопрос, чем занят MIG всё то время, когда я к нему не обращаюсь? Насколько это нормальное поведение контроллера? И почему вообще это ядро так много потребляет?

Сразу скажу, что решить проблему активным охлаждением в моём случае невозможно. Единственно, что возможно - пассивное охлаждение, но рассчитывать на него не хочется.

Спасибо!
des00
я бы для проверки сделал большой сдвиговый регистр, на который загнал бы 32 бита ПСП, поставил тактовую 200МГц и забил бы 80% кристалла. В итоге можно посмотреть потребляемую мощность и оценить что к чему.

Все анализаторы потребления, без реального моделирования, гадают на кофейной гуще, что бы оценить точно, нужны vcd файлы и нормальное моделирование проекта.
Dr.Alex
Цитата(Inanity @ Jan 2 2015, 04:13) *
1. ПЛИС с включенным питанием без конфигурации потребляет ~0.7W (темп-ра кристалла ~45град)


У вас какое-то конкретное нездоровье.
Я щас точно не скажу, т.к. не дома, но у меня А35 без конфигурации хавает милливатт 50 при комнатной температуре, скорее меньше даже.

Что касается повер эстиматора:: в ISE он без каких-либо сторонних данных (помимо откомпилированного прожекта) давал похожие на правду значения (плюс-минус лапоть), но для Вивадо это не так!!
Без адекватно заданных сторонних данных (типа активности) он выдаёт вообще чёрть и что, например ватт 7 для почти не заполненного небольшого кристалла.
des00
Цитата(Dr.Alex @ Jan 2 2015, 17:21) *
У вас какое-то конкретное нездоровье.
Я щас точно не скажу, т.к. не дома, но у меня А35 без конфигурации хавает милливатт 50 при комнатной температуре, скорее меньше даже.

Глянул документ Artix-7 FPGAs Data Sheet: DC and Switching Characteristics раздел ток питания в статике по VCCINT/VCCO/VCCAUX XC7A75T-2L должен потреблять 155/4/36мА по 1В = 155/4/36 милливатт. Что-то у ТС не то.
Dr.Alex
Цитата(des00 @ Jan 2 2015, 15:30) *
Глянул документ Artix-7 FPGAs Data Sheet: DC and Switching Characteristics раздел ток питания в статике по VCCINT/VCCO/VCCAUX XC7A75T-2L должен потреблять 155/4/36мА по 1В = 155/4/36 милливатт. Что-то у ТС не то.


На самом деле всё даже ещё гораздо лучше:: в шите на 7-серию токи указаны почему-то при 85°. Раньше всегда указывали при 25°, а это очень большая разница в статическом токе. В разы.
Inanity
TO des00:

--Да, была у меня мысль провести такой тест, как-нибудь на днях обязательно сделаю. Но дело в том, что данные для XPE взяты не с потолка, а после implementation вызвана команда report_power -xpe filename.xpe. И уже этот файл был загружен и проанализирован XPE.

-- Что касается потребления в статике - согласен, судя щиту оно скорее всего превышено. Но к сожалению точное значение тока на линии питания ядра вычислить сложно.

TO Dr.Alex:

--Спасибо за информацию! Запускали ли вы MIG?


--->Начинаю вспоминать, что в процессе сборки инженерного варианта был следующий казус. Питание VCCAUX подавалось с dc-dc регулятора через LC-фильтр. Дело в том, что после запайки и проверки всего питания я не заметил, что этот самый LC фильтр не был установлен. Таким образом после первого включения ПЛИС VCCAUX не был запитан.(Запитано было VCCINT, все VCCIO и два питания трансиверов) Могло ли это повредить ПЛИС? (нагрева, кстати, с отсутствующим питанием VCCAUX я не заметил тогда).
Мог ли так же перегрев ПЛИС при её запайке и запайке других компонентов привести к такому поведению?
Dr.Alex
Цитата(Inanity @ Jan 2 2015, 23:47) *
Спасибо за информацию! Запускали ли вы MIG?

Нет.


Цитата(Inanity @ Jan 2 2015, 23:47) *
Могло ли это повредить ПЛИС?
Мог ли так же перегрев ПЛИС при её запайке и запайке других компонентов привести к такому поведению?

Я оцениваю вероятность этого как близкую к нулю, но вот вероятность того что плисина всё же неисправна (по каким-то другим причинам) вполне существенна.
Так что собирать всего одну плату это конечно не дело.
Inanity
Цитата(Dr.Alex @ Jan 2 2015, 22:57) *
...но вот вероятность того что плисина всё же неисправна (по другим причинам) вполне существенна.


Есть в дизайне один немного неприятный момент: внешний single-ended тактовый генератор на 100mhz питается от 1.8в и подключен к банку с VCCO =1.5в. Если предположить, что амплитуда синуса на выходе 1.8в, то это несколько нарушает требование VCCO + 0.20 для входа ПЛИС. Насколько это критичный момент?
Flood
Цитата(Inanity @ Jan 2 2015, 22:47) *
--->Начинаю вспоминать, что в процессе сборки инженерного варианта был следующий казус. Питание VCCAUX подавалось с dc-dc регулятора через LC-фильтр. Дело в том, что после запайки и проверки всего питания я не заметил, что этот самый LC фильтр не был установлен. Таким образом после первого включения ПЛИС VCCAUX не был запитан.(Запитано было VCCINT, все VCCIO и два питания трансиверов) Могло ли это повредить ПЛИС? (нагрева, кстати, с отсутствующим питанием VCCAUX я не заметил тогда).
Мог ли так же перегрев ПЛИС при её запайке и запайке других компонентов привести к такому поведению?


Отсутствие VCCAUX не должно быть страшно для 7-й серии, по крайней мере, если ни один IO банк не запитывается от 3,3В.
Цитата
The voltage difference between VCCO and VCCAUX must not exceed 2.625V for longer than TVCCO2VCCAUX for each
power-on/off cycle to maintain device reliability levels.


По опыту еще ни разу не встречал повышенное потребление по ядру - обычно при проблемах с Vccint/Vccaux чип закорачивается на землю и все умирает.
Зато Xilinx'ы отлично умеют гореть по Vcco - при выгорании какой-либо ножки IO соответствующий банк начинает жрать приличный ток, при этом все, кроме подгоревшей ножки, работает. В пострадавшем банке, как правило, серьезно нарушается качество сигнала на оставшихся ножках (параллельные шины начинают глючить), но в целом банк продолжает шевелиться (если источник Vcco справляется с нагрузкой). Сгоревший банк можно вызвонить на выключенной плате по резко сниженному сопротивлению Vcco.
Однако этот эффект не динамический и не масштабируется в зависимости от конфигурации ПЛИС.

Насчет генератора на 1,8В - это явное нарушение, но оно не даст такого большого тока (на 0,7Вт потребления). Можно попробовать его снять или выключить (EN генератора на землю) для оценки потребления пустой плисины.

Если есть серьезные подозрения на саму ПЛИС - ее можно заменить, а снятую поставить во второй прототип.

Возможно, все-таки 0,7Вт потребляет не сама ПЛИС, а вся плата целиком? Температура кристалла ПЛИС вообще не имеет полезного значения для оценки потребления, т.к. сильно зависит от теплоотвода в виде печатной платы.
Inanity
Цитата(Flood @ Jan 2 2015, 23:47) *
Отсутствие VCCAUX не должно быть страшно для 7-й серии, по крайней мере, если ни один IO банк не запитывается от 3,3В.

Нет питания 3.3в на ПЛИС не заходит вообще. Банки питаются от 1.5в и 1.8в

Цитата(Flood @ Jan 2 2015, 23:47) *
Зато Xilinx'ы отлично умеют гореть по Vcco - при выгорании какой-либо ножки IO соответствующий банк начинает жрать приличный ток, при этом все, кроме подгоревшей ножки, работает. В пострадавшем банке, как правило, серьезно нарушается качество сигнала на оставшихся ножках (параллельные шины начинают глючить), но в целом банк продолжает шевелиться (если источник Vcco справляется с нагрузкой).

Спасибо, буду иметь ввиду. Но в данном случае не вижу предпосылок для такого развития событий. Банк так или иначе работает и управляет памятью на скорости 800Mb\s, при чём проходит относительно продолжительный тест (тем более при высокой температуре). Сбоев или единичных ошибок пока не наблюдал.

Цитата(Flood @ Jan 2 2015, 23:47) *
Насчет генератора на 1,8В - это явное нарушение, но оно не даст такого большого тока (на 0,7Вт потребления). Можно попробовать его снять или выключить (EN генератора на землю) для оценки потребления пустой плисины.

Абсолютно с вами согласен в том, что это нарушение, к сожалению это мой промах, очень плотный дизайн, практически все пины заняты. Тем не менее поверил (EN генератора на землю) - проблема не в нём, потребляемый ток уменьшается на величину, равную потреблению самого генератора.

Цитата(Flood @ Jan 2 2015, 23:47) *
Возможно, все-таки 0,7Вт потребляет не сама ПЛИС, а вся плата целиком? Температура кристалла ПЛИС вообще не имеет полезного значения для оценки потребления, т.к. сильно зависит от теплоотвода в виде печатной платы.


Прошу прощения, боюсь, что я допустил ошибку и ввёл людей в заблуждение. Цифры потребления из первого сообщения приводились для всей платы. Просто хотел продемонстрировать потребление устройства на разных битстримах при прочих равных условиях, т.е. на одном и том же железе.

Если мы говорим только о ПЛИС, то 0.375W - это потребление пустой ПЛИС по всем линиям питания + потребление одной DDR3 в статике. Я понимаю, что это очень грубая оценка, но это то, что я смог получить, отключив на плате всё, что можно. Если потребление DDR3 MT41k512M8 (die rev E) оценить как 0.05W, то получаем ~0.3W для всех линий питания ПЛИС, что в принципе, учитывая некоторую погрешность в расчётах, соизмеримо с данными из даташита DS181. Стало быть потребление в статике в норме.


Если мои соображения ранее верны, то осталось ответить на 2 вопроса:

---Почему MIG (если сравнивать ситуации №1 и №3 из первого поста) добавляет 1.3W? Откуда такая прожорливость у этого ядра?
---Почему после загрузки кода microblaze (когда начинается сам memorytest и память активно пишется\читается) потребление НЕ изменяется? Чем занимается MIG в то время, когда я к нему не обращаюсь? Насколько это адекватное поведение контроллера?
Dr.Alex
Цитата(Inanity @ Jan 3 2015, 00:09) *
генератор на 100mhz питается от 1.8в и подключен к банку с VCCO =1.5в. Если предположить, что амплитуда синуса на выходе 1.8в, то это несколько нарушает требование VCCO + 0.20 для входа ПЛИС. Насколько это критичный момент?

Это абсолютная фигня.


Цитата(Inanity @ Jan 3 2015, 04:47) *
~0.3W для всех линий питания ПЛИС, что в принципе, учитывая некоторую погрешность в расчётах, соизмеримо с данными из даташита DS181. Стало быть потребление в статике в норме.

По-прежнему неверно. Повторяю:: в даташите указаны токи при 85°, при комнатной же температуре они ниже в несколько раз.
Пример:: для А35 указан ток ядра 95 мА, в реальности же (при 25°) у меня он составляет 10-12 мА.
Inanity
Dr.Alex, в таком случае крайней остаётся ПЛИС. Схему подключения много раз пересматривал. Всё штатно подключено. Все незадействованные пины подключены, как описано в даташите. Перепайка - не проблема, однако хотелось бы её оставить на самый крайний случай. Идеи кончаются, что я ещё не попробовал?
Dr.Alex
Вы не пробовали самое главное:: собрать вторую плату! :-))))))))

Вообще, 300 мВт вместо 50 мВт холостой мощности это явно не приговор вашей плате, а скока должен ваш МИГ жрать, всё равно никто не знает....
Bad0512
Цитата(Inanity @ Jan 3 2015, 19:43) *
Dr.Alex, в таком случае крайней остаётся ПЛИС. Схему подключения много раз пересматривал. Всё штатно подключено. Все незадействованные пины подключены, как описано в даташите. Перепайка - не проблема, однако хотелось бы её оставить на самый крайний случай. Идеи кончаются, что я ещё не попробовал?

1. Проверить хотя бы на ещё одной плате необходимо чтобы исключить вариант того, что вы каким-то непонятным образом спалили ПЛИС (статика, неправильная последовательность включения питаний (вы говорили про отсутствие одного из них - это критично и т.д.). Это надо сделать в первую очередь чтобы не бороться с ветряными мельницами в дальнейшем.
2. Вашу схему поглядеть бы хотя бы в части ПЛИС - ДДР. Возможно у вас какой-то тривиальный косяк, который вы в силу "замыленности взгляда" не замечаете. Такое бывает со всеми, нет тут ничего страшного, человек - не робот, ему свойственно ошибаться.
3. Если схема ваша позволяет это сделать, то неплохо бы отдельно померить потребление ДДР и банков ПЛИС, которые к ДДР идут. Дабы понять кто всё-таки кушает ток. Если не позволяет - тогда увы.
Это к вопросу о пользе EMI фильтров в цепях локальных питаний.
4. Можно ещё понизить частоту MIG до минимально возможной чтобы понять, является ли это адское потребление статическим или же динамическим (т.е. зависимым от частоты переключения).
5. Собрать ваш дизайн под другое железо (AC701 например) и сравнить потребление.
Flood
Цитата(Inanity @ Jan 3 2015, 03:47) *
---Почему MIG (если сравнивать ситуации №1 и №3 из первого поста) добавляет 1.3W? Откуда такая прожорливость у этого ядра?
---Почему после загрузки кода microblaze (когда начинается сам memorytest и память активно пишется\читается) потребление НЕ изменяется? Чем занимается MIG в то время, когда я к нему не обращаюсь? Насколько это адекватное поведение контроллера?


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

Насчет микроблейза - не сможет этот процессор хорошо нагрузить память. Для нагрузочного теста нужны постоянные длинные пересылки, обеспечить которые может только DMA.

Есть вариант собрать MIG без процессорной подсистемы - в простом, не embedded маршруте. Для чистоты эксперимента можно генерировать ядро без использования шины AXI. Там создается Example Design с тестовым генератором. Этот тестовый проект нужно собрать, загрузить в ПЛИС и посмотреть, сколько он будет жрать в софт-ресете и при нормальной работе. Заодно, нужно смотреть на выходы calib_complete и error (лучше делать это в ILA). Получится наиболее чистый тест ядра MIG. Если все клоки заведены согласно пожеланиям MIG'а - никакой ручной работы не потребуется.
Заодно можно будет повторить тест на 1,35В и оценить разницу.

Цитата(Inanity @ Jan 3 2015, 16:43) *
Все незадействованные пины подключены, как описано в даташите. Перепайка - не проблема, однако хотелось бы её оставить на самый крайний случай. Идеи кончаются, что я ещё не попробовал?


Идей сгенерить можно еще миллион, был бы с них толк sm.gif Например, подключение незадействованных пинов (например, половину к питанию, половину к земле, как советуют для железобетонных проектов) может сыграть неприятную шутку, если в топе проекта найдутся неиспользованные выходы. Маппер положит их куда-нибудь и, если брошенный выход с нулем попадет на подключенную к питанию ножку, неприятные эффекты будут обеспечены.
RobFPGA
Приветствую!

А посмотрите в editore как у Вас idelayctrl используются?
Может глюкануло при PR и активировало ВСЕ блоки на чипе, а не только те что нужные банки ног DDR обслуживают.

Успехов! Rob.
VladimirB
Цитата(Inanity @ Jan 2 2015, 04:13) *
Здравствуте!
В устройстве применяется Artix-7 XC7A50TCSG325-2L....
Ситуации:
1. ПЛИС с включенным питанием без конфигурации потребляет ~0.7W (темп-ра кристалла ~45град)
2. ПЛИС с проектом microblaze (Helloworld в бесконечном цикле) ~0.9W (темп-ра кристалла ~52град)
3. ПЛИС с проектом microblaze + одна DDR3L (MemoryTest в бесконечном цикле) ~ 2.0W(!) (темп-ра кристалла ~82град!)
Сразу скажу, что даже в таких диких условиях память корректно работает. Однако, температура кристалла и энергопотребление никак не сопоставляется с тем, что
обещал XPE и тем, что было спрогнозировано компилятором:
Проверял напряжение всех линий питания под нагрузкой и без - всё в порядке.
...


1) XPE это прикольная тулза - но там есть волшебный параметр ToggleRate, который по умолчанию 12.5% стоит, и если его поменять, например, на 100%, то потребление возрастёт в 8 раз. Вот весь вопрос в том каким вы его задавали в XPE и какой он у вас на самомо деле? К тому же
потребление растёт с температурой: посмотрите какое потребление вам выдаст XPE при 82градусах.

2) Потребление ПЛИС вы замерить не можете? Если есть ферриторые бусины по питанию, вместо них можно впаять резистор на 10миллиОм и померить на нём падение напряжения. А судить по потреблению всей платы о потреблении ПЛИС немного некорректно: есть у вас там наверняка импульсные DC-DC, у которых при малых токах плохое КПД (может быть менее 60%).
Inanity
Благодарю всех за активное участие, постараюсь ответить на все вопросы по порядку:

TO Bad0512:

Цитата(Bad0512 @ Jan 3 2015, 20:01) *
1. Проверить хотя бы на ещё одной плате необходимо чтобы исключить вариант того, что вы каким-то непонятным образом спалили ПЛИС

Да, скорее всего так и поступлю.

Цитата(Bad0512 @ Jan 3 2015, 20:01) *
3. Если схема ваша позволяет это сделать, то неплохо бы отдельно померить потребление ДДР и банков ПЛИС, которые к ДДР идут. Дабы понять кто всё-таки кушает ток. Если не позволяет - тогда увы.

Боюсь, что не получится, нет возможности замерить отдельно эту линию питания. Да, EMI полезная вещь, но она у меня только на VCCAUX.

Цитата(Bad0512 @ Jan 3 2015, 20:01) *
4. Можно ещё понизить частоту MIG до минимально возможной чтобы понять, является ли это адское потребление статическим или же динамическим (т.е. зависимым от частоты переключения).

Да, буду пробовать это делать. Минимум, который позволяет MIG - 303.25Mhz (какая-то кривая частота правда, 3300ps).

Цитата(Bad0512 @ Jan 3 2015, 20:01) *
5. Собрать ваш дизайн под другое железо (AC701 например) и сравнить потребление.

На AC701 пробовали, правда там so-dimm. А толку? Непонятно как на этой плате потребление линий питания замерить. Там вроде стоит монитор питания от TI, но вроде как чтобы к нему подключиться нужен хитрый программатор USB-to-GPIO adapter, которого нет... Схема на него есть, можно, конечно, собрать или купить, но в наличии его нигде не находил в Москве, а везти долго и сложно, тем более в наше время. А так, плата работает, чип голый, не греется (40-42град).


TO Flood:
Цитата(Flood @ Jan 3 2015, 22:48) *
Есть вариант собрать MIG без процессорной подсистемы - в простом, не embedded маршруте.

Да, знаю, вы о Traffic generetor-е говорите. Это первое, что пробовал. Через ILA смотрел - калибровку проходит, error-ов ни при инициализации, ни при последующей работе нет. Кстати, этот дизайн у меня потребляет 1.55W (ПЛИС + DDR3). А XPE насчитал 0.745W для ПЛИС + примерно 0.25W для DDR3 (моя оценка). Итого где-то на 0.5 вата перебор. Кто-то писал писал про неэффективноcть dc-dc на малых токах, это так, но на плате стоят dc-dc от Enpirion, у них практически у всех 90% начиная с 0.1А.

Цитата(Flood @ Jan 3 2015, 22:48) *
Заодно можно будет повторить тест на 1,35В и оценить разницу.

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

Цитата(Flood @ Jan 3 2015, 22:48) *
Например, подключение незадействованных пинов (например, половину к питанию, половину к земле, как советуют для железобетонных проектов) может сыграть неприятную шутку, если в топе проекта найдутся неиспользованные выходы. Маппер положит их куда-нибудь и, если брошенный выход с нулем попадет на подключенную к питанию ножку, неприятные эффекты будут обеспечены.

Совет для железобетонных проектов принял к сведению, но как это объясняется? По поводу маппера - в курсе, неподключенных пинов не оставляю. Незадействованные пины пробовал подтягивать на 0 и оставлять в Z. Результата нет.


TO RobFPGA:

Цитата(RobFPGA @ Jan 3 2015, 23:56) *
А посмотрите в editore как у Вас idelayctrl используются?


Судя по Report Utilization использован один idelayctrl для одного ядра MIG.


TO VladimirB:

Цитата(VladimirB @ Jan 4 2015, 00:07) *
1) XPE это прикольная тулза - но там есть волшебный параметр ToggleRate, который по умолчанию 12.5% стоит, и если его поменять, например, на 100%, то потребление возрастёт в 8 раз. Вот весь вопрос в том каким вы его задавали в XPE и какой он у вас на самомо деле? К тому же
потребление растёт с температурой: посмотрите какое потребление вам выдаст XPE при 82градусах.


ToggleRate всегда задаю 50% при симуляции. (100% совсем перебор).
Давайте так. Проект с microblaze + одна DDR3:

Верхний скрин - при температуре окр.среды - 25гр. Нижняя - ручная установка на 82град.
Кому интересно, прикладываю XPE проекта:
Нажмите для просмотра прикрепленного файла
(расширение на xpe надо менять)
Ruslan1
Извините, есть одна ортогональная идея: проверьте, правильно ли у Вас ВСЕ имеющиеся на плате элементы нарисованы.
Если использовали готовые элементы из примененного для разработки этой печатной платы CADa- то запросто может быть ошибка в распиновке. Как результат- что-то не туда подключено и начинается полтергейст. Просто проверьте, это не займет больше нескольких часов.
Ну и ерраты, касающиеся хардверной части, тоже иногда ставят все с ног на голову.
И, конечно, корректность монтажа: вдруг где-то вместо 0.1 мкф запаяли 10 Ом, всякое бывает.
Flood
Если у вас есть AC701 - с нее и нужно начинать!
Там измеряется очень многое с прямым доступом к результатам из плис.
См. User guide, раздел xadc power system measurement.

В целом различие XPE с реальностью в 0,5Вт я бы считал более чем нормальным. Но перепроверьте на отладочной плате.
Bad0512
Цитата(Inanity @ Jan 4 2015, 11:06) *
На AC701 пробовали, правда там so-dimm. А толку? Непонятно как на этой плате потребление линий питания замерить. Там вроде стоит монитор питания от TI, но вроде как чтобы к нему подключиться нужен хитрый программатор USB-to-GPIO adapter, которого нет... Схема на него есть, можно, конечно, собрать или купить, но в наличии его нигде не находил в Москве, а везти долго и сложно, тем более в наше время. А так, плата работает, чип голый, не греется (40-42град).

Всё гораздо проще. На выходах всех источников питания платы AC701 стоят последовательно резисторы очень маленького номинала (в районе 50 мОм если не ошибаюсь). Они там стоят как раз для того, чтобы эти хитрые контроллеры контроллировали overcurrent - слишком большое потребление. Ну а дальше - примитивный вольтметр и незабвенный закон Ома вам в помощь!

VladimirB
Цитата(Inanity @ Jan 4 2015, 08:06) *
Благодарю всех за активное участие, постараюсь ответить на все вопросы по порядку...
...
Да, знаю, вы о Traffic generetor-е говорите. Это первое, что пробовал. Через ILA смотрел - калибровку проходит, error-ов ни при инициализации, ни при последующей работе нет. Кстати, этот дизайн у меня потребляет 1.55W (ПЛИС + DDR3). А XPE насчитал 0.745W для ПЛИС + примерно 0.25W для DDR3 (моя оценка). Итого где-то на 0.5 вата перебор. Кто-то писал писал про неэффективноcть dc-dc на малых токах, это так, но на плате стоят dc-dc от Enpirion, у них практически у всех 90% начиная с 0.1А.
...


Хорошо, а потребление терминирующих резисторов 50Ом_to_VTT считали? У меня по расчётам получилось 20 резисторов 50Ом рассеивают 0.2Вт.
(0.867+0.25+0.2)/0.9 = 1.46Вт - уже близко к вашему реальному
А остальные элементы на плате ничего не потребляют? Кварцевый генератор, например?
LDO совсем нету? А VTT формируете импульсником?
akorud
Цитата
но на плате стоят dc-dc от Enpirion

Немного не в тему, но пользуясь случаем спрошу - как они? А то нас тут убеждают, что лучше ничего нет sm.gif , мы в общем-то и не против попробовать на следующей плате.
Inanity
Извиняюсь у окружающих, что пропал, временно переключился на тестирование PCIe. Что касается PCIe, то в общем всё работает, линк не падает, хотя я вижу периодические уходы автомата LTSSM в режим revovery. (разфазировка?). Потом он успешно возвращается в L0. Одним словом наблюдаю следующие циклические переходы: 0x16 (L0) -> 0x1C (Recovery Rcvrlock) -> 1D (Recovery Rcvrcfg) -> 0x20 (Recovery Idle). Не могу сказать, что картина мне очень нравится, но AC701 на PCIe x4 из L0 не уходит вообще...

На все вопросы и комментарии, касательно MIG и потребления ПЛИС, постараюсь ответить в ближайшее время.

Цитата(akorud @ Jan 9 2015, 12:32) *
Немного не в тему, но пользуясь случаем спрошу - как они? А то нас тут убеждают, что лучше ничего нет sm.gif , мы в общем-то и не против попробовать на следующей плате.


Это мой первый опыт работы с ними. Нареканий не было. Выбрал их т.к. более компактного решения при той же мощности и эффективности не нашёл (может плохо искал). Но когда снаружи не нужно ни диодов, ни индуктивностей, ни транзисторов - очень удобно).
VladimirB
Цитата(Inanity @ Jan 4 2015, 08:06) *
... но на плате стоят dc-dc от Enpirion, у них практически у всех 90% начиная с 0.1А...

Зашёл из любопытства на сайт Альтеры посмотреть волшебные Енпирионы, которые могут на 0.1А 90% КПД выдать при 1В выходного напряжения
и при этом обеспечить максимальный выходной ток при 1В выхода больше 3-4А.

Потыкал штук 7 микросхем, чего-то не видно у них КПД 90% даже на выходных токах 1-2А.
Которые с 12В до 1В понижают - дык у тех вообще выше 85% КПД не поднимается.
С 5В до 1В попроще понизить, но и там 90% редкость.

Я обычно, чтобы из 12В сделать питание ядра ПЛИС Xilinx, юзаю Линеары, чего-нить типа LTM4628 - у них в райное 85% КПД, если вы мне подскажете конкретный Енпирион, который занимает меньше места и имеет лучший КПД буду вам премного благодарен.
Или лучше скажите какие конкретно DC-DC Enpirion у вас используются, вы наверняка уже выбрали самое оптимальное решение.
Inanity
Цитата(VladimirB @ Jan 11 2015, 23:13) *
Или лучше скажите какие конкретно DC-DC Enpirion у вас используются, вы наверняка уже выбрали самое оптимальное решение.


С КПД, каюсь, малость наврал. 90% конечно, там получается при определённых выходных напряжениях. Реально получаются те же 85%, но согласитесь, что такой результат при такой занимаемой площади - очень даже неплохо. На моей плате максимальное питание снаружи 5в (либо 3.3в в другой конфигурации), соответственно использую модули, которые до 5в работают. Если конкретно, то EN5339QI (1.0\0.9в), EN5311QI (1.5в) и EP5357LUI (1.45v). Обратите внимание на интересный режим LLM у последнего.
Inanity
Возвращаюсь к проблеме MIG.

Кажется удалось локализовать проблему. Она, как верно предполагали по топику ранее, действительно заключается в статическом потреблении ПЛИС.


Ниже приведено потребление для всей платы.

Ситуации:
1). Плата вкл., тактовый генератор выкл., конфигурации нет - 0.75W (P1)
2). Плата вкл., тактовый генератор выкл., конфигурация есть - 1.3W (P2)
3). Плата вкл., тактовый генератор вкл., конфигурация есть - 2.05W (P3)

Если я правильно понимаю, то разница в мощности P3-P2 = 0.75W - чистая динамика. И это цифра, судя по моим расчётам соответствует действительности:
0.75W = 0.113W (15% потери КПД) + 0.48W (динамика проекта из XPE) + 0.15W (динамика DDR3)

А вот что со статикой?! P2-P1 = 0.55W - чистая статика проекта. А судя по XPE это число должно быть примерно 0.075W. Стало быть проблема в статике. Но что могли привести к такому потреблению?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.