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

Quartus, сохранение размещения

Форумчане, день добрый.


Может кто знает или пользуется, как можно сохранить размещение на чипе, можно даже не все, а какой нибудь entity?

Понимаю, что можно пользоваться LogicLock и Partition. Первый использую, но им можно только обозначить область размещения, второй просаживает времянку.
Очень сильно помог  Back-Annotate Assigments, но он сохраняет только размещение памяти, dsp, clock region. (хотя в хелпе по старым версиям явно есть и регистры и все что хочешь)

Начал рыть в сторону TCL, но там столько всего, что толком пока и не нашел. Может кто натолкнет в нужное направление.
Заранее спасибо.

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


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

Если кто будет когда нибудь искать, вот эта штука помогла, выложенная интелом на FPGA Wiki.

Сохраняет в файл абсолютно все размещения на чипе. Очень круто.

https://community.intel.com/t5/FPGA-Wiki/Back-Annotation-Script/ta-p/735236

 

Изменено пользователем new123

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


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

4 hours ago, new123 said:

А что, Intel наконец-то восстановил такой полезный ресурс, как Altera Wiki (пусть и под новым названием)?

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


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

42 minutes ago, Raven said:

А что, Intel наконец-то восстановил такой полезный ресурс, как Altera Wiki (пусть и под новым названием)?

нет, они грохнули все похоже навсегда, как и форум, так и wiki. Но поиском с community достать можно старые запасы. Они что могли, перенесли в community 

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


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

Интересно, а чем Back-annotation лучше чем Partition с Netlist Type Post Fit?

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


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

3 minutes ago, _sda said:

Интересно, а чем Back-annotation лучше чем Partition с Netlist Type Post Fit?

а я написал - не знаю как в малых проектах, но в больших у меня проседает времянка из за partition. На 100-200 пикосек, это критично. Даже если запуститься Timing Adviser - там тоже советуется partition убрать в погоне за таймингом.

+ поднималась на форуме тема, у квартуса есть такой нюанс, что он начинает лишнее создавать, если сделать компиляцию на компиляцию, не почистив базу перед этим, это уже поддастает.

c Back-annotation времянка фиксанулась, проект стабилизировался, теперь у меня нет такой головной боли

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


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

19 часов назад, new123 сказал:

Сохраняет в файл абсолютно все размещения на чипе.

Если вы уже разобрались с этим, можно ли сделать частичную фиксацию? Мне не нужно фиксить абсолютно все размещения на чипе.

Позволяет ли Back-annotation крутить seed для конкретного узла проекта?

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


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

42 minutes ago, _sda said:

Если вы уже разобрались с этим

ну как разобрался, выдвинул теорию, проверил, она мне подошла.

Теория очень простая, если я смогу сохранить размещения удачной компиляции, сможет ли она потом точно так же повторить.
Я не знаю, как в старых версиях Q, но в новых Back-Annotation сохраняет только размещение памяти, клок регион, dsp. Но уже после этого у меня появилась стабильность компиляций, пропал random. Сохраняет он предельно просто, в таком виде

set_location_assignment EC_X66_Y200_N37 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_ctrl|wr_control|descriptor|descriptor_fifo|ram_memory_rtl_0|auto_generated|altera_syncram_impl1|ram_block2a152
set_location_assignment EC_X66_Y200_N34 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_ctrl|wr_control|descriptor|descriptor_fifo|ram_memory_rtl_0|auto_generated|altera_syncram_impl1|ram_block2a149
set_location_assignment EC_X66_Y200_N35 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_ctrl|wr_control|descriptor|descriptor_fifo|ram_memory_rtl_0|auto_generated|altera_syncram_impl1|ram_block2a150

То есть достаточно это все прописать в qsf и все. 

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

Тот скрипт, который по сcылке, сохраняет точно в таком же виде. Я выборочно сделал из него нужные instance (как вы говорите частично) и прописал в qsf, зафиксировав их навсегда. При этом, для меня остается вопрос, что будет с такого вида записями:

set_location_assignment X153_Y372 -to instance|Mux_1603~517
set_location_assignment X89_Y207 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_mrd|avm_rd_master|avmm_inf_fifo|fifo_count[1]~_Duplicate
set_location_assignment X80_Y164 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_mwr|stmux2|align_data_fifo|datavalid_reg[0]~xsyn
set_location_assignment X79_Y214 -to pcie|pcie_256|pcie_s10_hip_avmm_bridge_0|dcore|dma_mrd|avm_rd_master|avmm_inf_fifo|fifo_reg[2][52]~RTM_44.comb

Я не уверен, что в новой компиляции будут присутствовать эти самые Mux, Duplicate и тд. Поэтому я дополнительно сохранил только регистры и все.

 

Из минусов. Если сохранить много записей, то QSF может достигнуть десятков MB, что не есть хорошо. Q будет много думать постоянно при сохранении

Изменено пользователем new123

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


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

Ясно, спасибо. Подумаю, нужно ли оно мне.

12 минут назад, new123 сказал:

Я не уверен, что в новой компиляции будут присутствовать эти самые Mux, Duplicate и тд. Поэтому я дополнительно сохранил только регистры и все.

А это серьёзный фактор, вполне может перебить все плюсы такого решения.

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


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

On 6/22/2021 at 10:35 AM, new123 said:

Я не уверен, что в новой компиляции будут присутствовать эти самые Mux, Duplicate и тд.

В описании именно об этом и предупреждают

Quote

Node names, especially combinatorial node names, change with each synthesis run, so if a user back-annotates their whole design, makes a small change, and then resynthesizes, most of the combinatorial node location assignments will no longer work and the user will get a worse fit.

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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