Zugus 0 27 апреля, 2013 Опубликовано 27 апреля, 2013 · Жалоба Доброго времени суток. У меня есть вопрос по поводу фиксации элемента на кристалле. Основной проект собран в Project Navigator. Проект используется в ЦОС, активно используются DSP блоки и блочная память. Я дописал свою часть и пытаюсь её интегрировать в то, что уже есть. После добавления, проект собирается не совсем корректно, от сборки к сборке у меня не выдерживаются различные Timing Constraint. Ограничения срываются то в одном, то в другом месте. Начал разбираться, и обратил внимание, что это происходит от того, что ложится проект в разные части кристалла. Это я посмотрел в Plane Ahead, который можно запустить после Place & Route. В той части которая уже написана, видимо тоже решали такую проблему и решили её так : зафиксировали положение ключевых блоков на кристалле. DSP и блочную память. В очередной раз проект собрался практически хорошо. Все развелось, с незначительными нареканиями, но это не критично. Я решил сделать такой же финт ушами, и зафиксировать положение своих DSP. И посмотреть, что будет дальше. Попытался зафиксировать позицию этих элементов в Plane Ahead. Выбираю элемент, нажимаю fix он помечается оранжевым цветом. Проверяю, что в ucf файле появились строчки вида: INST "main/RXTX/ddc.UUT/repress/capture_data/dsp48_i/blk00000001/blk00000019" LOC = DSP48_X2Y21; Синтаксис совпадает с теми ограничениями, которые я уже видел, пути до элементов тоже правильные. Хорошо. Запускаю имплементацию заново, констрейны снова плавают. Снова запускаю Plane Ahead и вижу, то что я фиксировал, находится в другом месте. То что было зафиксировано ранее - тоже уползло. А часть всё таки легло как было написано. Если сделать PBlock, он отображается на кристалле корректно. А элементы которые я в него хочу поместить уезжают. То есть, то что я прописываю в ucf файле просто игнорируется, но игнорируется не совсем. Что то мешает. Что я делаю не так? Почему игнорируются мои констрейны? Если запустить например FPGA Editor после маппинга, то по пути, который прописан в констрейне этот элемент есть. Но он находится в другой позиции, не той что задаю я. А если после маппинга посмотреть в Plane Ahead. Элементы там где я бы хотел. Но после Place and Route где получится. Прикладываю к сообщению принтскирины свойств имплиментации. Стратегия сборки выбиралась SmartXplorer ом - maplogicopt. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 29 апреля, 2013 Опубликовано 29 апреля, 2013 · Жалоба Попробуйте убрать флаги Combinatorial Logic Optimization и Register Duplication. Но лично я ни разу с подобными проблемами не сталкивался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zugus 0 29 апреля, 2013 Опубликовано 29 апреля, 2013 · Жалоба Утром попробую. Спасибо. А может в каком-то логе можно поглядеть, почему это происходит? Я не нашел где. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ADA007 0 30 апреля, 2013 Опубликовано 30 апреля, 2013 · Жалоба Вам нужно создавать AREA_GROUP и вносить в группу необходимые компоненты, которые вы хотите залочить. Тогда таксировщик если и будет их тасовать, то только внутри группы. А по поводу синтаксиса надо быть очень внимательным...действительно некоторые констрейны могут игнориться и никаких воплей от среды разработки не слышно при этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 30 апреля, 2013 Опубликовано 30 апреля, 2013 · Жалоба Не нужно фиксировать отдельные элементы, только модули назначить по pblock. На самом деле, ISE настолько плохо трассирует, что самое элементарное распределение проекта по блокам позволяет достичь максимальных тактовых частот, особенно при цос обработке. В planahead есть экспорт ucf, он туда пишет area constraint. Последние версии planahead довольно стабильны и от ise можно отказаться полностью, даже chipscope он вставляет сам, без core inserter. Правда тормоз жуткий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zugus 0 1 мая, 2013 Опубликовано 1 мая, 2013 (изменено) · Жалоба Выключение флага Register Duplication - не помогло. AREA_GROUP на праздниках попробую.. А как назначить в pblock весь модуль? Изменено 1 мая, 2013 пользователем Женёк Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zugus 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Совершенно забыл про тему. В общем проблема решилась следующим образом. Выяснилось, что если из Project Navigator запустить Plane Ahead. Например в меню Place and Route, то он своим запуском ломает файлы проекта (в частности UCF, но не только его). Собственно проект после этого запуска начинает вести себя некорректно. Решил так. Собрал проект средствами Project Navigator, так, что Failing Constraints отсутствуют. Я делал через SmartXplorer. Потом, скопировал собранный проект, со всеми всеми исходниками в отдельную папку. И уже из неё запустился и включил Plane Ahead. Отметил на кристалле все что я хочу зафиксировать. Зафиксировал. Из полученного UCF файла скопировал новые сгенеренные строки и удалил этот проект. Все. После этого добавил строки в исходный проект в UCF, он их нормально ест. Получилось немного через .... бубен, но работает. Времени занимает не много. Элементы действительно фиксируются, я проверил. Проект собирается значительно быстрее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Решил так. Собрал проект средствами Project Navigator, так, что Failing Constraints отсутствуют. Я делал через SmartXplorer. Потом, скопировал собранный проект, со всеми всеми исходниками в отдельную папку. И уже из неё запустился и включил Plane Ahead. Отметил на кристалле все что я хочу зафиксировать. Зафиксировал. Из полученного UCF файла скопировал новые сгенеренные строки и удалил этот проект. Эх-эх-эх... Откройте для себя систему контроля версий, что ли. Тогда не нужны будут все эти временные папки и проекты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Эх-эх-эх... Откройте для себя систему контроля версий, что ли. Тогда не нужны будут все эти временные папки и проекты. Тут вопрос не в системе контроля версий, а в том, что некоторые тулзы от хилых (в частности Planahead) курочат UCF файлы. Это давно известный глюк. Меняют последовательность строк, убивают комментарии, добавляют какие-то свои ничем не обусловленные constraints. Это обстоятельство надо иметь ввиду и при пользовании такими тулзами я обычно сохраняю оригинальный UCF под другим именем, потом делаю изменения в нём и ручками переношу добавления из нового UCF в старый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Тут вопрос не в системе контроля версий,Вопрос именно в этом. Если файл под контролем, то все эти приседания с сохранением оригинальных файлов не нужны. git diff (ну или svn diff) всё прекрасно показывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться