Reffum2 0 28 января, 2017 Опубликовано 28 января, 2017 · Жалоба Использую XILINX Kintex-7. VIVADO 2016.2. Режим конфигурации JTAG и SPI FLASH. Если загружаю прошивку по JTAG, работает нормально. Но если записываю эту же прошивку во flash и включаю питание, то программа некоторое время работает, а потом переходит в непонятное состояние, но точно некорректное. Я проверял правильность записи во flash, проверка CRC вклюена. При этом если дождаться окончания конфигурации из Flash и подключиться к ПЛИС по JTAG, даже не выполняя конфигурации, а только считать состояние, то и в этом случае программа работает нормально. В чем может быть причина такого поведения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 28 января, 2017 Опубликовано 28 января, 2017 · Жалоба Здравствуйте! Проверьте сигнал сброса. Когда-то мучился с похожей проблемой и встречал тут на форуме не один раз подобное поведение ПЛИС с памятью. UPD. Проверьте вообще начальную инициализацию регистров. Должен быть синхронизатор сброса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 29 января, 2017 Опубликовано 29 января, 2017 · Жалоба Судя по ранним темам, что-то у вас с JTAG не то. Похоже ПЛИС ловит по JTAG какую-то муть после конфигурации. Есть документ "Command Line Tools User Guide" там было описано как выключить JTAG после конфигурации, если это конечно возможно для Kintex 7. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
10ff 0 29 января, 2017 Опубликовано 29 января, 2017 · Жалоба Как уже сказали, проверить состояния регистров при старте, т.е. правильность инициализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reffum2 0 30 января, 2017 Опубликовано 30 января, 2017 · Жалоба Здравствуйте! Проверьте сигнал сброса. Когда-то мучился с похожей проблемой и встречал тут на форуме не один раз подобное поведение ПЛИС с памятью. UPD. Проверьте вообще начальную инициализацию регистров. Должен быть синхронизатор сброса. У меня Block Design на Microblaze. Сброс там сделан стандартно через блок "Processor System Reset". Я сделал в доп. к основному проекту 1 простой счетчик, которые считает и при переполнении мигает светодиодом. Этот счетчик не зависает. Работает нормально, то есть проблема где-то внутри Block Design. Проверить насколько правильно она проинициализирован наверное, невозможно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 30 января, 2017 Опубликовано 30 января, 2017 · Жалоба Этот счетчик не зависает. Работает нормально, то есть проблема где-то внутри Block Design. Проверить насколько правильно она проинициализирован наверное, невозможно. Не очень понятно, как Вы проверяете светодиодом и почему счетчик должен зависать. Надо проверить счетчик, в который по сбросу что-то должно быть загружено, отличное от того, что в нем оказывается при подаче питания в отсутствие сигнала сброса. Возможно, Вы так и сделали, только я не понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reffum2 0 30 января, 2017 Опубликовано 30 января, 2017 (изменено) · Жалоба Не очень понятно, как Вы проверяете светодиодом и почему счетчик должен зависать. Надо проверить счетчик, в который по сбросу что-то должно быть загружено, отличное от того, что в нем оказывается при подаче питания в отсутствие сигнала сброса. Возможно, Вы так и сделали, только я не понял. У меня проект на Microblaze системе. И вот эта система зависает. Я написал простую программу, которая мигает светодиодом. Если записать ее по JTAG - все работает. Если затем создать прошивку ПЛИС и прошить ее во flash, то ПЛИС запускается поработает минуту и зависает. Но если успеть подключиться к ПЛИС по JTAG и сделать Read Device Status - работает нормально. Я в дополнение к Microblaze системе сделал простой счетчик, который мигает другим светодиодом. С этим светодиодом все ОК, он не зависает никогда. Если подключиться отладчиком после того, как она зависла, то либо пишет что процессор в Sleep и подключение невозможно, либо что он пошел выполняет код из недопустимой памяти(то есть по адресам, которые у меня в проекте не определены). Изменено 30 января, 2017 пользователем Олег Гаврильченко Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 30 января, 2017 Опубликовано 30 января, 2017 · Жалоба Понял. Тогда я со своими советами не в ту степь. Подождём знающих людей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба Что с кешами проца, используете или нет? не забыли их инвалидейтнуть после включения если пользуетесь? Есть ли внешняя память? Сошлись ли времянки? Пробовали шины проца сделать с промежуточными регистрами? Предположение: проц греет плис, расползается времянка, разваливается шина, он хватает левую команду и повисает. Когда вы подключаетесь жетагом, жетаг его держит или снижает частоту работы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slawikg 0 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба Использую XILINX Kintex-7. VIVADO 2016.2. Режим конфигурации JTAG и SPI FLASH. Если загружаю прошивку по JTAG, работает нормально. Но если записываю эту же прошивку во flash и включаю питание, то программа некоторое время работает, а потом переходит в непонятное состояние, но точно некорректное. Я проверял правильность записи во flash, проверка CRC вклюена. При этом если дождаться окончания конфигурации из Flash и подключиться к ПЛИС по JTAG, даже не выполняя конфигурации, а только считать состояние, то и в этом случае программа работает нормально. В чем может быть причина такого поведения? Подключая кабель вы соединяетесь с землёй компьютера, поэтому проверьте нули и питание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reffum2 0 2 февраля, 2017 Опубликовано 2 февраля, 2017 (изменено) · Жалоба Что с кешами проца, используете или нет? не забыли их инвалидейтнуть после включения если пользуетесь? Есть ли внешняя память? Сошлись ли времянки? Пробовали шины проца сделать с промежуточными регистрами? Предположение: проц греет плис, расползается времянка, разваливается шина, он хватает левую команду и повисает. Когда вы подключаетесь жетагом, жетаг его держит или снижает частоту работы... Временные ограничения удовлетворяются. Кэш не использую. Внешней памяти нет. Промежуточные регистры не пробовал, я не знаю, зачем они нужны и нужны ли они мне здесь? Изменено 2 февраля, 2017 пользователем Олег Гаврильченко Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 3 февраля, 2017 Опубликовано 3 февраля, 2017 · Жалоба со сходящимися времянками без кешей и внешней памяти, скорее всего не нужны. Прерывания какие-то есть, контроллер прерываний? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reffum2 0 6 февраля, 2017 Опубликовано 6 февраля, 2017 · Жалоба со сходящимися времянками без кешей и внешней памяти, скорее всего не нужны. Прерывания какие-то есть, контроллер прерываний? Контроллера прерываний нет. Есть только Microblaze, MDM и GPIO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться