Полная версия этой страницы:
Сделать из FPGA термометр
Shtirlits
Aug 4 2009, 17:21
Добрый день, коллеги.
Итак, имеем некую FPGA, хочется подстраховаться на случай перегрева.
Лучше, чтобы об этом подумал разработчик платы, но можно ли что-то сделать, когда все ужо запаяно и менять можно только прошивку?
Известно, что при изменении температуры свойства FPGA будут меняться.
Можно ли использовать этот эффект?
Например, сделать генератор на LUT-ах или других имеющихся элементах и мерять частоту.
rezident
Aug 4 2009, 17:33
Непонятна суть проблемы. Почему может возникнуть перегрев? Изначально неправильно тепловые режимы схемы были расчитаны или предполагается, что пользователь может в недопустимый тепловой режим ее загнать? Вообще при наличии какого-либо внешнего термодатчика и компаратора проблема решаема - сигма-дельта АЦП в FPGA реализуется несложно.
те микросхемы, которые физически можно перегреть (которые по даташиту могут требовать активного охлаждения), имеют в себе термодатчик.
vitus_strom
Aug 5 2009, 06:47
A cto za FPGA v nekotoryh iz nih uze est' diod dlja izmerenija T
artem79
Aug 5 2009, 07:36
Цитата(Shtirlits @ Aug 4 2009, 21:21)

Например, сделать генератор на LUT-ах или других имеющихся элементах и мерять частоту.
Идея конечно интересная. Но даже если и будет изменение частоты, то чем мерить собираетесь? Этой же FPGA?
Mahagam
Aug 5 2009, 07:50
Цитата(artem79 @ Aug 5 2009, 10:36)

Идея конечно интересная. Но даже если и будет изменение частоты, то чем мерить собираетесь? Этой же FPGA?
а как же ещё? почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.
вот только частота не только от температуры будет зависет, от просадок напряжения тоже.
Цитата(Mahagam @ Aug 5 2009, 11:50)

от просадок напряжения тоже.
Ну во первых питание можно и стабилизированное подать

А если все совсем так плохо, то и мерять его. Однако, все же, те чипы, что без встроенного датчика T, хрена с два перегреешь, если не разгонять выше допустимой частоты и не выходить за пределы допустимых рабочих температур окр. среды.
artem79
Aug 5 2009, 08:30
Цитата(Mahagam @ Aug 5 2009, 11:50)

а как же ещё? почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.
Если будет изменение частоты в блоке генератора, то и в блок измерения то же будут неблюдаться уходы. И хорошо если они разбегуться в разные стороны - увеличение диапазона измерения. А если будет компенсирование, то гораздо хуже. Возмлжно и мерить нечего будет.
Цитата
почти всегда на входах FPGA есть стабильная частота от кварца. относительно неё и можно измерять.
Тогда уж надо вести разговор относительно текущего проекта. А какая в нём частота? И соответственно какую дельта сможем ей измерить.
Цитата(artem79 @ Aug 5 2009, 12:30)

Тогда уж надо вести разговор относительно текущего проекта. А какая в нём частота? И соответственно какую дельта сможем ей измерить.
Какая бы частота не была, "дельту" можно измерить любую в пределах той точности, которую может обеспечить точность и стабильность генератора, вопрос лишь за какое время, и каким методом.
Главное и основное "но" это зависимость частоты, и, главное, зависимости частоты от температуры от технологических разбросов. Т.е. таких умельцев ждет калибровка хотя бы в четырех-пяти точках для каждого экземпляра ПЛИС.
Sergey'F
Aug 5 2009, 09:08
Это перестраховка или действительно перегревается? Может быть, лучше просто подобрать и поставить радиатор на клейком двустороннем скотче? В каталогах типа RS они есть. Стоит недорого.
IMHO, все эти идеи с генераторами ничем хорошим не закончатся. Приклейте радиатор и нормально организуйте вентиляцию/теплоотвод в корпусе.
Shtirlits
Aug 5 2009, 11:25
Спасибо за комментарии. Перефразирую условия задачи, боюсь не уникальной:
Плата готова, разработчики платы не поставили никаких средств контроля температуры.
Однако, имеющейся системы охлаждения было до сих пор достаточно.
Теперь речь идет о разработке другой прошивки, которая будет работать на бОльшей частоте,
хотя и не будет выходить за документированные пределы.
То есть, скорее всего все будет хорошо. Но осадочек есть.
Лепить радиаторы и стабилизировать питание в этой ситуации никто не соберется,
пока не случится сбой.
А что если сделать так:
Основная часть схемы крутит (Фурье какие-нибудь) на предельной частоте, во имя производительности она разводится без запаса, лишь бы STA не ругался. Схема для контроля разводится с запасом, с каким не жалко. Еще понадобится какой-то пробник, на который бы смотрела схема контроля. Пробник может быть как раз генератором на LUT-ах.
Смотрите, при анализе таймингов мы оперируем абсолютными единицами времени. В тактовом генераторе у нас стабильная частота, тоже абсолютная. А все остальные процессы в FPGA относительные, зависимые от температуры, напряжения, свойств экземпляра.
С помощью STA или руками по документации можно прикинуть предельное время прохождения сигнала через цепочку LUT-ов при условиях, которые использовались при контроле основной части. Я бы исходил изпредположения, что в FPGA все элементы примерно одинаковые. Если испытуемая часть схемы замедлилась, то и с основной могут начаться проблемы.
Калибровать не нужно на мой взгляд. Нужен только кварцевый генератор.
Цитата(Shtirlits @ Aug 5 2009, 15:25)

Калибровать не нужно на мой взгляд. Нужен только кварцевый генератор.
Нужно. Один экземпляр может замедлиться при сверхзапредельной температуре, близкой к повреждению кристалла лишь незначительно, второй же замедлится при подходе к границе разрешенного диапазона (но еще далеко от разрушения) уже значительно. Более того, в результате градиента в техпроцесе один угол большого чипа может замедлиться совсем не так, как другой.
ЗЫ. А если ничего не выходит за документированные режимы, включая условия охлаждения микросхемы, то даже и думать на эту тему не надо.
Михаил_K
Aug 5 2009, 14:35
Цитата(vitus_strom @ Aug 5 2009, 10:47)

A cto za FPGA v nekotoryh iz nih uze est' diod dlja izmerenija T
Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых.
Цитата(Михаил_K @ Aug 5 2009, 18:35)

Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых.

И что, при этом при каких-то допустимых условиях без активного охлаждения может перегреваться?
Sergey'F
Aug 5 2009, 16:28
Цитата(Михаил_K @ Aug 5 2009, 18:35)

Например Spartan3ADSP не имеет такого диода. Мать их так этих хилых.

А что в этом плохого? У Altera тоже диод есть только в Stratix III и IV, в Циклонах и первых двух Стратиксах его нет.
Цитата(Sergey'F @ Aug 5 2009, 20:28)

и первых двух Стратиксах его нет.
В первом точно есть. Ноги "tempdiodep" и "tempdioden"
Sergey'F
Aug 5 2009, 16:41
Цитата(SM @ Aug 5 2009, 20:35)

В первом точно есть. Ноги "tempdiodep" и "tempdioden"
Да, соврал. Есть во всех Стратиксах.
Но, по сути, это скорее диагностика. Вот он перегрелся - и что делать? Если неправильно спроектирован теплоотвод, то диод уже не поможет. А перегреть можно любую микросхему просто по условиям эксплуатации, например, если рядом на плате стоит что-то горячее, или заказчик требует работоспособность до 100С, а максимальная температура кристалла - до 125, то будет, о чем задуматься в плане теплоотвода.
Цитата(Sergey'F @ Aug 5 2009, 20:41)

Но, по сути, это скорее диагностика. Вот он перегрелся - и что делать?
Срубить клок, пока не остынет. Например.
rezident
Aug 5 2009, 17:37
Цитата(Sergey'F @ Aug 5 2009, 22:41)

Вот он перегрелся - и что делать?
А что делают с процессором в вашем компьютере, если радиатор отпал или кулер застопорился?
Thermal Throttling
ArMouReR
Aug 5 2009, 20:30
Если кол-во экземпляров не слишком большое - может просто навесить на сопрлях какой то термодиод.
Подклчить к тест поинтам или к какому то разьему ?
Вариант с Ring Oscilatorом хорошо работает на ASIC. А в FPGA будет очень вычислить тайминг с хорошей точностью.
Shtirlits
Aug 5 2009, 20:44
Цитата(ArMouReR @ Aug 6 2009, 00:30)

Если кол-во экземпляров не слишком большое - может просто навесить на сопрлях какой то термодиод.
Шпаргалками пользоваться не будем.
Я добавлю еще одно условие, чтобы уже не было никаких поползновений - работа удаленная, персонал около платы не имеет квалификации и полномочий что-то припаивать.
У разработчика прошивки выбор либо что-то предусмотреть, либо надеяться, что вентиляторы будут работать исправно и воздух окажется достаточно холодным.
ArMouReR
Aug 5 2009, 21:36
А кварц на входе есть, как я понимаю ? Причем дополнительный, а не тот который подключен к PLL для основной схемы ?
Shtirlits
Aug 5 2009, 22:15
Цитата(ArMouReR @ Aug 6 2009, 01:36)

А кварц на входе есть, как я понимаю ? Причем дополнительный, а не тот который подключен к PLL для основной схемы ?
В моем конкретном случае кварц один и он подключен к PLL.
Но я не понимаю, зачем нужен еще один?
ArMouReR
Aug 6 2009, 12:38
Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.
Компайлер будет ругаться.
Ну а к теме вопроса: посторой большой Ring Oscilator и попробуй посчитать его период счетчиком который сидит на кварце.
Потом плату в печь и посмори будет ли разница...
По идее чем длинее будет Ring Oscilator тем выше будет точность...
murmel1
Aug 6 2009, 19:54
Цитата(ArMouReR @ Aug 6 2009, 16:38)

Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.
Компайлер будет ругаться.
В стратиксе можно
Цитата(ArMouReR @ Aug 6 2009, 16:38)

Просто если я правильно помню посадить логику на вход с кварца паралельно с PLL нельзя.
А зачем? Если можно на выход PLL? Ее джиттер в данной задаче полностью по барабану, а частота стабильна в той же мере, что и входная.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.