intel-LOGO

intel AN 903 Accelerating Timing Clos

intel-AN-903-Accelerating-Timing-Closure-PRODUCT

AN 903: Zrychlení načasování v edici Intel® Quartus® Prime Pro

Hustota a složitost moderních návrhů FPGA, které kombinují vestavěné systémy, IP a vysokorychlostní rozhraní, představují stále větší výzvy pro časové uzavření. Pozdní změny architektury a problémy s ověřováním mohou vést k časově náročným iteracím návrhu. Tento dokument shrnuje tři kroky k urychlení načasování pomocí ověřené a opakovatelné metodiky v softwaru Intel® Quartus® Prime Pro Edition. Tato metodika zahrnuje počáteční analýzu a optimalizaci RTL, stejně jako automatizované techniky pro minimalizaci doby kompilace a snížení složitosti návrhu a iterací potřebných pro načasování uzavření.

Kroky zrychlení načasování uzavření

intel-AN-903-Accelerating-Timing-Closure-FIG-1

Kroky zrychlení načasování uzavření

Krok načasování uzavření Aktivita načasování uzavření Podrobné informace
Krok 1: Analyzujte a optimalizujte RTL •    Opravte porušení Design Assistant na straně 4

•    Snižte logické úrovně na straně 7

•    Snižte vysoké sítě na straně 9

•    Intel Quartus Prime Pro Edice Uživatelská příručka: Design Optimalizace

•    Intel Quartus Prime Pro Edice Uživatelská příručka: Design Doporučení

Krok 2: Použijte optimalizaci kompilátoru •    Použijte režimy optimalizace kompilátoru a strategie na straně 13

•    Snižte přetížení pro vysoké využití na straně 16

•    Intel Quartus Prime Pro Edice Uživatelská příručka: Design Sestavení

•    Intel Quartus Prime Pro Edice Uživatelská příručka: Design Optimalizace

Krok 3: Zachovejte uspokojivé výsledky •    Uzamknout hodiny, RAM a DSP na straně 20

•    Zachovat výsledky návrhových oddílů na straně 21

•    Intel Quartus Prime Pro Uživatelská příručka k vydání: Blok- Založený design

•    AN-899: Redukující kompilace Čas s rychlou konzervací

Krok 1: Analyzujte a optimalizujte návrh RTL

Optimalizace zdrojového kódu vašeho návrhu je obvykle první a nejúčinnější technikou pro zlepšení kvality vašich výsledků. Intel Quartus Prime Design Assistant vám pomůže rychle napravit porušení základních pravidel návrhu a doporučí změny RTL, které zjednoduší optimalizaci návrhu a načasování uzavření.

Problémy s načasováním uzavření

  • Přílišné logické úrovně ovlivňují pořadí zpracování, trvání a kvalitu výsledků Fitter.
  • Sítě s velkým rozvětvením způsobují přetížení zdrojů a zvyšují napětí v datových cestách, zbytečně zvyšují kritičnost cesty a komplikují načasování uzavření. Toto napětí je přitažlivá síla, která táhne dráhu (a všechny cesty, které sdílejí tento vysoký vějířový signál) směrem ke zdroji vysokého vějířovitosti.

Řešení načasování uzavření

  • Correct Design Assistant Violations na straně 4 – pro rychlou identifikaci a nápravu porušení základních pravidel návrhu relevantní pro váš návrh.
  • Snížení úrovní logiky na straně 7 – aby bylo zajištěno, že všechny prvky návrhu mohou přijímat stejné optimalizace Fitter a zkrátí se doba kompilace.
  • Snížení velkých rozvětvených sítí na straně 9 – ke snížení přetížení zdrojů a zjednodušení načasování uzavření.

Související informace

  • „Kontrola pravidel návrhu pomocí nástroje Design Assistant“, Uživatelská příručka Intel Quartus Prime Pro Edition: Návrhová doporučení
  • Uživatelská příručka „Optimize Source Code“ Intel Quartus Prime Pro Edition: Optimalizace návrhu
  • „Duplicitní registry pro ovládání ventilátoru“, Intel Quartus Prime Pro Edition Uživatelská příručka: Optimalizace designu

Opravte porušení Design Assistant

Provádění počáteční analýzy návrhu k odstranění známých problémů s načasováním uzavření výrazně zvyšuje produktivitu. Po spuštění počáteční kompilace s výchozím nastavením můžete znovuview Design Assistant hlásí pro počáteční analýzu. Je-li povoleno, Design Assistant automaticky hlásí jakékoli porušení standardní sady doporučených návrhových pokynů Intel FPGA. Design Assistant můžete spustit v režimu Compilation Flow, což vám umožní view porušení relevantní pro kompilaci stages běžíš. Alternativně je Design Assistant dostupný v režimu analýzy v Timing Analyzer a Chip Planner.

  • Režim toku kompilace—běží automaticky během jedné nebo více sekundtages kompilace. V tomto režimu využívá Design Assistant během kompilace vstupní (přechodná) data.
  • Režim analýzy—spusťte Design Assistant z Timing Analyzer a Chip Planner k analýze porušení návrhu na konkrétní kompilacitage, před přechodem vpřed v toku kompilace. V režimu analýzy používá Design Assistant data statického kompilace.

Design Assistant označí každé porušení pravidel jednou z následujících úrovní závažnosti. Můžete určit, která pravidla má Design Assistant kontrolovat ve vašem návrhu, a přizpůsobit úrovně závažnosti, čímž se eliminují kontroly pravidel, které nejsou pro váš návrh důležité.

Úrovně závažnosti pravidla asistenta designu

kategorie Popis Úroveň závažnosti Barva
Kritické Adresa problém pro předání. Červený
Vysoký Může způsobit funkční selhání. Může znamenat chybějící nebo nesprávná konstrukční data. Pomerančový
Střední Potenciálně ovlivňuje kvalitu výsledků pro fMAX nebo využití zdrojů. Hnědý
Nízký Pravidlo odráží osvědčené postupy pro pokyny pro kódování RTL. Modrý

Nastavení Design Assistant
Design Assistant si můžete plně přizpůsobit svým individuálním charakteristikám návrhu a požadavkům na podávání zpráv. Klepněte na Přiřazení ➤ Nastavení ➤ Nastavení pravidel nástroje Design Assistant a určete možnosti, které určují, která pravidla a parametry platí pro různétages kompilace návrhu pro kontrolu pravidel návrhu.

Nastavení pravidel Design Assistantintel-AN-903-Accelerating-Timing-Closure-FIG-2

Běžící designový asistent
Je-li povoleno, Design Assistant se automaticky spustí během kompilace a hlásí povolená porušení pravidel návrhu ve zprávě o kompilaci. Případně můžete spustit Design Assistant v režimu analýzy na konkrétním snímku kompilace a zaměřit analýzu pouze na tento snímektagE. Chcete-li povolit automatickou kontrolu nástroje Design Assistant během kompilace:

  • Zapněte možnost Povolit provádění nástroje Design Assistant během kompilace v nastavení pravidel nástroje Design Assistant. Chcete-li spustit Design Assistant v režimu analýzy pro ověření konkrétního snímku podle jakýchkoli návrhových pravidel, která se na snímek vztahují:
  • Klikněte na Report DRC na panelu Úlohy analyzátoru časování nebo plánovače čipů.

Viewa korekce výsledků asistenta návrhu
Design Assistant hlásí povolená porušení pravidel návrhu v různých stages sestavovací zprávy.

Design Assistant Výsledky v sestavách Synthesis, Plan, Place a Finaliseintel-AN-903-Accelerating-Timing-Closure-FIG-3

Na view výsledky pro každé pravidlo, klepněte na pravidlo v seznamu Pravidla. Zobrazí se popis pravidla a návrhová doporučení pro opravu.

Doporučení pro porušení pravidel asistenta designu

intel-AN-903-Accelerating-Timing-Closure-FIG-4

Upravte své RTL, abyste opravili porušení pravidel návrhu.

Snižte logické úrovně

Nadměrné úrovně logiky mohou ovlivnit kvalitu výsledků montéra, protože kritická cesta návrhu ovlivňuje pořadí a dobu zpracování montéra. Montér umísťuje a směruje návrh na základě časování. Montér nejprve umístí delší cesty s co nejmenším průhybem. Fitter obecně upřednostňuje cesty na vyšší logické úrovni před cestami na nižší logické úrovni. Obvykle po montérovi stage je kompletní, zbývající kritické cesty nejsou cestami nejvyšší logické úrovně. Fitter poskytuje preferované umístění, směrování a přečasování logice vyšší úrovně. Snížení úrovně logiky pomáhá zajistit, že všechny prvky návrhu obdrží stejnou prioritu montéra. Spusťte Reports ➤ Custom Reports ➤ Report Timing v Timing Analyzer a vygenerujte zprávy zobrazující úrovně logiky v cestě. Pokud selže časování cesty a počet logických úrovní je vysoký, zvažte přidání zřetězení do této části návrhu, abyste zlepšili výkon.

Logic Depth in Path Report

intel-AN-903-Accelerating-Timing-Closure-FIG-5

Hloubka úrovně logiky hlášení
Po plánu kompilátoru stage, můžete spustit report_logic_depth v konzole Timing Analyzer Tcl view počet logických úrovní v rámci hodinové domény. report_logic_depth ukazuje rozložení logické hloubky mezi kritickými cestami, což vám umožňuje identifikovat oblasti, kde můžete snížit logické úrovně ve vaší RTL.

report_logic_depth -název_panelu -od [get_clocks ] \ -to [get_clocks ]

report_logic_depth Výstupintel-AN-903-Accelerating-Timing-Closure-FIG-6

Chcete-li získat data pro optimalizaci RTL, spusťte report_logic_depth po plánu kompilátorutage, před spuštěním zbývajících montérůtages. Jinak zprávy po montáži zahrnují také výsledky fyzické optimalizace (přečasování a resyntéza).

Hlášení sousedských cest
Po spuštění nástroje Fitter (Finalize) stage, můžete spustit report_neighbor_paths, abyste pomohli určit hlavní příčinu kritické cesty (napřample, vysoká logická úroveň, omezení přečasování, suboptimální umístění, křížení I/O sloupců, oprava hold-fix nebo jiné): report_neighbor_paths -to_clock -npaths -název_panelu

report_neighbor_paths hlásí v návrhu nejkritičtější cesty pro načasování, včetně souvisejících prodlev, dalších souhrnných informací o cestě a rámečků ohraničujících cestu.

report_neighbor_paths Výstupintel-AN-903-Accelerating-Timing-Closure-FIG-7

report_neighbor_paths zobrazuje nejkritičtější cestu před a po každé kritické cestě. Nové načasování nebo logické vyvážení cesty může zjednodušit uzavření načasování, pokud je na cestě záporná vůle, ale kladná vůle na cestě před nebo cestě za.

Chcete-li aktivovat opakování času, ujistěte se, že jsou zapnuty následující možnosti:

  • Pro registry – povolte přiřazení ➤ Nastavení ➤ Nastavení kompilátoru ➤ Optimalizace registrů ➤ Povolit přečasování registrů
  • Pro koncové body RAM – povolte přiřazení ➤ Nastavení ➤ Nastavení kompilátoru ➤ Nastavení přizpůsobení (pokročilé) ➤ Povolit přečasování RAM
  • Pro koncové body DSP – povolte přiřazení ➤ Nastavení ➤ Nastavení kompilátoru ➤ Nastavení fitteru (pokročilé) ➤ Povolit přečasování DSP

POZNÁMKA

Pokud je vyžadováno další logické vyvážení, musíte ručně upravit svůj RTL, abyste přesunuli logiku z kritické cesty na cestu před nebo na cestu za.
Pokud je výstup registru připojen k jeho vstupu, jedna nebo obě sousední cesty mohou být totožné s aktuální cestou. Při hledání sousedních cest s nejhorším průvěsem se berou v úvahu všechny provozní podmínky, nejen provozní podmínky samotné hlavní cesty.

Vizualizace logických úrovní v technologické mapě Viewer
Mapa technologie ViewPoskytuje také schematická, technologicky zmapovaná reprezentace netlistu návrhu a může vám pomoci zjistit, které oblasti v návrhu mohou těžit ze snížení počtu logických úrovní. Fyzické rozložení cesty můžete také podrobně prozkoumat v Plánovači čipů. Chcete-li najít cestu časování v jednom z viewV časovém přehledu klikněte pravým tlačítkem na cestu, ukažte na Vyhledat cestu a vyberte Vyhledat v technologické mapě Viewehm.

Snižte vysoké sítě

Sítě s vysokým vějířem mohou způsobit přetížení zdrojů, a tím zkomplikovat načasování uzavření. Obecně lze říci, že kompilátor automaticky spravuje sítě s velkým počtem rozvětvení související s hodinami. Kompilátor automaticky propaguje uznávané sítě s vysokým rozvětvením do globální sítě hodin. Kompilátor vynakládá větší úsilí na optimalizaci během umístění a trasytages, což má za následek výhodnou duplikaci registrů. V následujících rohových případech můžete navíc snížit přetížení provedením následujících ručních změn ve vašem návrhu RTL:

Rohová pouzdra s vysokou vějířovou sítí

Charakteristika designu Ruční RTL optimalizace
Vysoké rozvětvené sítě, které dosahují mnoha hierarchií nebo fyzicky vzdálených destinací Zadejte přiřazení duplicate_hierarchy_depth v posledním registru v potrubí, abyste ručně duplikovali sítě s vysokým rozvětvením napříč hierarchiemi. Určete přiřazení duplicate_register duplicitním registrům během umístění.
Návrhy s řídicími signály do paměťových bloků DSP nebo M20K z kombinační logiky Přiveďte řídicí signál do paměti DSP nebo M20K z registru.

Registrace duplikace napříč hierarchiemi
Můžete zadat přiřazení duplicate_hierarchy_depth na posledním registru v potrubí, aby se řídilo vytváření duplikace registrů a rozvětvení. Následující obrázky ilustrují dopad následujícího přiřazení duplicate_hierarchy_depth:

set_instance_assignment -name duplicate_hierarchy_depth -to \

Kde:

  • jméno_registru – poslední registr v řetězci, který se rozkládá do několika hierarchií.
  • číslo_úrovně — počet registrů v řetězci, které se mají duplikovat.

Obrázek 9. Před registrací duplikace
Nastavte přiřazení duplicate_hierarchy_depth k implementaci duplikace registrů napříč hierarchiemi a vytvořte strom registrů následující za posledním registrem v řetězci. Zadejte název registru a počet duplikátů reprezentovaných M v následujícím příkladuample. Červené šipky ukazují potenciální umístění duplicitních registrů.

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ Mintel-AN-903-Accelerating-Timing-Closure-FIG-8

Duplikace registru = 1
Zadáním následující jediné úrovně duplikace registrů (M=1) se duplikuje jeden registr (regZ) o jednu úroveň níže v hierarchii návrhu:

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ 1intel-AN-903-Accelerating-Timing-Closure-FIG-9

Duplikace registru = 3
Zadáním tří úrovní duplikace registrů (M=3) se duplikují tři registry (regZ, regY, regX) o tři, dvě a o jednu úroveň hierarchie, v tomto pořadí:

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ 3intel-AN-903-Accelerating-Timing-Closure-FIG-10

Duplikováním a posunutím registrů dolů do hierarchií si design zachovává stejný počet cyklů do všech destinací a zároveň výrazně zrychluje výkon na těchto cestách.

Zaregistrujte duplikaci během umístění
Obrázek 12 na straně 11 ukazuje registr s velkým vějířovým výstupem do široce rozprostřené oblasti čipu. Zduplikováním tohoto registru 50krát můžete snížit vzdálenost mezi registrem a cíli, což v konečném důsledku vede k rychlejšímu výkonu hodin. Přiřazení duplicate_register umožňuje kompilátoru využít fyzickou blízkost k vedení umístění nových registrů napájejících podmnožinu vějířových výstupů.

Obrázek 12. Zaregistrujte duplikaci během umístěníintel-AN-903-Accelerating-Timing-Closure-FIG-11

Poznámka: Chcete-li vysílat signál přes čip, použijte multistage potrubí. Použijte přiřazení duplicate_register pro každý z registrů v kanálu. Tato technika vytváří stromovou strukturu, která vysílá signál přes čip.

Viewvýsledky duplikace
Po syntéze designu, view výsledky duplikace v sestavě Souhrn duplikace hierarchického stromu ve složce Syntéza sestavy kompilace. Zpráva poskytuje následující informace:

  • Informace o registrech, které mají přiřazení duplicate_hierarchy_depth.
  • Důvod délky řetězu, který můžete použít jako výchozí bod pro další vylepšení zadání.
  • Informace o jednotlivých registrech v řetězci, které můžete využít k lepšímu pochopení struktury implementovaných duplikátů.

Zpráva Fitter také obsahuje část o registrech, které mají nastavení duplicate_register.

Použijte techniky optimalizace kompilátoru

Návrhy, které využívají velmi vysoké procentotage prostředků zařízení FPGA může způsobit zahlcení zdrojů, což má za následek nižší fMAX a složitější časové uzavření. Nastavení režimu optimalizace kompilátoru vám umožní určit zaměření úsilí kompilátoru během syntézy. Napřample, optimalizujete syntézu pro oblast nebo směrovatelnost při řešení přetížení zdrojů. Můžete experimentovat s kombinacemi těchto stejných nastavení režimu optimalizace v Intel Quartus Prime Design Space Explorer II. Tato nastavení a další ruční techniky vám mohou pomoci snížit přetížení u vysoce využívaných návrhů.

Problém s načasováním uzavření

  • Návrhy s velmi vysokým využitím prostředků zařízení komplikují načasování uzavření.

Řešení načasování uzavření

  • Použít režimy a strategie optimalizace kompilátoru na straně 13 – určete primární cíl režimu optimalizace pro syntézu návrhu.
  • Experimentujte s možnostmi oblasti a směrování na straně 16 – použijte další sady nastavení ke snížení přetížení a splnění cílů oblasti a směrování.
  • Zvažte fraktální syntézu pro aritmeticky náročné návrhy na straně 16 – U vysoce propustných a aritmeticky náročných návrhů fraktální syntéza snižuje využití prostředků zařízení prostřednictvím násobitelské regularizace, přečasování a průběžného aritmetického skládání.

Související informace

  • Kapitola „Načasování uzavření a optimalizace“, Uživatelská příručka Intel Quartus Prime Pro Edition: Optimalizace návrhu
  • Uživatelská příručka Intel Quartus Prime Pro Edition: Kompilace designu

Použijte režimy a strategie optimalizace kompilátoru

Pomocí následujících informací můžete použít režimy optimalizace kompilátoru a strategie kompilace Design Space Explorer II (DSE II).

Experimentujte s nastavením režimu optimalizace kompilátoru
Chcete-li experimentovat s nastavením režimu optimalizace kompilátoru, postupujte takto:

  1. Vytvořte nebo otevřete projekt Intel Quartus Prime.
  2. Chcete-li určit strategii optimalizace na vysoké úrovni kompilátoru, klepněte na Přiřazení ➤ Nastavení ➤ Nastavení kompilátoru. Experimentujte s kterýmkoli z následujících nastavení režimu, jak popisuje Tabulka 4 na stránce 14.
  3. Chcete-li zkompilovat návrh s těmito nastaveními, klikněte na Spustit kompilaci na řídicím panelu kompilace.
  4. View výsledky sestavení v Sestavovací zprávě.
  5. Klepněte na Nástroje ➤ Timing Analyzer pro view výsledky nastavení optimalizace na výkon.

Nastavení režimu optimalizace kompilátoru

intel-AN-903-Accelerating-Timing-Closure-FIG-22

Režimy optimalizace (stránka nastavení kompilátoru)

Režim optimalizace Popis
Vyvážený (normální průtok) Kompilátor optimalizuje syntézu pro vyváženou implementaci, která respektuje časová omezení.
Vysoký výkon Kompilátor zvyšuje úsilí o optimalizaci časování během umístění a směrování a umožňuje optimalizace fyzické syntézy související s časováním (nastavení optimalizace podle registru). Každá další optimalizace může prodloužit dobu kompilace.
Vysoký výkon s maximálním úsilím o umístění Umožňuje stejné optimalizace kompilátoru jako Vysoký výkons dalším úsilím o optimalizaci umístění.
Vynikající výkon Umožňuje stejné optimalizace kompilátoru jako Vysoký výkona přidává další optimalizace během analýzy a syntézy pro maximalizaci výkonu návrhu s potenciálním rozšířením oblasti logiky. Pokud je využití návrhu již velmi vysoké, může tato možnost vést k potížím s montáží, což může také negativně ovlivnit celkovou kvalitu optimalizace.
Vynikající výkon s maximálním úsilím o umístění Umožňuje stejné optimalizace kompilátoru jako Vynikající výkons dalším úsilím o optimalizaci umístění.
Agresivní oblast Kompilátor vyvíjí agresivní úsilí, aby zmenšil plochu zařízení potřebnou k implementaci návrhu na potenciální úkor výkonu návrhu.
Vysoké úsilí o směrování umístění Kompilátor vynakládá velké úsilí na směrování návrhu na potenciální náklady na oblast návrhu, výkon a dobu kompilace. Kompilátor tráví další čas snižováním využití směrování, což může zlepšit směrování a také šetřit dynamickou energii.
Vysoké úsilí o směrování balení Kompilátor vynakládá velké úsilí na směrování návrhu na potenciální náklady na oblast návrhu, výkon a dobu kompilace. Kompilátor tráví další čas balením registrů, což může zlepšit směrovatelnost a také šetřit dynamickou energii.
Optimalizujte Netlist pro směrovatelnost Kompilátor implementuje úpravy netlistu pro zvýšení směrovatelnosti na úkor výkonu.
pokračování…
Režim optimalizace Popis
Vysoké výkonové úsilí Kompilátor vynakládá velké úsilí na optimalizaci syntézy pro nízkou spotřebu. Vysoké výkonové úsilí zvyšuje dobu běhu syntézy.
Agresivní síla Vyvíjí agresivní úsilí k optimalizaci syntézy pro nízký výkon. Kompilátor dále snižuje využití směrování signálů s nejvyšší specifikovanou nebo odhadovanou rychlostí přepínání, čímž šetří další dynamický výkon, ale potenciálně ovlivňuje výkon.
Agresivní doba kompilace Zkracuje dobu kompilace potřebnou k implementaci návrhu se sníženým úsilím a menším počtem optimalizací výkonu. Tato možnost také zakáže některé funkce podrobného hlášení.

Poznámka: Zapínání Agresivní doba kompilace umožňuje nastavení Intel Quartus Prime File (.qsf) nastavení, která nelze přepsat jinými nastaveními .qsf.

Strategie kompilace Design Space Explorer II
DSE II vám umožňuje najít optimální nastavení projektu pro cíle optimalizace zdrojů, výkonu nebo výkonu. DSE II umožňuje iterativně sestavit návrh pomocí různých přednastavených kombinací nastavení a omezení k dosažení konkrétního cíle. DSE II pak nahlásí nejlepší kombinaci nastavení pro splnění vašich cílů. DSE II může také získat výhodutage schopností paralelizace kompilovat semena na více počítačích. Nastavení strategie kompilace DSE II odpovídají nastavení režimu optimalizace v tabulce 4 na straně 14

Design Space Explorer IIintel-AN-903-Accelerating-Timing-Closure-FIG-12

Chcete-li zadat strategii kompilace pro DSE II, postupujte takto:

  1. Chcete-li spustit DSE II (a ukončit software Intel Quartus Prime), klepněte na Nástroje ➤ Spustit Design Space Explorer II. DSE II se otevře po ukončení softwaru Intel Quartus Prime.
  2. Na panelu nástrojů DSE II klikněte na ikonu Průzkum.
  3. Rozbalte body průzkumu.
  4. Vyberte Průzkum návrhu. Povolte kteroukoli ze strategií kompilace a spusťte průzkumy návrhu zaměřené na tyto strategie.

Snižte přetížení pro vysoké využití

Návrhy, které využívají více než 80 % zdrojů zařízení, obvykle představují největší potíže s načasováním uzavření. K dalšímu snížení přetížení a zjednodušení načasování uzavření můžete použít následující manuální a automatické techniky.

  • Experimentujte s možnostmi oblasti a směrování na straně 16
  • Zvažte Fraktální syntézu pro aritmeticky náročné návrhy na straně 16

Experimentujte s možnostmi oblasti a směrování

Když využití zařízení způsobí zahlcení směrováním, můžete experimentovat s nastavením optimalizace oblasti a směrování a snížit tak využití zdrojů a zahlcení pro váš návrh. Kliknutím na Přiřazení ➤ Nastavení ➤ Nastavení kompilátoru ➤ Režim optimalizace získáte přístup k těmto nastavením:

Možnosti oblasti a směrování

intel-AN-903-Accelerating-Timing-Closure-FIG-13

Zvažte fraktální syntézu pro aritmeticky náročné návrhy

U vysoce výkonných a aritmeticky náročných návrhů můžete povolit automatické optimalizace fraktální syntézy a zlepšit tak využití prostředků zařízení. Optimalizace fraktální syntézy zahrnují násobení regularizace a přečasování, stejně jako kontinuální aritmetické balení. Optimalizace se zaměřují na návrhy s velkým počtem aritmetických operací s nízkou přesností (jako jsou sčítání a násobení). Fraktální syntézu můžete povolit globálně nebo pouze pro konkrétní multiplikátory. Za ideálních podmínek může optimalizace fraktální syntézy dosáhnout 20-45% zmenšení plochy.

