Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FPGA cyclone 5K/10K pin 142 в чем может дело?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
123kill12
Если кто знает или догадывается почему это происходит.

есть FPGA Cyclone 5K на 144 ноги и есть такой же но с 10К. проект был разработал на 10K c использованием сигналтэп. после чего был сигналтэп был удален и проект переведен на 5К. все работает великолепно. Платы даже менять не пришлось так как оба чипа идентичны. но вот возникла проблема. есть 8 входов на которые идут сигналы в манчестерском коде. расшифровываются верно. на 10К работает замечательно. а на 5К когда подрубаешь сигнал на 4 вход(он заведен на 142 ногу FPGA) плисина начинает чудить(если не подрубать все кроме именно его тоже норм). причем не могу понять как(сигнал теп уже не залить проект занимает места под 4,5К из 5К). в программе на блоке что преобразует манчестер в параллельный поменял вход 3 на вход 4, а 4 на 3. все работает прекрасно. пытаюсь как то станцевать от этого и на выходе модуля(который преобразует манчестер в параллельный) меняю выход 3 на 4 и 4 на 3. и снова плис начинает чудить. но проверено что на 10К все работает.

Жду советов.
Резать плату, если не разберусь буду тока в четверг. так что можно пока более гуманные советы. а потом.....
sazh
Цитата(123kill12 @ Sep 13 2011, 18:01) *
Если кто знает или догадывается почему это происходит.

есть FPGA Cyclone 5K на 144 ноги и есть такой же но с 10К. есть 8 входов на которые идут сигналы в манчестерском коде.

Жду советов.


Что такое 5к, 10к.
8 входов (4 канала?)
Промоделируйте.
123kill12
5K это 5 тысяч логических вентелей. (EP3C5E144)
10К это 10 тысяч логических вентелей.(EP3C10E144)

8 входов это 8 входов. устройство тока получает информацию по 8 каналам.

все работает на модели.
sazh
Цитата(123kill12 @ Sep 14 2011, 08:51) *
5K это 5 тысяч логических вентелей. (EP3C5E144)
10К это 10 тысяч логических вентелей.(EP3C10E144)

8 входов это 8 входов. устройство тока получает информацию по 8 каналам.

все работает на модели.


С этими кристаллами у пользователей конференции были проблемы с этой фразой
(3) The E144 package has an exposed pad at the bottom of the package. This exposed pad is a ground pad that must be connected to the ground plane on your PCB.
This exposed pad is used for electrical connectivity, and not for thermal purposes.

Если у Вас все разводится , то и работать должно независимо от манипуляции количеством каналов.
Хотя я не понимаю, как можно корректно работать с манчестером без диф пары.
123kill12
вешаю на данный пин сигналтэп и он перестает глючит. но начинает глючить другой(((

Цитата(sazh @ Sep 14 2011, 10:23) *
(3) The E144 package has an exposed pad at the bottom of the package. This exposed pad is a ground pad that must be connected to the ground plane on your PCB.
This exposed pad is used for electrical connectivity, and not for thermal purposes.


Вы имеете ввиду 145 пин. который под брюхом чипа. Мы его подключили к земле( согласно даташит). без подключения этого пина чип даже не видится программатором.
sazh
Цитата(123kill12 @ Sep 14 2011, 09:30) *
вешаю на данный пин сигналтэп и он перестает глючит. но начинает глючить другой(((


Вы с протокола обмена начните. Да в проект загляните.
Приемник по любому перепаду должен корректно отрабатывать как начало посылки, так и подстройку внутренних часов, а также отслеживать паузу в линии. Это на одном проводе не сделать.
123kill12
манчестер шпарит по оптике и на EP3C10E144 все работает со всеми каналами. как это обьяснить?

волшебники форума и просто чародеи обьясните мне тупому почему так:
если я в в signalTap подключаю чтоб смотреть все 8 входов, компилю заливаю то глючит канал 5, без этого глючит канал 4.
если я к этому добавляю просмотр еще и состояния шины(6 бит адреса, 8 бит данных и 3 системных) то вообще глючит сразу.
но если все удалить из signalTap и добавить тока просмотр состояния шины. то опять же глючит 4 канал, а когда к этому добавляю еще и 8 каналов то НЕЧЕГО НЕ ГЛЮЧИТ. работает идеально.

что это за магия такая и как найти и обучиться этому колдунству?

может это связано с трасировкой, наводкой или гонкой сигналов. то как этим управлять в квартусе. просветите меня ибо как сказано выше походу я дурак.
IL-76
Когда проект то глючит, то работает от компиляции к компиляции при добавлении/удалении функционально несущественных частей, то это с большой долей вероятности банальная асинхронщина. Проверьте выполнение вех времянок в таймквесте или тайминганализере.
123kill12
есть хорошее чтиво как с timeQuest работать?
VladimirB
Цитата(123kill12 @ Sep 14 2011, 11:01) *
...что это за магия такая и как найти и обучиться этому колдунству?
может это связано с трасировкой, наводкой или гонкой сигналов. то как этим управлять в квартусе. просветите меня ибо как сказано выше походу я дурак.


+500 эта магия называется "асинхронщина" или по советской терминологии "гонки сигналов".
Этим надо управлять не в Кактусе, а в голове при написании HDL.
Кактус вам скажет что-нибудь, если в синхронной части проекта задержка между триггерами превышает заданный в констреинтах период тактовой частоты.
Асинхронные куски кода не поддаются временному анализу.
ViKo
Цитата(123kill12 @ Sep 14 2011, 12:13) *
есть хорошее чтиво как с timeQuest работать?

http://alterawiki.com/wiki/TimeQuest_User_Guide
http://www.naliwator.narod.ru/
http://embedders.org/blog/des00?page=1
123kill12
Спасибо.
123kill12
есть способы борьбы с этим?
пробовал настроить оптимизацию менять, но не помогает.
VladimirB
Цитата(123kill12 @ Sep 15 2011, 20:00) *
есть способы борьбы с этим?
пробовал настроить оптимизацию менять, но не помогает.

Есть - надо править HDL код. Настройки иногда могут помочь - но опять же нужно понять где косяк в коде.
123kill12
нужно каждый VHDL файл проверять в timeQuest и править?
bark
проверяется уже полностью откомпилированный проект.

Прочитайте внимательно последнюю из ссылок ViKo. стаьти "TimeQuest для чайников".
там материала разбираться на пару дней.

всё быстро станет понятно.

ещё добавлю, что когда-то столкнулись с подобной чертовщиной.. но у нас оказался бракованый блок питания. после замены на нормальный всё заработало.
123kill12
может это и лишнее но постараюсь описать проект.

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

понятно что шина данных должна быть в двунаправленная.
(Если запускать плату с контроллером. все работает великолепно. Для того чтоб разработать проект спаяли плату с EP3C10E144. и вот на нем все работает и сейчас. для проверки спаяли еще одну такую же плату и с ней таже котовасия.)

В FPGA нужно сделать управление направлением на шине. делаю так. (блок большой много входов и выходов, сделал как память: тоесть если адрес такой то то данные с шины идут на этот выход или с такого то входа передать в шину)


и как только подрубаю один из каналов, причем от прошивки к прошивке он меняется, он как то наводится или что то еще ASIC отваливается.
может все же управление шиной я не так сделал?
sazh
Цитата(123kill12 @ Sep 16 2011, 13:10) *
есть контроллер STM32 и к нему по шине подключен ASIC и FPGA.
сделал как память: тоесть если адрес такой то то данные с шины идут на этот выход или с такого то входа передать в шину


Если правильно перевел, то FPGA сидит в адресном пространстве контроллера.
В цикле записи контроллер выдает данные в FPGA, в цикле чтения - читает данные из FPGA.

Если проект FPGA корректно работает на частоте 100 Мгц, посмотрите как взаимодействуют разные клоковые домены, коммутация каналов манчестера при цикле чтения контроллером STM32 (clk100, cs, wr, rd)
123kill12
при начале глюков. я запускал отладчик и в ручную считывал основные регистры из FPGA и писал тоже. все работает отлично. тока мне кажется что он в друнаправелнную шину что то плюет и из-за этого асик не так работать начинает. в сигналтэп это не понять то конца иногда есть такие то переборы значений а иногда нет. хотя если оторвать всю нижнюю часть то работает отлично.
sazh
Цитата(123kill12 @ Sep 16 2011, 15:01) *
он в друнаправелнную шину что то плюет и из-за этого асик не так работать начинает


Сам он ничего в шину выдавать не может, только в цикле чтения по сигналу sys. (если только адресное пространство fpga с асиком не пересекается)
123kill12
у меня управляющие сигналы разделены чтоб как раз не было такого. у асика свой RD WR и ALE, а у FPGA CS, RD и WR.
VladimirB
Цитата(123kill12 @ Sep 16 2011, 22:36) *
у меня управляющие сигналы разделены чтоб как раз не было такого. у асика свой RD WR и ALE, а у FPGA CS, RD и WR.

Почему вы ошибку ищете только снаружи FPGA, когда с очень большой вероятностью она внутри?

Если на прошивка работает на одной модели ПЛИС и не хочет на другой, если при небольших изменениях в прошивке поведение глюков меняется сильно - то
скорее всего это косяк в прошивке - асинхронщина.

Версию про косяки в схемотехнике питания платы легко проверить осциллографом.


123kill12
И как же мне осцильником это увидеть? как понять что ПЛИС шумит в шину.
VladimirB
Цитата(123kill12 @ Sep 19 2011, 14:44) *
И как же мне осцильником это увидеть? как понять что ПЛИС шумит в шину.

Дык ткните в питание и посмотрите пульсации.

P.S. вот тут очередная радостная победа над собой асинхронщиной:
http://electronix.ru/forum/index.php?showt...st&p=973927


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.