Перейти к содержанию
    

Аттрибут KEEP не действует (как и SAVE), если в данном модуле сигнал лишь переназывается, а его источник не в данном модуле

Здравствуйте. В XST проблема в том, что аттрибут KEEP не действует, если в данном модуле сигнал лишь переназывается, а его источник не в данном модуле. Как всё же сохранить название сигнала в таком случае?

Другими словами, например, сигнал выходит из фифошки (коргеновской) в виде широкой шины и в моём модуле разделяется чисто логически на допустим 2 шины, далее эти 2 шины подаются на другие блоки без обработки.

Мне нужно для удобства наблюдения шин в Chipscope Analyzer сохранить такое разбиение одной широкой шины на 2 маленькие, т.е. нужно, чтобы в нетлисте явно присутствовали 2 маленькие шины, которые потом по отдельности можно наблюдать в чипскопе. Пока сохранить эти шины через KEEP не получается. Пробовал и SAVE, то же самое. Я понимаю, что это с одной стороны логически оправданно, раз сигнал порождён в другом модуле. Но мне то надо эти шины как-то вытянуть в целях отладки.

 

Может кто знает какие-то обходные пути, чтобы достичь того, что мне надо?

 

Я понимаю, что в самом Chipscope Analyzer можно вручную разбить шину, затем составить мелкие, как мне надо. Но у меня многовато шин, и при модификации прошивки большой вопрос, не придётся ли всё проделывать заново...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто знает какие-то обходные пути, чтобы достичь того, что мне надо?

Я не знаю, но предполагаю, что синтезатор развернул иерархию, и этого модуля не стало. Надо ему дать указание, что этот модуль следует оставить как есть, и не проводить оптимизацию его портов. Для synplify это атрибут syn_hier=hard (или даже locked?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет, этот модуль точно есть в иерархии как отдельный элемент, я это проверил (проект XPS всегда иерархию сохраняет).

Забыл уточнить, извиняюсь: аттрибут я поставил в VHDL файле на сигналы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забыл уточнить, извиняюсь: аттрибут я поставил в VHDL файле на сигналы.

Это я догадался. Поставьте еще на сам модуль (вернее на его экземпляр) атрибут, запрещающий boundary optimization на нем - даже если иерархия сохранена, то такие сигналы часто убираются из интерфейса модуля на этапе такой оптимизации, и идут мимо. (этим и отличаются syn_hier soft/firm/hard/[locked/fixed])

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так и подумал. Ну в-общем попробовал keep_hierarchy, помогает, но только на этапе синтеза и только если синтезить корку XPS (которая собственно и содержит в себе сигналы, которые необходимо сохранить) как отдельный проект и то не для всех сигналов (хотя для большинства). После PAR эти сигналы отсутствуют. При том даже дополнительное добавление атрибута keep ничего не изменяет ни в лучшую, ни в худшую сторону.

 

==============

 

По сложившейся традиции сам задал вопрос, сам отвечу ))))

Решение заключается в создании дубликатов цепей и постоянном назначении им наблюдаемых сигналов. А на дубликаты уже наложить аттрибут keep, а keep_hierarchy уже не требуется. После таких действий все необходимые сигналы появились в чипскопе в полном объёме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...