Regularizace multiplikátorů a přečasování
Regulace a přečasování multiplikátoru provádí odvození vysoce optimalizovaných implementací měkkých multiplikátorů. Překladač může použít zpětné přečasování na dva nebo více kanálůtages v případě potřeby. Když povolíte syntézu fraktálů, kompilátor aplikuje násobitele regularizaci a přečasování na podepsané a nepodepsané multiplikátory.

Obrázek 16. Přečasování multiplikátoruintel-AN-903-Accelerating-Timing-Closure-FIG-14

POZNÁMKA

  • Regulace multiplikátoru využívá pouze logické prostředky a nepoužívá bloky DSP.
  • Regulace a přečasování multiplikátorů se aplikuje na podepsané i nepodepsané multiplikátory v modulech, kde je nastaveno přiřazení FRACTAL_SYNTHESIS QSF.

Průběžné aritmetické balení
Nepřetržité aritmetické balení znovu syntetizuje aritmetická hradla do logických bloků optimální velikosti, aby se vešly do Intel FPGA LAB. Tato optimalizace umožňuje až 100% využití zdrojů LAB pro aritmetické bloky. Když povolíte fraktální syntézu, kompilátor použije tuto optimalizaci na všechny přenosové řetězce a dvouvstupová logická hradla. Tato optimalizace může obsahovat sčítací stromy, násobiče a jakoukoli další logiku související s aritmetikou.

Průběžné aritmetické balení

intel-AN-903-Accelerating-Timing-Closure-FIG-15

POZNÁMKA

Všimněte si, že souvislé aritmetické skládání funguje nezávisle na regularizaci multiplikátoru. Pokud tedy používáte násobitel, který není regulovaný (jako je psaní vlastního násobiče), může kontinuální aritmetické balení stále fungovat. Optimalizace fraktální syntézy je nejvhodnější pro návrhy s akcelerátory hlubokého učení nebo jinými vysoce výkonnými, aritmeticky náročnými funkcemi, které přesahují všechny zdroje DSP. Povolení syntézy fraktálů v celém projektu může způsobit zbytečné nafouknutí modulů, které nejsou vhodné pro optimalizaci fraktálů.

Povolení nebo zakázání syntézy fraktálů

U zařízení Intel Stratix® 10 a Intel Agilex™ se optimalizace fraktální syntézy spustí automaticky pro malé multiplikátory (jakýkoli příkaz A*B ve Verilog HDL nebo VHDL, kde je bitová šířka operandů 7 nebo méně). Pro tato zařízení můžete také zakázat automatickou syntézu fraktálů pro malé multiplikátory pomocí jedné z následujících metod:

  • V RTL nastavte DSP multistyle, jak popisuje “Multstyle Verilog HDL Synthesis Attribute”. Napřample: (* multistyle = “dsp” *) modul foo(…); module foo(..) /* syntéza multstyle = “dsp” */;
  • V souboru .qsf file, přidejte jako přiřazení následovně: set_instance_assignment -name DSP_BLOCK_BALANCING_IMPLEMENTATION \DSP_BLOCKS -to r

Navíc pro zařízení Intel Stratix 10, Intel Agilex, Intel Arria® 10 a Intel Cyclone® 10 GX můžete povolit fraktální syntézu globálně nebo pro konkrétní multiplikátory pomocí možnosti GUI Fractal Synthesis nebo odpovídajícího přiřazení FRACTAL_SYNTHESIS .qsf:

  • V RTL použijte altera_attribute takto: (* altera_attribute = “-jméno FRACTAL_SYNTHESIS ON” *)
  • V souboru .qsf file, přidejte jako přiřazení následovně: set_global_assignment -name FRACTAL_SYNTHESIS ON -entity

V uživatelském rozhraní postupujte takto:

  1. Klepněte na Úlohy ➤ Editor úloh.
  2. Vyberte Fraktální syntéza pro Název přiřazení, Zapnuto pro Hodnotu, aritmeticky náročný název entity pro Entitu a název instance ve sloupci Komu. Pro přiřazení všech instancí entity můžete zadat zástupný znak (*) pro To.

Obrázek 18. Přiřazení Fractal Synthesis v Editoru přiřazení

intel-AN-903-Accelerating-Timing-Closure-FIG-16

Související informace

  • Multstyle Verilog HDL Synthesis atribut
    • V nápovědě Intel Quartus Prime.

Zachovat uspokojivé výsledky

Uzavření časování můžete zjednodušit zpětným anotováním uspokojivých výsledků kompilace, abyste zablokovali umístění velkých bloků souvisejících s takty, RAM a DSP. Podobně vám technika opětovného použití návrhových bloků umožňuje zachovat uspokojivé výsledky kompilace pro konkrétní návrhové bloky periferie FPGA nebo jádrové logiky (logika, která obsahuje hierarchickou instanci návrhu) a poté tyto bloky znovu použít v následných kompilacích. Při opětovném použití návrhového bloku přiřadíte hierarchickou instanci jako návrhový oddíl a po úspěšné kompilaci oddíl zachováte a exportujete. Zachování a opětovné použití uspokojivých výsledků vám umožní soustředit úsilí a čas kompilátoru pouze na části návrhu, které nemají uzavřené časování.

