Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сбоит проект
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
D-Luxe
Работаю с Virtex-4FX.

Сбоит проект, причем очень интересно.

Изначально прошивка работает нормально, но после внесения изменений в программу процессора PowerPC, логика работы прошивки меняется и она перестает работать должным образом. Естественно программа воздействует как-то на прошивку, но проект начинает неправильно работать в независимой от процессора части. Как такое может быть ?

Еще другой вопрос: как нужно правильно выводить отладку на отладочные ножки ПЛИС. Просто присваиванием можно?

DEBUG1 <= slv_reg0(31);

Где DEBUG1 - выходит на верхний уровень и на этот сигнал написан констрейн. Наблюдал случаи когда после вывода на ножки сбоил проект.
Джеймс
сколько тактовых частот в проекте?
(причем не сколько "предполагалось", а сколько по отчету синтезатора или трассировщика?)
AlphaMil
Все констрейны (в частности временные) удовлетворены?
Andrew Su
Цитата(D-Luxe @ Aug 24 2011, 18:57) *
Работаю с Virtex-4FX.

Сбоит проект, причем очень интересно.

Изначально прошивка работает нормально, но после внесения изменений в программу процессора PowerPC, логика работы прошивки меняется и она перестает работать должным образом. Естественно программа воздействует как-то на прошивку, но проект начинает неправильно работать в независимой от процессора части. Как такое может быть ?

Еще другой вопрос: как нужно правильно выводить отладку на отладочные ножки ПЛИС. Просто присваиванием можно?

DEBUG1 <= slv_reg0(31);

Где DEBUG1 - выходит на верхний уровень и на этот сигнал написан констрейн. Наблюдал случаи когда после вывода на ножки сбоил проект.


Добрый день.
Если у Вас DEBUG1 это пин кристалла, то конструкция
DEBUG1 <= slv_reg0(31);
в общем случае может "потребовать" от map и place&router-а определенных перестановок на кристалле.
Например, если регистр slv_reg0 расположен в одной части кристалла, а DEBUG1 - находится далеко от него, в другом банке, другом клоковом домене.
Что, в свою очередь, может изменить результирующие задержки по сигналам и, как следствие, нарушить работоспособность проекта.
Можно пользоваться ChipScope. Хотя и с ним бывают проблемы.
Удачи.
D-Luxe
Цитата(Джеймс @ Aug 24 2011, 21:19) *
сколько тактовых частот в проекте?
(причем не сколько "предполагалось", а сколько по отчету синтезатора или трассировщика?)

Частот около 6.

Цитата(AlphaMil @ Aug 24 2011, 23:17) *
Все констрейны (в частности временные) удовлетворены?

Да!

Цитата(Andrew Su @ Aug 25 2011, 18:37) *
Добрый день.
Если у Вас DEBUG1 это пин кристалла, то конструкция
DEBUG1 <= slv_reg0(31);
в общем случае может "потребовать" от map и place&router-а определенных перестановок на кристалле.
Например, если регистр slv_reg0 расположен в одной части кристалла, а DEBUG1 - находится далеко от него, в другом банке, другом клоковом домене.
Что, в свою очередь, может изменить результирующие задержки по сигналам и, как следствие, нарушить работоспособность проекта.
Можно пользоваться ChipScope. Хотя и с ним бывают проблемы.
Удачи.

Да и пусть переставляет, констрейны же заданы.
Kompot
Цитата(D-Luxe @ Aug 25 2011, 18:50) *
Частот около 6.


Да!


Да и пусть переставляет, констрейны же заданы.



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

Автору я бы посоветовал тщательное временнОе моделирование в Моделсиме. И тест-бенч завместо процессора.
Очень настораживает, что "после внесения изменений в программу процессора.... проект начинает неправильно работать в независимой от процессора части. Как такое может быть ? ". - Вот именно, что НИКАК. Значит, суслик есть. И его надо искать. А если частот "около 6", то и сусликов может быть много.
Джеймс
Цитата(D-Luxe @ Aug 25 2011, 19:50) *
Частот около 6.

Мне нравится ваш ответ. Напоминает известный анекдот про таблицу умножения- "5,6, ну максимум 7".

А теперь по делу. Есть ли участки проекта, где шина (или одиночный сигнал), переходит с одной тактовой частоты на другую? Как это сделано?

И вообще-то... У вас случайно не такая ситуация, что "главных" частот 6, и есть еще много "вспомогательных", которые используюся тут и там чтобы что-то "подзадержать", "защелкнуть" и так далее?
VladimirB
Цитата(D-Luxe @ Aug 25 2011, 19:50) *
Частот около 6.... Да и пусть переставляет, констрейны же заданы.

И вы уверены что правильно написали констрейны для такого кол-ва тактовых частот?

Я писал и под спартаны3,6 и под виртексы 4,5,6, но с таким обилием тактовых не сталкивался .
Может их количество поресемплить слегка?


D-Luxe
Проблема решена тема закрыта!!
Джеймс
Цитата(D-Luxe @ Oct 24 2011, 20:37) *
Проблема решена тема закрыта!!

не напишите в двух словах, в чем было дело?..
а то вы всё спрашиваете (типа "напишите свои размышления по этому поводу"), а от вас никакого feedback-а нет
D-Luxe
Дело оказалось не в отладочных ножках, неправильно был написан констрейн на Aurora Clock Module clk.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.