Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 16:29:50

Подскажите пожалуйста! Моя матрица Xilinx XC9572XL-10, корпус VQ44, работает в условиях огромных электромагнитных полей, в сварочном источнике, на её входы поступают от буферных микросхем логики (триггеры Шмидта) сигналы. Но после какого то времени начал замечать что при увеличении мощности источника, начались хаотичные выбрыки системы. Пол года винил в этом плату управления (она без матрицы). Но вот вчера обнаружил, что оказывается, в условиях сильнейших помех, порта вентильной матрицы, толи меняют свою функциональность, толи ещё что, но по факту, начинают коротить входной сигнал от буферных элементов на «землю», естественно, потребление всей схемы резко возрастает, буферная микросхема вместо своих нормальных 10мА начинает жрать 160мА, и это если зажимает всего один порт, а когда все три, то все 300мА, в результате проседает напряжение на всей плате и пошло поехало. Вчера к этому приходил методом проб и ошибок на самом аппарате, в конечном итоге спалил силовую часть, но до причины докопался. Потом начал моделировать на самодельном стенде без силовой части. Как оказалось, достаточно постукать чем то крупным металлическим по любой ножке TCK, TMS, TDI, TDO как любые входные порта начинают выбрыкиваться и менять свою функцию приема. Что интересно, когда убираешь высокий сигнал с этого порта, то он полностью восстанавливает свою работоспособность, вот почему я не сразу обнаружил эту особенность, ведь на одну из ножек приходит сигнал тактового генератора и если бы его заблокировало хоть на 0,001 сек то это привело бы к тотальному выходу из строя источника, ан нет, там сигнал постоянно прыгает то единица, то ноль и тем самым выводит из каматоза этот вход матрицы. Внутренняя часть матрицы уверен работает как часы, вижу по функциональности, но блок IO явно глючит со страшной силой. Это в любом случае плохо. Я далеко не профессионал в вентильных матрицах, может есть какие то опции в программировании которые железно забивают невозможность изменения функционала портов или ещё что?

Сначала мне показалось что матрица интерпретирует помеху как начало программирования и тем самым устанавливает что то на входах. Проверил, во время программирования ножки не меняют свою функциональность. Даже те ножки что начали коротить, продолжают коротить и далее, матрица в этот момент нормально программируется по своим ножкам TDO, TMS, TDI, TCK. Как и говорил ранее, перестают коротить только после снимания с них высокого уровня.

Все ножки программирования при установке в аппарат жестко, через цанговый разъём, присоединены к «земле», не помогает. Помеха походу наводится на маленьких отрезках ножек до разъема, а их длинна не превышает 8мм, только TDO 20мм потому что пересекает всю матрицу к разъему. А может и вовсе не на них помеха наводится!!!

При программировании в Schematic на все входа поставил IBUF, как прочитал из инфы, это разделяет внутреннюю часть схемы от внешних ножек через блок IO, так же пробовал их убирать, не помогает.

На ножки 15 (VCCint), 26 (VCCio) и 35 (VCCint) постоянно подано напряжение 3,3V, может на какую то ножку нужно подавать напряжение лишь в момент программирования?! А в общей плате её обесточивать. Раз их несколько, то в кристалле явно несколько блоков которые нужно запитывать, но точного предназначения их не знаю.

И последний момент, буферные элементы логики работают на 5V, соответственно сигналы с них поступают на входа матрицы близкие к 5V, по документации это нормально, вроде как не нужно подавать на VCCio=5V, да и в условиях без помех все работает отлично. Но всетаки уточняю это - может что то да меняет!

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

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 16:57:10

С такими вещами не встречался. Но некоторые моменты поясню:
MarkTok писал(а):При программировании в Schematic на все входа поставил IBUF,
Это совершенно ни на что не влияет. Это просто помощь для САПРа. Если вы не ставите IBUF и OBUF, то САПР на этапе компиляции сам их подставляет (в пропертях есть такая галка, и она по умолчанию установлена).
MarkTok писал(а):На ножки 15 (VCCint), 26 (VCCio) и 35 (VCCint) постоянно подано напряжение 3,3V, может на какую то ножку нужно подавать напряжение лишь в момент программирования?! А в общей плате её обесточивать. Раз их несколько, то в кристалле явно несколько блоков которые нужно запитывать, но точного предназначения их не знаю.
Они должны быть под питанием. ТОлько вы напутали с названиями, обычно один Vccint и два Vccio, по одному на каждый макроблок. Это позволяет Один макроблок согласовать с 3.3в логикой, а другой с 2.5в.
Кстати, в голову пришла мысль, а как скофигурированы входы, Случаем не в Bus-Hold режиме (keeper)?

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 18:17:41

uldemir
Проверил ножки 15 (VCCint), 26 (VCCio) и 35 (VCCint) все точно, Vccint - запитывает два макроблока, а Vccio - запитывает блок ввода/вывода (IO) как Вы и говорили только немножечко наоборот.
А вот насчет Bus-Hold режим (keeper) я если честно незнаю, конфигурить входа ниразу не пробовал, я больше схематехник, и плоховато знаю среду ISE, молодой полусамоучка.
Последний раз редактировалось MarkTok Вс июл 15, 2012 21:55:48, всего редактировалось 1 раз.

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 18:55:39

http://www.xilinx.com/support/documenta ... /ug445.pdf <-- даташит про ввод-вывод. А тип входов задаётся в настройках, вроде фиттера. Если Вы уж в схематике ковырялись, то уже знаете. Находите процесс fitting и там кликаете правой кнопкой и выбираете Properties. Там в параметре IO terminating можете посмотреть/поменять.

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 19:49:20

uldemir
Спасибо за совет, завтра доберусь до прагромматора попробую, нашел в Fitting => I/O Pin Termination опцию Keeper, она меняется на Float. Прочитал в инфе, но если честно пока ещё смутно что то понимаю о чем они там говорят насчет Keeper и Float, ясно было одно, что настоятельно отговаривают от использования режима Float, мотивируя что матрица начнет больше потреблять энергии. И всетаки можно поставить в режим Float, если ножки будут иметь внешние terminations - этого я непонял?!

Неужели это оно и есть? Хотя исходя из логики: Keeper - это сохраняющий режим, а Float - это плавающий. Казалось бы мне нужно как раз сохраняющий свое положение режим, тоесть как раз Keeper который и был по умолчанию, чтобы ножка была всегда входом и не чем иным. Непонятно, но проверить нужно однозначно

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 20:19:12

Там вроде должно быть pull-up как второй вариант. И ничего общего с "Keeper - это сохраняющий режим" не имеет. Это связано с работой входов как таковых. Известно, что входы не должны "висеть" в воздухе. Но при применении микросхем в шинах с различными источниками, возникают моменты когда на шине нет ни одного источника сигнала. Вот в эти моменты и возникает проблема. Например, КМОП логика если ей на входе установить половину питания становится совершенно неэкономичной. Поэтому применяют различные технологии: pull-up, pull-down, и вот новая штука - keeper, которая делает слабую подтяжку в ту сторону, какой последний сигнал был подан. Не знаю, как это может быть связано с вашей проблемой, но можно попробовать вместо keeper поставить pull-up, если ваша схема это позволяет. Хотя может виновата просто неудачная разводка или какие выбросы, которые защелкивают паразитные тиристоры в ПЛИС. Может кучка конденсаторов по питаню в непосредственной близости от кристалла поможет.

Re: Помогите в решении проблемы с входами в Xilinx

Вс июл 15, 2012 20:48:35

uldemir
Там для серии XC9572XL только два положения Keeper (по умолчанию) и Float. Впринципе это неважно я недопускаю того чтобы у меня входа висели в воздухе, но в условиях просто диких помех возможно что и происходит дребезг, который матрица как раз и интепретирует как висящий вход и начинает подтягивание по методу Keeper. Проверю. Блогадарю даже за то что откликнулись, на других форумах молчат как рыбы, я понимаю что влез куда в неизведанную многими область, далеко неспецифичную для основных программистов, а скорее ближе схематехникам, но со знанием пакета ISE. Главное чтобы помогло, а то я на этот Xilinx столько надежд возложил и тут такой провалище. А насчет конденсаторов по питанию тут не экономил, но подумаю как это место ещё немного улучшить. Может ещё и на входа небольшие высокочастотные RC цепочки поставить, потомучто выхода нет, нужно пытаться! Когда мощность источника мала работает лучше всех. А как только увеличиваешь, тут и начинает свистопляска, причем в самом неожиданом месте. Вот в чем, в чем, а в этом месте я не думал что будет закавыка.

Re: Помогите в решении проблемы с входами в Xilinx

Вт июл 17, 2012 01:48:30

Установка в положение Float непомогла, как зависали хоатично входа так и продолжали, уже начал методом перебора параметры Fitting-а менять, ничего недало, как будто ничего не меняю, ну хоть чтонить бы изменилось ((( Но похоже перевод микросхемы буфера сигналов (та что с триггерами Шмидта) на питание 3,3V помогло, но это ещё нужно изрядно проверять конечно, потомучто глюк может появляться несразу, но завести в состояние зависания обычными методами неполучилось. Может всетаки уже микросхемы на пределе используются при подаче 5В на входа, нормы тех. процесса изготовления микросхем уменьшают, может она уже и неподдерживает 5В, а я её насилую, бог его знает.

Re: Помогите в решении проблемы с входами в Xilinx

Вт июл 17, 2012 07:57:46

Ну вот меня тоже смущала эта "5в толерантность". Где-то была аппнота про согласование уровней, но не могу сейчас её найти. Может там нужно было какие токоограничители ставить?

p.s. про pullup я спутал с coolrunner.

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 08:24:08

Ребята, привет!!! вот тоже решил заняться ПЛМ-ками. Подскажите что надо сделать со схемой, чтоб выводы появились в FloorPlan IO?
Рабочая среда - Xilinx ISE Design Suite 13.1. Но вот вроде бы разобрался с построением схем, проект компилируется. Но только дабавляю в схему триггер, то в FloorPlan-е пропадают выходы с остальной логики схемы. Это беда какая-то....

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 08:43:17

В флорплане должны быть только те выводы которые идут наружу. Т.е. если вы рисуете в схематике, то те, что идут через IBUF, OBUF итп и на конце стоял правильный терминатор. Если на VHDL пишете, то те что описаны вначале, в entity. И еще, если делаете в схематике, есть команда проверки схемы - смотрите чтобы не было ошибок, и изучите каждое предупреждение - иногда оно очень важно.

А еще, вместо floorplan, можно просто ручками написать файл констрайнтов - тоже очень полезное умение. Я так и начинал.

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 08:45:25

uldemir спасибо. буду думать в этом направлении)))) а предупреждения таки есть

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 08:56:46

uldemir, а на счет ADD I/O Marker что скажете? именно их использовал для внешних линий

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 09:14:25

Да, это правильный терминатор. И вы хотите сказать, что их имена не появляются? Еще, внимательно в иерархии проекта смотрите, какой модуль верхнего уровня, а который подчинённого. Как-то раз был у меня случай такой, что схематик не совпадал с floorplanом. Иногда помогает удалить все промежуточные файлы через Cleanup Project files. Но в тот раз пришлось просто создать новый проект и проимпортировать схематик по новой.

Re: Помогите в решении проблемы с входами в Xilinx

Ср авг 08, 2012 09:23:58

таки нашел вот что. Нужные мне порты находятся вот в таких секциях
Код:
Unconstrained Ports (Inputs)
----------
    XLXN_88
    XLXN_89
    XLXN_90
    XLXN_91
    XLXN_79
    XLXN_253
    XLXN_254
    XLXN_255
    XLXN_256
    XLXN_257
    XLXN_258
    XLXN_259
    XLXN_260
    XLXN_261
    XLXN_264
Ответить