Jump to content
    

Мелкие вопросы по Vivado

2 hours ago, blackfin said:

MARK_DEBUG

Для отладки лучше вместе с DONT_TOUCH.

Share this post


Link to post
Share on other sites

2 hours ago, blackfin said:

 MARK_DEBUG:  UG901, page 58.

Ух ты!..  Спасибо!

17 minutes ago, andrew_b said:

Для отладки лучше вместе с DONT_TOUCH.

Через DONT_TOUCH я как раз автомат чтения (без оптимизации) и привязал к железу!  Шина адреса от него только хвост торчит из-за отсутствия памяти....

Интересно, как через ентитай-порты пропустить на два уровня вниз (там где сама память)?  Там эти шины тоже пометить как-то надо? Такой разрыв может быть не понят оптимизатором..

Share this post


Link to post
Share on other sites

On 4/22/2024 at 8:48 AM, andrew_b said:

Для отладки лучше вместе с DONT_TOUCH.

UG904, page 65:

Quote

The tools automatically add DONT_TOUCH properties of value TRUE to nets that have MARK_DEBUG properties of value TRUE. This is done to keep the nets intact throughout the implementation flow so that they can be probed at any design stage. This is the recommended use of MARK_DEBUG.

 

Share this post


Link to post
Share on other sites

29 minutes ago, blackfin said:

UG904, стр. 65:

 

Супер!   Вы настоящий друг!...

Share this post


Link to post
Share on other sites

3 часа назад, Мур сказал:

Интересно, как через ентитай-порты пропустить на два уровня вниз (там где сама память)?  Там эти шины тоже пометить как-то надо? Такой разрыв может быть не понят оптимизатором..

Не понял вопроса.

Share this post


Link to post
Share on other sites

1 hour ago, Flip-fl0p said:

Не понял вопроса.

image.png.69c47ee534773f144f9c3bc54a0eea9b.png

Share this post


Link to post
Share on other sites

12 hours ago, Мур said:

Тут все просто. Мне надо оставить память (в симуляции она работает), чтобы в отладке иметь доступ к выходу памяти при помощи ILA . К тому же сам автомат, который читает был из-за этого удален. Я его сумел оставить, но его шина адреса к памяти не доходит (ее нет после имплементации).. 

Меня задевает другое.  Имена памяти как указать?  Не нашел такой сложный случай в интернете...

Если я правильно понял, то вы хотите с помощью атрибутов сохранить элементы, которые синтезатор выкидывает в результате оптимизации. На 99% в вашем коде есть ошибка, из-за которой появляются незадействованные выходы, которые синтезатор пытается убрать. Попытайтесь найти ее, вместо того, что бы прибивать всё гвоздями (т.е атрибутами).

Если все же хотите сохранить, то наложите keep(в ise) или dont_touch(vivado) на сигналы входов-выходов памяти.

Edited by kskssk

Share this post


Link to post
Share on other sites

45 minutes ago, kskssk said:

.... На 99% в вашем коде есть ошибка, из-за которой появляются незадействованные выходы, которые синтезатор пытается убрать. Попытайтесь найти ее, вместо того, что бы прибивать всё гвоздями (т.е атрибутами).

Да! Не будет этого автомата чтения! Это мера вынужденная....

Тут нет ошибки. Замысел прост,-проверить функционирование основной логики при помощи кнопок (покрыть всю вариативность дизайна ) на плате, которых в конечном дизайне уже не будет. 

Функции кнопок будут выполнять регистры через AXI4.

Впереди интрига  использования шаблона VITIS  Peripheral Tests. Такая заготовка, как я понял, хороша использованием минимального ресурса внутренней памяти. Пока этой теме мало кто уделяет внимание, порождая примеры мастерства для освоения, облегчая быстрое внедрение SoC путем простого распараллеливания задач.  Буду благодарен любой информации по этой теме! Все вскользь и не конкретно... Пока не разжился. Но этому стоит выделять время(когда оно появится)!

Share this post


Link to post
Share on other sites

On 4/22/2024 at 6:38 AM, blackfin said:

 MARK_DEBUG:  

В итоге получил полноту связей без оптимизации подробным описание сигналов в обвязке

attribute MARK_DEBUG : string;
attribute MARK_DEBUG of DRAMs_ADC_B: signal is "TRUE";
attribute MARK_DEBUG of addr_radc: signal is "TRUE";
attribute MARK_DEBUG of ADCdatRAM: signal is "TRUE";
attribute MARK_DEBUG of wr_mem_s : signal is "TRUE";

Шина адреса успешно прошла сквозь иерархию в 3 уровня

Введение (отмена оптимизации!) экземпляров в железе обострило временные требования, что вызвало необходимость дополнительных конвейерных регистров (в промежуточном уровне со знаком вопроса на рисунке выше)  в шине данных совсем в другой памяти.

Этот вопрос исчерпан.  Спасибо еще раз всем!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...