Здравствуйте,
в проекте с MicroBlaze использую контроллер DDR3 памяти - axi_s6_ddrx. Все работает хорошо, но время от времени при переразводке проекта возникает такой симптом: начинаю дебажить программу в SDK, программа грузится, иду по шагам, после нескольких шагов получаю сообщение вида
Код
Error: MicroBlaze Pipeline Stalled on a Blocking Instruction or Invalid Bus Access
Stalled PC: 0xc0000030
Try Resetting the Processor to Continue..
Код грузится во внешнюю DDR3 память. Причем, если не повезло с разводкой ошибка возникает всегда, только на разных адресах. Бывает что программа вообще не загружается, не проходит проверка elf файла.
Насколько я понимаю происходит неправильное чтение инструкции из DDR3 памяти и MicroBlaze дает клина. Т.е проблема в DDR3 контроллере. Частота DDR3 памяти 300МГц.
Кристалл забит на 80% и я понимаю, что это не очень хорошо. Из констрейнов относящихся к теме, имеется по сути один - на тактовую частоту входного клока, который идет на корку clock_generator. Он выполняется.
Нужны ли какие-нибудь констрейны для правильной работы DDR3 контроллера или за всем этим следит генератор корок?