Krys 2 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Здравствуйте. В XST проблема в том, что аттрибут KEEP не действует, если в данном модуле сигнал лишь переназывается, а его источник не в данном модуле. Как всё же сохранить название сигнала в таком случае? Другими словами, например, сигнал выходит из фифошки (коргеновской) в виде широкой шины и в моём модуле разделяется чисто логически на допустим 2 шины, далее эти 2 шины подаются на другие блоки без обработки. Мне нужно для удобства наблюдения шин в Chipscope Analyzer сохранить такое разбиение одной широкой шины на 2 маленькие, т.е. нужно, чтобы в нетлисте явно присутствовали 2 маленькие шины, которые потом по отдельности можно наблюдать в чипскопе. Пока сохранить эти шины через KEEP не получается. Пробовал и SAVE, то же самое. Я понимаю, что это с одной стороны логически оправданно, раз сигнал порождён в другом модуле. Но мне то надо эти шины как-то вытянуть в целях отладки. Может кто знает какие-то обходные пути, чтобы достичь того, что мне надо? Я понимаю, что в самом Chipscope Analyzer можно вручную разбить шину, затем составить мелкие, как мне надо. Но у меня многовато шин, и при модификации прошивки большой вопрос, не придётся ли всё проделывать заново... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Может кто знает какие-то обходные пути, чтобы достичь того, что мне надо? Я не знаю, но предполагаю, что синтезатор развернул иерархию, и этого модуля не стало. Надо ему дать указание, что этот модуль следует оставить как есть, и не проводить оптимизацию его портов. Для synplify это атрибут syn_hier=hard (или даже locked?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба нет, этот модуль точно есть в иерархии как отдельный элемент, я это проверил (проект XPS всегда иерархию сохраняет). Забыл уточнить, извиняюсь: аттрибут я поставил в VHDL файле на сигналы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Забыл уточнить, извиняюсь: аттрибут я поставил в VHDL файле на сигналы. Это я догадался. Поставьте еще на сам модуль (вернее на его экземпляр) атрибут, запрещающий boundary optimization на нем - даже если иерархия сохранена, то такие сигналы часто убираются из интерфейса модуля на этапе такой оптимизации, и идут мимо. (этим и отличаются syn_hier soft/firm/hard/[locked/fixed]) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба У меня XST, какой для него аналогичный констрейнт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Не уверен, возможно keep_hierarchy Yes|No|Soft Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Я так и подумал. Ну в-общем попробовал keep_hierarchy, помогает, но только на этапе синтеза и только если синтезить корку XPS (которая собственно и содержит в себе сигналы, которые необходимо сохранить) как отдельный проект и то не для всех сигналов (хотя для большинства). После PAR эти сигналы отсутствуют. При том даже дополнительное добавление атрибута keep ничего не изменяет ни в лучшую, ни в худшую сторону. ============== По сложившейся традиции сам задал вопрос, сам отвечу )))) Решение заключается в создании дубликатов цепей и постоянном назначении им наблюдаемых сигналов. А на дубликаты уже наложить аттрибут keep, а keep_hierarchy уже не требуется. После таких действий все необходимые сигналы появились в чипскопе в полном объёме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться