Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не всегда запускается полностью программа на ПЛИС, в чем может быть завязка?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Valentin-k
проблема в следующем - система состоит из несколько плат, одна отвечает за сбор информации от остальных и передачи ее на пк, остальные занимаются сбором, фильтрацией и прочим. написана программа по обмену данными по 485 интерфейсу, сейчас в тестовом режиме - она просто с периодичностью шлет пакеты по 5к байт. модуль рабочий т.к. был проверен на первой плате - на компьютер пакеты доходили без потерь и пропусков. проблемы возникли при заливки этой программы в плис(используется спартан 6) на одной из оконечных плат для приема их первой платой.
суть проблемы в том что при включении данной платы пакеты информации в большинстве случаев вообще не появляются на данном выводе плис, изредка - на 8-14 включений она начинает штатно работать.
в начале я думал что возможно проблема в плисине, но в заливаемой программе параллельно работает модуль по приему данных с ацп, фильтрации и заливки их в цап(для отладки обработки информации в тестовом режиме вывод сделан) - так вот он функционирует всегда.

было предположение что что-то с выводами, для эксперимента на вывод по которому должны идти пакеты я вывел клоки идущие на цап, а данные вывел соответственно на вывод клоков(в файле ucf поменял местами номера пинов) - клоки стабильно шли при каждом включении, а вот на выводе клоков блоки данных так же появлялись раз в 8-15 включений.
я долго опять выверял модуль обмена и снова его уже в месте с модулем фильтрации зашил в плис на приемной плате - там все работает как часы. тогда ради интереса зашил всю программу в плис указав в качестве выводом для данных произвольный пин - произошло чудо - на том пине данные идут при каждом включении.


в чем может быть проблема? может ли как-то влиять расположение программы в самой плис? просто получается что на 46 выводе данные идут раз в 8-15 включений, но клоки идут стабильно(когда я их туда ставлю), на 1-ом пине(где клоки на цап идут штатно) - данные тоже идут раз в 8-15 включений, а на 142 пине, если я задаю его выходом для данных - они идут стабильно при каждом включении.
при этом все варнинги при компиляции относятся исключительно к модулю работающему с ацп и цап. аппаратную часть платы перепроверил - все питания есть, запитка портов есть, при этом на второй плисине не этой плате - программа стабильно идет на штатных пинах...
может кто подскажет хотя бы в каком направлении копать?
des00
Цитата(Valentin-k @ Apr 4 2015, 19:28) *
может кто подскажет хотя бы в каком направлении копать?

ИМХО где то виснет конечный автомат из-за асинхронных входов 96%. ищется элементарно чипскопом.
Valentin-k
Цитата(des00 @ Apr 4 2015, 15:22) *
ИМХО где то виснет конечный автомат из-за асинхронных входов 96%. ищется элементарно чипскопом.


спасибо, попробую.
AndreiUS
Цитата
ИМХО где то виснет конечный автомат из-за асинхронных входов 96%. ищется элементарно чипскопом.

Либо нет первоначальной корректной инициализации регистров, была похожая проблема.
Valentin-k
Цитата(des00 @ Apr 4 2015, 15:22) *
ИМХО где то виснет конечный автомат из-за асинхронных входов 96%. ищется элементарно чипскопом.


еще раз спасибо за наводку на чипскоп, до этого никогда как то не пользовался, даже не задумывался об этом инструменте...
косяк в программе нашел.
но возник вопрос по самому чипскопу - а по какому принципу он выводит список контактов для установки тригеров? почему то в этом списке присутствуют не все связи между блоками и модулями...некоторых сигналов я не нашел, хотя было интересно посмотреть
dm.pogrebnoy
Цитата(Valentin-k @ Apr 8 2015, 20:39) *
еще раз спасибо за наводку на чипскоп, до этого никогда как то не пользовался, даже не задумывался об этом инструменте...
косяк в программе нашел.
но возник вопрос по самому чипскопу - а по какому принципу он выводит список контактов для установки тригеров? почему то в этом списке присутствуют не все связи между блоками и модулями...некоторых сигналов я не нашел, хотя было интересно посмотреть


Синтезатор оптимизируем схему, многих сигналов вы после синтеза можете не найти. Выход - вставить ChipScope (ICON + ILA) как модуль непосредственно в код, предварительно сгенерив его в Сoregen. Другой вариант - сохранение структуры при помощи constraints, но он менее предпочтителен.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.