Jump to content

    
new123

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

Recommended Posts

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


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

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

Edited by new123

Share this post


Link to post
Share on other sites
4 hours ago, new123 said:

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

Share this post


Link to post
Share on other sites
42 minutes ago, Raven said:

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

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

Share this post


Link to post
Share on other sites
3 minutes ago, _sda said:

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

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

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

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

Share this post


Link to post
Share on other sites
19 часов назад, new123 сказал:

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

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

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

Share this post


Link to post
Share on other sites
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 будет много думать постоянно при сохранении

Edited by new123

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
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.

 

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.