Перейти к содержанию
    

не всегда запускается полностью программа на ПЛИС, в чем может быть завязка?

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

суть проблемы в том что при включении данной платы пакеты информации в большинстве случаев вообще не появляются на данном выводе плис, изредка - на 8-14 включений она начинает штатно работать.

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

 

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

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

 

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

спасибо, попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

еще раз спасибо за наводку на чипскоп, до этого никогда как то не пользовался, даже не задумывался об этом инструменте...

косяк в программе нашел.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

еще раз спасибо за наводку на чипскоп, до этого никогда как то не пользовался, даже не задумывался об этом инструменте...

косяк в программе нашел.

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

 

Синтезатор оптимизируем схему, многих сигналов вы после синтеза можете не найти. Выход - вставить ChipScope (ICON + ILA) как модуль непосредственно в код, предварительно сгенерив его в Сoregen. Другой вариант - сохранение структуры при помощи constraints, но он менее предпочтителен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...