intel AN 903 Забрзување на времето за затворање
AN 903: Забрзување на тајминг затворање во Intel® Quartus® Prime Pro Edition
Густината и сложеноста на модерните дизајни на FPGA, кои комбинираат вградени системи, IP и интерфејси со голема брзина, претставуваат сè поголеми предизвици за затворање на времето. Доцните архитектонски промени и предизвиците за верификација може да доведат до повторувања на дизајнот кои одземаат многу време. Овој документ резимира три чекори за забрзување на затворањето на времето со помош на потврдена и повторлива методологија во софтверот Intel® Quartus® Prime Pro Edition. Оваа методологија вклучува почетна RTL анализа и оптимизација, како и автоматизирани техники за минимизирање на времето на компилација и намалување на комплексноста на дизајнот и повторувањата потребни за затворање на времето.
Чекори за забрзување на тајмингот на затворање
Чекори за забрзување на тајмингот на затворање
Чекор 1: Анализирај и оптимизирај го дизајнот RTL
Оптимизирањето на изворниот код на вашиот дизајн е обично првата и најефективната техника за подобрување на квалитетот на вашите резултати. Асистентот за дизајн на Intel Quartus Prime ви помага брзо да ги исправите прекршувањата на основните правила за дизајн и препорачува промени во RTL кои ја поедноставуваат оптимизацијата на дизајнот и затворањето на времето.
Проблеми со затворањето на времето
- Прекумерните логички нивоа влијаат на редоследот на обработката, времетраењето и квалитетот на резултатите од Fitter.
- Мрежите со високи вентилатори предизвикуваат метеж со ресурси и додаваат дополнителна напнатост на патеките за податоци, непотребно зголемувајќи ја критичноста на патеката и комплицирајќи го затворањето на времето. Оваа напнатост е привлечната сила што ја влече патеката (и сите патеки што го делат тој висок сигнал за излез од вентилаторот) кон изворот на висок вентилатор.
Решенија за затворање на времето
- Исправи ги прекршувањата на помошникот за дизајн на страница 4 — за брзо да се идентификуваат и исправат прекршувањата на основните правила за дизајн релевантни за вашиот дизајн.
- Намалете ги логичките нивоа на страница 7 — за да се осигурате дека сите елементи на дизајнот можат да ги добијат истите оптимизации на Fitter и да се намали времето на компајлирање.
- Намалете ги мрежите со високи вентилатори на страница 9 - за да се намали застојот на ресурсите и да се поедностави затворањето на времето.
Поврзани информации
- „Проверка на правилата за дизајн со помошник за дизајн“, Упатство за корисникот на Intel Quartus Prime Pro Edition: Препораки за дизајн
- „Оптимизирај го изворниот код“, Упатство за корисникот на Intel Quartus Prime Pro Edition: Оптимизација на дизајнот
- „Дупликат регистри за контрола на вентилаторот“, Упатство за корисникот на Intel Quartus Prime Pro Edition: Оптимизација на дизајнот
Точни прекршувања на помошникот за дизајн
Извршувањето на првичната анализа на дизајнот за да се елиминираат познатите проблеми со затворањето на времето значително ја зголемуваат продуктивноста. Откако ќе извршите почетна компилација со стандардни поставки, можете повторноview Дизајнерскиот асистент известува за првична анализа. Кога е овозможено, Design Assistant автоматски известува за какви било прекршувања на стандардниот сет на упатства за дизајн препорачани од Intel FPGA. Можете да го стартувате Design Assistant во режимот за проток на компилација, што ви дозволува view повредите релевантни за компилацијата сtagес ти трчаш. Алтернативно, Design Assistant е достапен во режим на анализа во Time Analyzer и Chip Planner.
- Режим на проток на компилација— работи автоматски во текот на една или повеќе секундиtagес на компилација. Во овој режим, Design Assistant ги користи приливите (минливи) податоци за време на компилацијата.
- Режим на анализа- стартувајте го Design Assistant од Time Analyzer и Chip Planner за да ги анализирате прекршувањата на дизајнот на одредена компилацијаtagд, пред да се придвижи напред во текот на компилацијата. Во режимот на анализа, „Помошникот за дизајн“ користи статички податоци од снимката за компилација.
Помошникот за дизајн го означува секое прекршување на правилата со едно од следните нивоа на сериозност. Можете да одредите кои правила сакате да ги провери „Помошникот за дизајн“ во вашиот дизајн и да ги приспособите нивоата на сериозност, со што ќе ги елиминирате проверките на правилата што не се важни за вашиот дизајн.
Нивоа на сериозност на правилата за помошник дизајн
Категории | Опис | Боја на ниво на сериозност |
Критички | Адреса на проблемот за предавање. | Црвено |
Високо | Потенцијално предизвикува функционален неуспех. Може да укаже на исчезнати или неточни податоци за дизајнот. | Портокалова |
Средно | Потенцијално влијае на квалитетот на резултатите за fМАКС или искористување на ресурсите. | Браун |
Ниско | Правилото ги одразува најдобрите практики за насоките за RTL кодирање. | Сино |
Поставување на асистент за дизајн
Можете целосно да го приспособите Дизајнерскиот асистент за вашите индивидуални карактеристики на дизајнот и барањата за известување. Кликнете Assignments ➤ Settings ➤ Design Assistant Rule Settings за да наведете опции кои контролираат кои правила и параметри се применуваат на различнитеtages на дизајнот компилација за проверка на правилата за дизајн.
Поставки за правила за помошник за дизајн
Вклучување на асистент за дизајн
Кога е овозможено, „Помошникот за дизајн“ работи автоматски за време на компилацијата и известува за овозможени прекршувања на правилата за дизајн во Извештајот за составување. Алтернативно, можете да го стартувате Design Assistant во режим на анализа на специфична слика на компилација за да ја фокусирате анализата само на тоаtagд. За да овозможите автоматско проверување на асистент за дизајн за време на компилацијата:
- Вклучете Овозможи извршување на асистент за дизајн за време на компилацијата во поставките за правилата за помошник дизајн. За да го вклучите Design Assistant во режим на анализа за да потврдите одредена снимка во однос на правилата за дизајн што се применуваат на снимката:
- Кликнете на Пријави DRC во панелот за тајминг анализатор или задачи за планирање чипови.
ViewИНГ и корекција на резултатите од помошникот за дизајн
Извештаите на Design Assistant овозможија прекршување на правилата за дизајн во различни stagес од Извештајот за составување.
Дизајн асистент резултати во синтеза, планирање, поставување и финализирање извештаи
На view резултатите за секое правило, кликнете на правилото во списокот со правила. Се појавува опис на правилото и дизајн препораки за корекција.
Препорака за прекршување на правилата за помошник дизајн
Изменете го вашиот RTL за да ги исправите прекршувањата на правилата за дизајн.
Намалете ги логичките нивоа
Прекумерните логички нивоа може да влијаат на квалитетот на резултатите на монтерот бидејќи критичната патека на дизајнот влијае на редоследот и времетраењето на обработката на Fitter. The Fitter го поставува и насочува дизајнот врз основа на застојот на времето. Направувачот прво поставува подолги патеки со најмалку олабавување. Опременот генерално дава приоритет на патеките на повисоко логичко ниво пред патеките на пониско логично ниво. Вообичаено, по Fitter stage е завршена, критичните патеки што преостануваат не се патеки на највисоко логичко ниво. Фитерот дава претпочитана поставеност, рутирање и превртување на логиката на повисоко ниво. Намалувањето на логичкото ниво помага да се осигура дека сите елементи на дизајнот го добиваат истиот приоритет на Fitter. Изврши извештаи ➤ Прилагодени извештаи ➤ Пријави тајминг во Анализаторот за тајминг за да генерира извештаи што ги прикажуваат нивоата на логика на патеката. Ако патеката не успее во тајмингот и бројот на логички нивоа е голем, размислете за додавање на цевководи во тој дел од дизајнот за да ги подобрите перформансите.
Извештај за логичка длабочина во патеката
Длабочина на логичко ниво на известување
По Составувачот сtagд, можете да извршите report_logic_depth во конзолата Tcl на Time Analyzer view бројот на логички нивоа во доменот на часовникот. report_logic_depth ја прикажува распределбата на логичката длабочина меѓу критичните патеки, овозможувајќи ви да идентификувате области каде што можете да ги намалите логичките нивоа во вашиот RTL.
report_logic_depth -име на панел -од [get_clocks ] \ -до [get_clocks ]
report_logic_depth Излез
За да добиете податоци за оптимизирање на RTL, извршете го report_logic_depth по планот на компајлеротtagд, пред да ги стартувате преостанатите Fitter stagес. Инаку, пост-фитер извештаите вклучуваат и резултати од физичка оптимизација (ретајмирање и ресинтеза).
Пријавување на патеките на соседите
По вклучувањето на монтер (финализирање) stagд, можете да извршите report_neighbor_paths за да помогнете да се утврди основната причина за критичната патека (на прample, високо логично ниво, ограничување на повторното темирање, под-оптимална поставеност, вкрстување на I/O колона, задржување-поправка или други): report_neighbor_paths -to_clock -nпатеки -име на табла
report_neighbor_paths известува за најкритичните патеки за тајмингот во дизајнот, вклучувајќи ги поврзаните олабавување, дополнителни информации за резиме на патеката и полињата за ограничување на патеката.
report_neighbor_paths Излез
Report_neighbor_paths ги прикажува најкритичните за тајминг патеката пред и патеката по секоја критична патека. Ретајмингот или логичкото балансирање на патеката може да го поедностави затворањето на тајмингот ако има негативно забавеност на патеката, но позитивно забавување на патеката пред или патеката потоа.
За да овозможите превртување, проверете дали се вклучени следните опции:
- За регистри-овозможете задачи ➤ Поставки ➤ Поставки на компајлерот ➤ оптимизација на регистрирање ➤ Дозволете повторно време на регистрација
- За крајни точки на RAM-овозможете задачи ➤ Поставки ➤ Поставки на компајлерот ➤ Поставки за фитер (напредно) ➤ Дозволете ретајмирање на RAM-от
- За крајните точки на DSP - овозможете задачи ➤ Поставки ➤ Поставки на компајлерот ➤ Поставки за фитер (напредни) ➤ Дозволете повторно тајмирање на DSP
ЗАБЕЛЕШКА
Доколку е потребно дополнително логичко балансирање, мора рачно да го измените вашиот RTL за да ја преместите логиката од критичната патека на патеката пред или патеката потоа.
Ако излезот на регистарот е поврзан со неговиот влез, едната или двете соседни патеки може да бидат идентични со тековната патека. Кога барате соседски патеки со најлошо застој, се земаат предвид сите работни услови, а не само условите за работа на самата главна патека.
Визуелизирање на логичките нивоа во технолошката мапа Viewer
Технолошка карта Viewer, исто така, обезбедува шематски, технолошки мапирани, претстави на дизајнерската нет листа и може да ви помогне да видите кои области во дизајнот можат да имаат корист од намалувањето на бројот на логички нивоа. Можете исто така да го истражите физичкиот распоред на патеката во детали во Планерот на чипови. За да лоцирате тајминг патека во една од viewms, кликнете со десното копче на патеката во извештајот за тајмингот, посочете на Лоцирајте патека и изберете Лоцирај во технолошка карта Viewер.
Намалете ги мрежите со високи вентилатори
Мрежите со високи вентилатори може да предизвикаат застој на ресурсите, а со тоа да го отежнат затворањето на времето. Општо земено, компајлерот автоматски управува со мрежи со високи вентилатори поврзани со часовниците. Компајлерот автоматски ги промовира препознаените мрежи со висок вентилатор на глобалната мрежа на часовникот. Компајлерот прави поголем напор за оптимизација за време на Place and Route stages, што резултира со корисно дуплирање на регистарот. Во следните аголни случаи, можете дополнително да го намалите метежот со правење на следните рачни промени во вашиот дизајн RTL:
Аголни кутии за мрежа со висок вентилатор
Карактеристика на дизајнот | Рачна RTL оптимизација |
Мрежи со високи вентилатори кои допираат до многу хиерархии или физички далечни дестинации | Наведете ја задачата duplicate_hierarchy_depth на последниот регистар во цевката за рачно дуплирање на мрежи со голем вентилатор низ хиерархиите. Наведете ја задачата duplicate_register на дупликатите регистри за време на поставувањето. |
Дизајни со контролни сигнали до мемориските блокови DSP или M20K од комбинирана логика | Водете го контролниот сигнал до DSP или M20K меморијата од регистар. |
Регистрирајте дуплирање низ хиерархиите
Можете да ја наведете задачата duplicate_hierarchy_depth на последниот регистар во цевката за да го води создавањето на дуплирање на регистри и фан-аут. Следниве слики го илустрираат влијанието на следната задача duplicate_hierarchy_depth:
set_instance_assignment -name duplicate_hierarchy_depth -to \
Каде:
- register_name-последниот регистар во синџирот што го поддржува повеќе хиерархии.
- ниво_број - бројот на регистри во синџирот што треба да се дуплираат.
Слика 9. Пред дуплирање на регистрација
Поставете ја задачата duplicate_hierarchy_depth да имплементира дуплирање на регистри низ хиерархиите и креирајте дрво од регистри по последниот регистар во синџирот. Го одредувате името на регистарот и бројот на дупликати претставени со M во следниот прampле. Црвените стрелки ги прикажуваат потенцијалните локации на дупликат регистри.
- set_instance_assignment –име DUPLICATE_HIERARCHY_DEPTH –до regZ M
Регистрирај се дуплирање = 1
Со одредување на следното единечно ниво на дуплирање на регистерот (M=1) се дуплира еден регистар (regZ) по едно ниво од хиерархијата на дизајнот:
- set_instance_assignment –име DUPLICATE_HIERARCHY_DEPTH –до regZ 1
Регистрирај се дуплирање = 3
Со одредување на три нивоа на дуплирање на регистри (M=3) се дуплираат три регистри (regZ, regY, regX) по три, две и едно ниво од хиерархијата, соодветно:
- set_instance_assignment –име DUPLICATE_HIERARCHY_DEPTH –до regZ 3
Со дуплирање и туркање на регистрите надолу во хиерархиите, дизајнот го задржува истиот број на циклуси до сите дестинации, додека значително ги забрзува перформансите на овие патеки.
Регистрирајте дуплирање за време на поставувањето
Слика 12 на страница 11 покажува регистар со висок вентилатор до широко распространета област на чипот. Со дуплирање на овој регистар 50 пати, можете да го намалите растојанието помеѓу регистарот и дестинациите што на крајот резултира со побрзи перформанси на часовникот. Доделувањето duplicate_register му овозможува на компајлерот да ја искористи физичката близина за да го води поставувањето на нови регистри кои хранат подгрупа од фан-аут.
Слика 12. Регистрирајте дуплирање при поставување
Забелешка: За да емитувате сигнал низ чипот, користете мултиtagе гасоводот. Применете ја задачата duplicate_register на секој од регистрите во нафтоводот. Оваа техника создава структура на дрво што го емитува сигналот низ чипот.
ViewИНГ удвојување резултати
Следејќи ја дизајнерската синтеза, view дуплирањето резултира во извештајот за резиме на удвојување на хиерархиско стебло во папката Синтеза на Извештајот за составување. Извештајот го дава следново:
- Информации за регистрите кои имаат задача duplicate_hierarchy_depth.
- Причина за должината на синџирот што можете да ја користите како почетна точка за понатамошни подобрувања со задачата.
- Информации за поединечните регистри во синџирот што можете да ги користите за подобро да ја разберете структурата на имплементираните дупликати.
Извештајот Fitter вклучува и дел за регистри кои имаат поставка duplicate_register.
Применете ги техниките за оптимизација на компајлерот
Дизајни кои користат многу висок процентtage од ресурсите на уредот FPGA може да предизвика застој на ресурси, што резултира со помал fMAX и покомплексно затворање на времето. Поставките за режимот за оптимизација на компајлерот ви дозволуваат да го одредите фокусот на напорите на компајлерот за време на синтезата. За прampле, ја оптимизирате синтезата за Површина или Рутабилност при решавање на застојот на ресурсите. Можете да експериментирате со комбинации на истите овие поставки за режимот за оптимизација во Intel Quartus Prime Design Space Explorer II. Овие поставки и други рачни техники може да ви помогнат да го намалите застојот во високо користените дизајни.
Проблем со затворање на времето
- Дизајните со многу висока искористеност на ресурсите на уредот го комплицираат затворањето на времето.
Решенија за затворање на времето
- Применете ги режимите и стратегиите за оптимизација на компајлерот на страница 13 - наведете ја целта на примарниот режим на оптимизација за синтеза на дизајнот.
- Експериментирајте со Опциите за област и рутализација на страница 16—применете дополнителни збирки на поставки за да го намалите застојот и да ги исполните целите на областа и рутализацијата.
- Размислете за фрактална синтеза за дизајни со интензивна аритметика на страница 16—За дизајни со голема брзина и аритметички интензивни, синтезата на фрактал го намалува искористувањето на ресурсите на уредот преку регулација на мултипликаторот, повторно темирање и континуирано аритметичко пакување.
Поврзани информации
- Поглавје „Затворање на времето и оптимизација“, Упатство за корисникот на Intel Quartus Prime Pro Edition: Оптимизација на дизајнот
- Упатство за корисникот на Intel Quartus Prime Pro Edition: Компилација за дизајн
Примени режими и стратегии за оптимизација на компајлерот
Користете ги следните информации за да ги примените режимите за оптимизација на компајлерот и стратегиите за компилација на Design Space Explorer II (DSE II).
Експериментирајте со поставките за режимот за оптимизација на компајлерот
Следете ги овие чекори за да експериментирате со поставките за режимот за оптимизација на компајлерот:
- Креирајте или отворете проект Intel Quartus Prime.
- За да ја одредите стратегијата за оптимизација на високо ниво на компајлерот, кликнете Assignments ➤ Settings ➤ Compiler Settings. Експериментирајте со кое било од следните поставки за режимот, како што опишува Табела 4 на страница 14.
- За да го компајлирате дизајнот со овие поставки, кликнете Start Compilation на контролната табла за компилација.
- View резултатите од составувањето во Извештајот за составување.
- Кликнете на Tools ➤ Time Analyzer до view резултатите од поставките за оптимизација на перформансите.
Поставки за режимот за оптимизација на компајлерот
Режими за оптимизација (страница со поставки на компајлер)
Режим на оптимизација | Опис |
Балансиран (нормален проток) | Компајлерот ја оптимизира синтезата за избалансирана имплементација која ги почитува временските ограничувања. |
Напор со високи перформанси | Компајлерот го зголемува напорот за оптимизација на времето за време на поставувањето и насочувањето и овозможува оптимизации за физичка синтеза поврзани со тајмингот (поставки за оптимизација по регистар). Секоја дополнителна оптимизација може да го зголеми времето на компилација. |
Високи перформанси со максимален напор за поставување | Ги овозможува истите оптимизации на компајлерот како Напор со високи перформанси, со дополнителен напор за оптимизација на поставеноста. |
Супериорни перформанси | Ги овозможува истите оптимизации на компајлерот како Напор со високи перформанси, и додава повеќе оптимизации за време на Анализа и синтеза за да ги максимизира перформансите на дизајнот со потенцијално зголемување на логичката област. Ако искористеноста на дизајнот е веќе многу висока, оваа опција може да доведе до потешкотии во монтирањето, што исто така може негативно да влијае на севкупниот квалитет на оптимизација. |
Супериорни перформанси со максимален напор за поставување | Ги овозможува истите оптимизации на компајлерот како Супериорни перформанси, со дополнителен напор за оптимизација на поставеноста. |
Агресивна област | Компајлерот прави агресивни напори да ја намали површината на уредот потребна за имплементација на дизајнот на потенцијална сметка на перформансите на дизајнот. |
Висок напор за рутализација на поставување | Компајлерот прави големи напори да го насочи дизајнот на потенцијален трошок на областа на дизајнот, перформансите и времето на компилација. Компајлерот троши дополнително време за намалување на искористеноста на рутирањата, што може да ја подобри рутираноста и исто така заштедува динамичка енергија. |
Висок напор за рутализација на пакување | Компајлерот прави големи напори да го насочи дизајнот на потенцијален трошок на областа на дизајнот, перформансите и времето на компилација. Компајлерот троши дополнително време на пакување регистри, што може да ја подобри рутираноста и исто така заштедува динамичка енергија. |
Оптимизирајте ја Netlist за рутибилност | Компајлерот имплементира модификации на нетлистите за да ја зголеми рутабилноста на можна сметка на перформансите. |
продолжи… |
Режим на оптимизација | Опис |
Напор со висока моќност | Компајлерот прави големи напори да ја оптимизира синтезата за мала моќност. Напор со висока моќност го зголемува времето на траење на синтезата. |
Агресивна моќ | Вложува агресивни напори за оптимизирање на синтезата за мала моќност. Компајлерот дополнително ја намалува употребата на сигнали за насочување со највисоките специфицирани или проценети стапки на префрлување, заштедувајќи дополнителна динамичка моќност, но потенцијално влијаејќи на перформансите. |
Агресивно време на компајлирање | Го намалува времето за компајлирање потребно за имплементација на дизајнот со намален напор и помалку оптимизации на перформансите. Оваа опција оневозможува и некои функции за детално известување.
Забелешка: Вклучување Агресивно време на компајлирање ги овозможува поставките на Intel Quartus Prime File (.qsf) поставки кои не можат да се отфрлат од други поставки .qsf. |
Design Space Explorer II стратегии за компилација
DSE II ви овозможува да најдете оптимални поставки за проектот за цели за оптимизација на ресурси, перформанси или моќност. DSE II ви овозможува повторливо да составувате дизајн користејќи различни претходно поставени комбинации на поставки и ограничувања за да постигнете одредена цел. DSE II потоа ја известува најдобрата комбинација на поставки за да ги исполните вашите цели. DSE II, исто така, може да преземе напредtagд на способности за паралелизација за компајлирање семиња на повеќе компјутери. Поставките за стратегија за компилација на DSE II ги повторуваат поставките за режимот за оптимизација во Табела 4 на страница 14
Дизајн Space Explorer II
Следете ги овие чекори за да ја одредите Стратегијата за составување за DSE II:
- За да го стартувате DSE II (и да го затворите софтверот Intel Quartus Prime), кликнете Tools ➤ Launch Design Space Explorer II. DSE II се отвора по затворањето на софтверот Intel Quartus Prime.
- На лентата со алатки DSE II, кликнете на иконата Exploration.
- Проширете ги точките за истражување.
- Изберете Истражување дизајн. Овозможете која било од стратегиите за компилација за да се изврши истражување на дизајнот насочено кон тие стратегии.
Намалете го метежот за висока искористеност
Дизајните што користат над 80% од ресурсите на уредот обично претставуваат најголеми тешкотии во тајмингот на затворање. Можете да ги примените следните рачни и автоматизирани техники за дополнително да го намалите застојот и да го поедноставите затворањето на времето.
- Експериментирајте со Опциите за област и рутираност на страница 16
- Размислете за фрактална синтеза за аритметички интензивни дизајни на страница 16
Експериментирајте со Опциите за област и рутализација
Кога користењето на уредот предизвикува застој во насочувањето, можете да експериментирате со поставките за оптимизација на Area и Routability за да го намалите искористувањето на ресурсите и застојот за вашиот дизајн. Кликнете Assignments ➤ Settings ➤ Compiler Settings ➤ Optimization Mode за да пристапите до овие поставки:
Опции за областа и рутализација
Размислете за фрактална синтеза за аритметички интензивни дизајни
За дизајни со висока пропусност и аритметички интензивни, можете да овозможите автоматска оптимизација на синтезата на фрактали за да ја подобрите употребата на ресурсите на уредот. Оптимизациите на фракталната синтеза вклучуваат регулација на мултипликаторот и повторно темирање, како и континуирано аритметичко пакување. Оптимизациите цели кон дизајни со голем број аритметички операции со мала прецизност (како што се собирања и множење). Можете да овозможите синтеза на фрактали на глобално ниво или само за одредени множители. Под идеални услови, оптимизацијата на синтезата на фрактал може да постигне намалување на површината за 20-45%.
Регулирање на мултипликаторот и ретајмирање
Регуларирањето на мултипликаторот и повторното тајмирање врши заклучок за високо оптимизирани имплементации на меки мултипликатори. Компајлерот може да примени ретајмирање наназад на два или повеќе цевководиtagес ако е потребно. Кога ќе овозможите синтеза на фрактали, компајлерот применува регуларност на мултипликаторот и ретајмирање на множители со знак и непотпишан.
Слика 16. Ретајмирање на мултипликаторот
ЗАБЕЛЕШКА
- Регуларацијата на мултипликатор користи само логички ресурси и не користи DSP блокови.
- Регуларирањето на мултипликаторот и повторното темирање се применуваат и на потпишаните и на непотпишаните множители во модулите каде што е поставена задачата FRACTAL_SYNTHESIS QSF.
Континуирано аритметичко пакување
Континуираното аритметичко пакување повторно ги синтетизира аритметичките порти во логички блокови со оптимална големина за да се вклопат во Intel FPGA LAB. Оваа оптимизација овозможува до 100% искористување на ресурсите на LAB за аритметичките блокови. Кога ќе овозможите синтеза на фрактали, компајлерот ја применува оваа оптимизација на сите ланци за пренос и логички порти со два влеза. Оваа оптимизација може да спакува стебла на собирачи, множители и која било друга логика поврзана со аритметика.
Континуирано аритметичко пакување
ЗАБЕЛЕШКА
Забележете дека континуираното аритметичко пакување работи независно од регуларизацијата на мултипликаторот. Значи, ако користите множител што не е регулариран (како што е пишување сопствен множител), тогаш континуираното аритметичко пакување сè уште може да работи. Оптимизацијата на фракталната синтеза е најсоодветна за дизајни со забрзувачи за длабоко учење или други функции со висока пропусност, аритметички интензивни кои ги надминуваат сите ресурси на DSP. Овозможувањето на синтеза на фрактал низ целиот проект може да предизвика непотребно надуеност на модулите што не се соодветни за оптимизација на фрактали.
Овозможување или оневозможување на фрактална синтеза
За уредите Intel Stratix® 10 и Intel Agilex™, оптимизацијата на синтезата на фракталите се извршува автоматски за мали множители (секоја A*B изјава во Verilog HDL или VHDL каде бит-широчината на операндите е 7 или помалку). Можете исто така да ја оневозможите автоматската фрактална синтеза за мали множители за овие уреди користејќи еден од следниве методи:
- Во RTL, поставете го DSP multistyle, како што опишува „Multstyle Verilog HDL Synthesis Attribute“. За прample: (* multistyle = „dsp“ *) модул foo(…); модул foo(..) /* синтеза multstyle = „dsp“ */;
- Во .qsf file, додадете како задача на следниов начин: set_instance_assignment -име DSP_BLOCK_BALANCING_IMPLEMENTATION \DSP_BLOCKS -до r
Дополнително, за уредите Intel Stratix 10, Intel Agilex, Intel Arria® 10 и Intel Cyclone® 10 GX, можете да овозможите синтеза на фрактали на глобално ниво или за специфични множители со опцијата Fractal Synthesis GUI или соодветната FRACTAL_SYNTHESIS .qsf доделување:
- Во RTL, користете altera_attribute на следниов начин: (* altera_attribute = „-име FRACTAL_SYNTHESIS ON“ *)
- Во .qsf file, додадете како задача на следниов начин: set_global_assignment -name FRACTAL_SYNTHESIS ON -ентитет
Во корисничкиот интерфејс, следете ги овие чекори:
- Кликнете Assignments ➤ Assignment Editor.
- Изберете фрактална синтеза за име на задачата, Вклучено за вредност, аритметички интензивно име на ентитет за ентитет и име на пример во колоната До. Можете да внесете џокер (*) за To да ги доделите сите примероци на ентитетот.
Слика 18. Доделување на фрактална синтеза во уредувач на задачи
Поврзани информации
- Multstyle Verilog Атрибут за синтеза на HDL
- Во Intel Quartus Prime Help.
Зачувај ги задоволителните резултати
Можете да го поедноставите затворањето на времето со задоволување на резултатите од компилацијата за да го заклучите поставувањето на големи блокови поврзани со часовници, RAM и DSP. Слично на тоа, техниката за повторна употреба на блокови на дизајн ви овозможува да зачувате задоволителни резултати од компилацијата за одредени блокови за дизајн на FPGA периферија или основни логички блокови (логика што содржи хиерархиски дизајн на пример), а потоа повторно да ги користите тие блокови во следните компилации. При повторна употреба на блок за дизајн, ја доделувате хиерархиската инстанца како партиција за дизајн, а потоа ја зачувувате и извезувате партицијата по успешната компилација. Зачувувањето и повторното користење на задоволителни резултати ви овозможува да ги фокусирате напорите и времето на компајлерот само на делови од дизајнот што немаат затворено време.
Проблем со затворање на времето
- Освен ако не е заклучен, компајлерот може да имплементира дизајнерски блокови, часовници, RAM-и и DSP различно од компилација до компилација во зависност од различни фактори.
Решенија за затворање на времето
- Заклучи ги часовниците, RAM-овите и DSP-ите на страница 20-назад наведете задоволителни резултати од компилацијата за да го заклучите поставувањето на големи блокови поврзани со часовници, RAM-и и DSP-и.
- Зачувај ги резултатите од дизајнот на партицијата на страница 21—зачувај ги партициите за блоковите што одговараат на времето и фокусирај ја оптимизацијата на другите дизајнерски блокови.
Поврзани информации
- Помош
- AN-899: Намалување на времето на компајлирање со брзо зачувување
- Упатство за корисникот на Intel Quartus Prime Pro Edition: Дизајн базиран на блок
Заклучување на часовници, RAM и DSP
Можете да го поедноставите затворањето на времето со задоволување на резултатите од компилацијата за да го заклучите поставувањето на големи блокови поврзани со часовници, RAM и DSP. Заклучувањето на поставувањето на големи блокови може да произведе повисок fMAX со помал шум. Заклучувањето на големи блокови како RAM и DSP може да биде ефективно бидејќи овие блокови имаат потешка поврзаност од обичните LAB, што го комплицира движењето за време на поставувањето. Кога семето дава добри резултати од соодветното поставување на RAM и DSP, можете да го доловите тоа поставување со задна прибелешка. Последователните компајли потоа можат да имаат корист од висококвалитетното поставување на RAM и DSP од доброто семе. Оваа техника нема значителна корист за дизајните со многу малку RAM или DSP. Кликнете Assignments ➤ Back-Annotate Assignments за да ги копирате доделите на ресурсите на уредот од последната компилација на .qsf за употреба во следната компилација. Изберете го типот на задна прибелешка во списокот за типови на задни прибелешки.
Поле за дијалог за задачи за назад-Anotate
Алтернативно, можете да извршите задна прибелешка со следнава извршна датотека quartus_cdb. quartus_cdb –back_annotate [–dsp] [–ram] [–clock]
ЗАБЕЛЕШКА
- Извршната датотека ги поддржува дополнителните [–dsp], [–ram] и [–clock] променливи кои полето за дијалог Back-Annotate Assignments сè уште не ги поддржува.
Зачувај ги резултатите од дизајнот на партицијата
ЗАБЕЛЕШКА
- По поделбата на дизајнот, можете да ги зачувате партициите за блокови кои одговараат на времето и да ја фокусирате оптимизацијата на другите дизајнерски блокови. Дополнително, опцијата Брзо зачувување ја поедноставува логиката на зачуваната партиција само на логиката на интерфејсот за време на компилацијата, а со тоа го намалува времето на компилација за партицијата. Брзо зачувување поддржува само повторна употреба на партиции на root и дизајни за делумна реконфигурација. За дизајни со под-модули кои се предизвик за затворање на времето, можете да извршите самостојна оптимизација и компилација на партицијата на модулот, а потоа да го извезете модулот затворен со тајминг за да ја зачувате имплементацијата во следните компилации.
Зачувување на резултатите од дизајнот на партицијата
Дизајнот базиран на блок бара поделба на дизајнот. Дизајнерската партиција ви овозможува да ги зачувате поединечните логички блокови во вашиот дизајн, но исто така може да внесе потенцијална загуба на перформансите поради вкрстувањето на партициите и ефектите на планот на подот. Треба да ги балансирате овие фактори кога користите техники за дизајнирање базирани на блокови. Следниве чекори на високо ниво го опишуваат протокот на зачувување на партициите за дизајни за повторна употреба на партиции на root:
- Кликнете на Обработка ➤ Започнете ➤ Започнете со анализа и разработка.
- Во Навигаторот на проектот, кликнете со десното копче на примерокот за затворен дизајн на тајмингот, посочете на Дизајн партиција и изберете тип на партиција, како што опишуваат Поставките за дизајн партиција на страница 23.
Направете дизајн партиции
- Дефинирајте ги ограничувањата за планирање на подот на Logic Lock за партицијата. Во прозорецот Design Partitions, кликнете со десното копче на партицијата и потоа кликнете Logic Lock Region ➤ Create New Logic Lock Region. Осигурајте се дека регионот е доволно голем за да ја вклучи целата логика во партицијата.
- За да ги извезете резултатите од партицијата по компилацијата, во прозорецот за дизајн партиции, наведете ја партицијата .qdb како Пост финален извоз File.
Пост конечен извоз File
- За да го компајлирате дизајнот и да ја извезете партицијата, кликнете Компајлирај дизајн на контролната табла за компилација.
- Отворете го проектот од највисоко ниво во софтверот Intel Quartus Prime.
- Кликнете Assignments ➤ Settings ➤ Compiler Settings ➤ Incremental Compile. Вклучете ја опцијата Брзо зачувување.
Опција за брзо зачувување
- Кликнете на ОК.
- Во прозорецот за дизајн партиции, наведете го извезениот .qdb како База на податоци за партиции File за предметната партиција. Овој .qdb сега е изворот за оваа партиција во проектот. Кога ќе ја овозможите опцијата Брзо зачувување, компајлерот ја намалува логиката на увезената партиција само на логика на интерфејсот, а со тоа го намалува времето на компилација што го бара партицијата.
Поставки за дизајн на партиција
Поставки за дизајн на партиција
Опција | Опис |
Име на партиција | Го одредува името на партицијата. Секое име на партиција мора да биде единствено и да се состои само од алфанумерички знаци. Софтверот Intel Quartus Prime автоматски создава „root_partition“ од највисоко ниво (|) за секоја ревизија на проектот. |
Патека на хиерархија | Ја одредува патеката на хиерархија на примерокот на ентитетот што ќе го доделите на партицијата. Ја одредувате оваа вредност во Креирај нова партиција дијалог прозорец. Патеката за хиерархија на коренската партиција е |. |
Тип | Кликнете двапати за да наведете еден од следниве типови на партиции кои контролираат како Компајлерот ја обработува и имплементира партицијата: |
продолжи… |
Опција | Опис |
• Стандардно— Идентификува стандардна партиција. Компајлерот ја обработува партицијата користејќи го поврзаниот извор на дизајн files.
• Може да се реконфигурира— Идентификува партиција што може да се конфигурира во делумен тек на реконфигурација. Наведете го Може да се реконфигурира тип за зачувување на резултатите од синтезата, притоа овозможувајќи повторно поставување на партицијата во протокот на PR. • Резервирано јадро— Идентификува партиција во проток на дизајн базиран на блок што е резервирана за развој на јадрото од страна на потрошувач кој повторно ја користи периферијата на уредот. |
|
Ниво на зачувување | Одредува едно од следните нивоа на зачувување за партицијата:
• Не е поставено— специфицира без ниво на зачувување. Партицијата се компајлира од изворот files. • синтетизиран— партицијата се компајлира со помош на синтетизираната слика. • конечна— партицијата се компајлира со помош на последната слика. Со Ниво на зачувување of синтетизиран or конечна, промените на изворниот код не се појавуваат во синтезата. |
Празен | Одредува празна партиција што компајлерот ја прескокнува. Оваа поставка е некомпатибилна со Резервирано јадро и База на податоци за партиции File поставки за истата партиција. На Ниво на зачувување мора да биде Не е поставено. Празна партиција не може да има детски партиции. |
База на податоци за партиции File | Одредува база на податоци за партиции File (.qdb) што го користи компајлерот за време на компилацијата на партицијата. Вие извезувате .qdb за stagе од компилацијата што сакате повторно да ја употребите (синтетизирана или финална). Доделете .qdb на партиција за повторно да ги користите тие резултати во друг контекст. |
Повторно обврзување на ентитет | • PR Flow – го одредува ентитетот што ја заменува стандардната личност во секоја ревизија на имплементацијата.
• Root Partition Reuse Flow — го одредува ентитетот што ја заменува резервираната основна логика во проектот за потрошувачи. |
Боја | Го одредува кодирањето на бојата на партицијата во приказите Chip Planner и Design Partition Planner. |
Пост синтеза извоз File | Автоматски ги извезува резултатите од компилацијата по синтезата за партицијата во .qdb што ќе ја наведете, секогаш кога ќе се извршуваат Анализа и синтеза. Можете автоматски да извезувате која било дизајнерска партиција што нема зачувана матична партиција, вклучувајќи ја и root_partition. |
Пост конечен извоз File | Автоматски ги извезува резултатите од пост-финалната компилација за партицијата во .qdb што ќе ја наведете, секој пат кога конечните сtagд од трките на монтер. Можете автоматски да извезувате која било дизајнерска партиција што нема зачувана матична партиција, вклучувајќи ја и root_partition. |
Историја на ревизија на документ AN 903
Овој документ ја има следната историја на ревизија:
Верзија на документ | Интел Quartus Prime верзија | Промени |
2021.02.25 | 19.3 | „Повлечете“ е заменето со „напнатост“ во Анализирај и оптимизирај го дизајнот RTL тема. |
2020.03.23 | 19.3 | Поправена синтаксна грешка во кодот sampво темата „Заклучување на часовници, RAM и DSPs“. |
2019.12.03 | 19.3 | • Прво јавно објавување. |
Документи / ресурси
![]() |
intel AN 903 Забрзување на времето за затворање [pdf] Упатство за корисникот AN 903 Забрзување тајминг затворање, AN 903, Забрзување тајминг затворање, тајминг затворање |