Problém s načasováním uzavření

  • Pokud není uzamčen, kompilátor může implementovat návrhové bloky, hodiny, RAM a DSP odlišně od kompilace ke kompilaci v závislosti na různých faktorech.

Řešení načasování uzavření

  • Lock Down Clocks, RAMs and DSPs on page 20 — back-anotation a back-anotace uspokojivé výsledky kompilace pro uzamčení umístění velkých bloků souvisejících s takty, RAM a DSP.
  • Zachovat výsledky návrhových oddílů na stránce 21 – zachovejte oddíly pro bloky, které vyhovují načasování, a zaměřte se na optimalizaci ostatních návrhových bloků.

Související informace

  • Nápověda k dialogovému oknu Back-Anotate Assignments
  • AN-899: Snížení doby kompilace díky rychlému uchování
  • Uživatelská příručka Intel Quartus Prime Pro Edition: Block-Based Design

Uzamknout hodiny, RAM a DSP

Uzavření časování můžete zjednodušit zpětným anotováním uspokojivých výsledků kompilace, abyste uzamkli umístění velkých bloků souvisejících s hodinami, RAM a DSP. Uzamčením umístění velkých bloků lze dosáhnout vyšší fMAX s menším šumem. Uzamčení velkých bloků, jako jsou RAM a DSP, může být efektivní, protože tyto bloky mají těžší konektivitu než běžné LAB, což komplikuje pohyb během umístění. Když semeno produkuje dobré výsledky z vhodného umístění RAM a DSP, můžete toto umístění zachytit pomocí zpětné anotace. Následné kompilace pak mohou těžit z vysoce kvalitního umístění RAM a DSP z dobrého semene. Tato technika výrazně neprospívá návrhům s velmi malým počtem RAM nebo DSP. Klepnutím na Přiřazení ➤ Přiřazení zpětné poznámky zkopírujte přiřazení prostředků zařízení z poslední kompilace do .qsf pro použití v další kompilaci. V seznamu Typ zpětné anotace vyberte typ zpětné anotace.

Dialogové okno Back-Anotate Assignments

intel-AN-903-Accelerating-Timing-Closure-FIG-17

Alternativně můžete spustit zpětnou anotaci pomocí následujícího spustitelného souboru quartus_cdb. quartus_cdb –back_annotate [–dsp] [–ram] [–clock]

POZNÁMKA

  • Spustitelný soubor podporuje další proměnné [–dsp], [–ram] a [–clock], které dialogové okno Back-Annotate Assignments zatím nepodporuje.

Zachovat výsledky návrhových oddílů

POZNÁMKA

  • Po rozdělení návrhu můžete zachovat oddíly pro bloky, které splňují načasování, a zaměřit optimalizaci na ostatní bloky návrhu. Kromě toho možnost Fast Preserve zjednodušuje logiku uchovaného oddílu pouze na logiku rozhraní během kompilace, čímž zkracuje dobu kompilace oddílu. Fast Preserve podporuje pouze opětovné použití kořenového oddílu a návrhy částečné rekonfigurace. U návrhů s podmoduly, které jsou náročné na časování uzavření, můžete provést samostatnou optimalizaci a kompilaci oddílu modulu a poté exportovat modul s načasováním, abyste zachovali implementaci v následných kompilacích.

Zachování výsledků návrhových oddílů

intel-AN-903-Accelerating-Timing-Closure-FIG-18

Návrh založený na blocích vyžaduje rozdělení návrhu. Rozdělení návrhu na oddíly vám umožňuje zachovat jednotlivé logické bloky ve vašem návrhu, ale může také způsobit potenciální ztrátu výkonu v důsledku křížení oddílů a efektů půdorysu. Při použití technik návrhu založeného na blocích musíte tyto faktory vyvážit. Následující kroky na vysoké úrovni popisují postup uchování oddílu pro návrhy opětovného použití kořenového oddílu:

  1. Klepněte na Zpracování ➤ Start ➤ Spustit analýzu a zpracování.
  2. V Navigátoru projektu klikněte pravým tlačítkem na instanci návrhu uzavřeného načasování, ukažte na položku Návrh oddílu a vyberte typ oddílu, jak popisuje Nastavení oddílu návrhu na stránce 23.

Vytvořte návrhové oddíly

intel-AN-903-Accelerating-Timing-Closure-FIG-19

  1. Definujte omezení plánování podlaží Logic Lock pro oddíl. V okně Návrh oddílů klikněte pravým tlačítkem na oddíl a poté klikněte na Oblast logického zámku ➤ Vytvořit novou oblast logického zámku. Zajistěte, aby byla oblast dostatečně velká, aby pokryla veškerou logiku v oddílu.
  2. Chcete-li exportovat výsledky oddílu po kompilaci, v okně Návrh oddílů zadejte oddíl .qdb jako export po konečném File.

Po konečném exportu File

intel-AN-903-Accelerating-Timing-Closure-FIG-20

  1. Chcete-li zkompilovat návrh a exportovat oddíl, klikněte na Kompilovat návrh na řídicím panelu kompilace.
  2. Otevřete projekt nejvyšší úrovně v softwaru Intel Quartus Prime.
  3. Klepněte na Přiřazení ➤ Nastavení ➤ Nastavení kompilátoru ➤ Přírůstková kompilace. Zapněte možnost Rychlé uchování.

Možnost rychlého uchování

intel-AN-903-Accelerating-Timing-Closure-FIG-21

  1. Klepněte na tlačítko OK.
  2. V okně Návrh oddílů zadejte exportovaný .qdb jako databázi oddílů File pro daný oddíl. Tato .qdb je nyní zdrojem pro tento oddíl v projektu. Když povolíte volbu Fast Preserve, kompilátor redukuje logiku importovaného oddílu pouze na logiku rozhraní, čímž zkrátí dobu kompilace, kterou oddíl vyžaduje.

Návrh nastavení oddílu

Návrh nastavení oddílu

Volba Popis
Název oddílu Určuje název oddílu. Každý název oddílu musí být jedinečný a sestávat pouze z alfanumerických znaků. Software Intel Quartus Prime automaticky vytvoří nejvyšší úroveň (|) „root_partition“ pro každou revizi projektu.
Cesta hierarchie Určuje cestu hierarchie instance entity, kterou přiřadíte k oddílu. Tuto hodnotu zadáte v Vytvořit nový oddíl dialogové okno. Cesta hierarchie kořenového oddílu je |.
Typ Poklepáním zadejte jeden z následujících typů oddílů, které řídí, jak kompilátor zpracovává a implementuje oddíl:
pokračování…
Volba Popis
•    Výchozí—Identifikuje standardní oddíl. Kompilátor zpracuje oddíl pomocí přidruženého zdroje návrhu files.

•    Překonfigurovatelné—Identifikuje rekonfigurovatelný oddíl v toku částečné rekonfigurace. Určete Překonfigurovatelné typu, aby byly zachovány výsledky syntézy a zároveň bylo umožněno přemístění přepážky v toku PR.

•    Vyhrazené jádro—Identifikuje oddíl v toku návrhu založeném na blocích, který je vyhrazen pro vývoj jádra spotřebitelem, který opakovaně používá periferii zařízení.

Úroveň uchování Určuje jednu z následujících úrovní zachování pro oddíl:

•    Nenastaveno—neurčuje žádnou úroveň uchování. Oddíl se zkompiluje ze zdroje files.

•    syntetizované—oddíl se zkompiluje pomocí syntetizovaného snímku.

•    finále—oddíl se zkompiluje pomocí konečného snímku.

S Úroveň uchování of syntetizované or finále, změny ve zdrojovém kódu se v syntéze neobjeví.

Prázdný Určuje prázdný oddíl, který kompilátor přeskočí. Toto nastavení není kompatibilní s Vyhrazené jádro a Databáze oddílů File nastavení pro stejný oddíl. The Úroveň uchování musí být Nenastaveno. Prázdný oddíl nemůže mít žádné podřízené oddíly.
Databáze oddílů File Určuje databázi oddílů File (.qdb), kterou kompilátor používá během kompilace oddílu. Exportujete .qdb pro stage kompilace, kterou chcete znovu použít (syntetizovanou nebo konečnou). Přiřaďte .qdb oddílu, abyste mohli tyto výsledky znovu použít v jiném kontextu.
Opětovné svázání entity • PR Flow – určuje entitu, která nahradí výchozí personu v každé revizi implementace.

• Root Partition Reuse Flow – určuje entitu, která nahradí vyhrazenou základní logiku v spotřebitelském projektu.

Barva Určuje barevné kódování oddílu na obrazovkách Plánovač čipů a Plánovač návrhových oddílů.
Export po syntéze File Automaticky exportuje výsledky kompilace po syntéze pro oddíl do vámi určeného .qdb při každém spuštění analýzy a syntézy. Můžete automaticky exportovat jakýkoli návrhový oddíl, který nemá zachovaný nadřazený oddíl, včetně kořenového_oddílu.
Po konečném exportu File Automaticky exportuje výsledky po závěrečné kompilaci pro oddíl do souboru .qdb, který určíte, pokaždé, když poslední stage z montérských běhů. Můžete automaticky exportovat jakýkoli návrhový oddíl, který nemá zachovaný nadřazený oddíl, včetně kořenového_oddílu.

Historie revizí dokumentu AN 903

Tento dokument má následující historii revizí:

Verze dokumentu Verze Intel Quartus Prime Změny
2021.02.25 19.3 Nahrazeno „vytáhnout“ za „napětí“ dovnitř Analyzujte a optimalizujte návrh RTL téma.
2020.03.23 19.3 Opravená syntaktická chyba v kódu sample v tématu „Uzamknout hodiny, RAM a DSP“.
2019.12.03 19.3 • První veřejné vydání.

Dokumenty / zdroje

intel AN 903 Accelerating Timing Clos [pdfUživatelská příručka
AN 903 zrychlující se časování uzavření, AN 903, zrychlující se časování uzavření, časování uzavření

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *