[an error occurred while processing this directive]
|
Наверное и не одна. Как ловить непонятно.
История:
Компилирую квартусом исходные тексты на VHDL, требования к частоте ставлю нежные, быстро разводится и в железе (Stratix ep1s60) работает отлично.
Мучаю проблемные блоки в отдельных проектах до посинения, пока каждый не разведется как нужно.
Бэк-аннотирую и экспортирую logic lock регионы с разводкой.
Импортирую все разведенные куски в общий проект.
Развожу быстренько весь проект с заниженными требованиями и дрожащей рукой загружаю в железо - не работает, перевирает данные.
Быстро методом тыка в тигра в пустыне обнаруживаю какой блок неудачный. Ничего хитрого в нем нет: два автомата, два банка M-RAM, один clock, синхронный reset.
Импортирую все, кроме assignments-ов разводки этого блока - не работает.
Еще раз делаю проект, в котором все части компилируются из исходных текстов - работает. Заменяю исходные тексты проблемного блока на atom netlist - не работает. Делаю вывод, что битый только netlist.
Перекомпилирую проблемный блок в разных режимах.
Заработал когда отключил physical synthesis optimizations. Чудеса.
Снова собираю общий проект, развожу на нужную частоту - работает как часы.
А какая правильная методика лечить такие глюки?
E-mail: info@telesys.ru