Intel AN 903 Acceleració del tancament del temps

AN 903: Acceleració del tancament del temps a Intel® Quartus® Prime Pro Edition
La densitat i la complexitat dels dissenys FPGA moderns, que combinen sistemes integrats, IP i interfícies d'alta velocitat, presenten reptes creixents per al tancament de temps. Els canvis arquitectònics tardans i els reptes de verificació poden comportar iteracions de disseny que consumeixen molt de temps. Aquest document resumeix tres passos per accelerar el tancament del temps mitjançant una metodologia verificada i repetible al programari Intel® Quartus® Prime Pro Edition. Aquesta metodologia inclou l'anàlisi i l'optimització RTL inicials, així com tècniques automatitzades per minimitzar el temps de compilació i reduir la complexitat del disseny i les iteracions necessàries per al tancament del temps.
Passos d'acceleració del tancament del temps

Passos d'acceleració del tancament del temps
Pas 1: analitzeu i optimitzeu el disseny RTL
L'optimització del codi font del vostre disseny sol ser la primera i la tècnica més eficaç per millorar la qualitat dels vostres resultats. L'Assistent de disseny Intel Quartus Prime us ajuda a corregir ràpidament les infraccions de les regles de disseny bàsiques i recomana canvis RTL que simplifiquen l'optimització del disseny i el tancament del temps.
Problemes de tancament temporal
- Els nivells lògics excessius influeixen en l'ordre de processament de Fitter, la durada i la qualitat dels resultats.
- Les xarxes d'extensió elevada provoquen congestió de recursos i afegeixen tensió addicional als camins de dades, augmentant innecessàriament la criticitat del camí i complicant el tancament del temps. Aquesta tensió és la força d'atracció que estira el camí (i tots els camins que comparteixen aquest senyal d'extinció alta) cap a la font de sortida alta.
Solucions de tancament temporal
- Corregir les infraccions de l'Assistent de disseny a la pàgina 4: per identificar i corregir ràpidament les infraccions bàsiques de les regles de disseny rellevants per al vostre disseny.
- Redueix els nivells lògics a la pàgina 7: per assegurar-te que tots els elements del disseny poden rebre les mateixes optimitzacions de Fitter i reduir els temps de compilació.
- Redueix les xarxes d'extensió elevada a la pàgina 9: per reduir la congestió de recursos i simplificar el tancament del temps.
Informació relacionada
- "Comprovació de regles de disseny amb l'assistent de disseny", Guia d'usuari d'Intel Quartus Prime Pro Edition: Recomanacions de disseny
- "Optimitza el codi font", Guia d'usuari d'Intel Quartus Prime Pro Edition: Optimització del disseny
- "Registres duplicats per al control de ventilació", Guia d'usuari d'Intel Quartus Prime Pro Edition: optimització del disseny
Corregir les infraccions de l'assistent de disseny
La realització d'anàlisis inicials del disseny per eliminar problemes coneguts de tancament de temps augmenta significativament la productivitat. Després d'executar una compilació inicial amb la configuració predeterminada, podeu tornarview els informes de l'assistent de disseny per a l'anàlisi inicial. Quan està activat, Design Assistant informa automàticament de qualsevol infracció d'un conjunt estàndard de directrius de disseny recomanades per Intel FPGA. Podeu executar Design Assistant en mode Compilation Flow, la qual cosa us permet view les infraccions rellevants per a la compilació stages corre. Com a alternativa, l'Assistent de disseny està disponible en mode d'anàlisi a l'analitzador de temps i al planificador de xips.
- Mode de flux de compilació—s'executa automàticament durant un o més stages de compilació. En aquest mode, l'Assistent de disseny utilitza dades d'entrada (transitòries) durant la compilació.
- Mode d'anàlisi—executeu l'Assistent de disseny de l'analitzador de temps i el planificador de xips per analitzar les infraccions del disseny en una compilació específica.tage, abans d'avançar en el flux de compilació. En mode d'anàlisi, l'Assistent de disseny utilitza dades d'instantànies de compilació estàtica.
L'Assistent de disseny designa cada infracció de les regles amb un dels nivells de gravetat següents. Podeu especificar quines regles voleu que l'Assistent de disseny comprovi al vostre disseny i personalitzar els nivells de gravetat, eliminant així les comprovacions de regles que no són importants per al vostre disseny.
Nivells de gravetat de la regla de l'assistent de disseny
| Categories | Descripció | Color del nivell de gravetat |
| Crític | Abordar el problema per a l'entrega. | Vermell |
| Alt | Potencialment provoca una fallada funcional. Pot indicar que falten dades de disseny o són incorrectes. | Taronja |
| Mitjana | Potencialment afecta la qualitat dels resultats de fMAX o utilització dels recursos. | marró |
| Baixa | La regla reflecteix les millors pràctiques per a les directrius de codificació RTL. | Blau |
Configuració de l'assistent de disseny
Podeu personalitzar completament l'Assistent de disseny segons les vostres característiques de disseny individuals i els vostres requisits d'informes. Feu clic a Tasques ➤ Configuració ➤ Configuració de regles de l'Assistent de disseny per especificar opcions que controlen quines regles i paràmetres s'apliquen als diferents s.tages de compilació de dissenys per a la verificació de regles de disseny.
Configuració de la regla de l'Assistent de disseny
Running Assistant de disseny
Quan està activat, l'Assistent de disseny s'executa automàticament durant la compilació i els informes han activat les infraccions de les regles de disseny a l'informe de compilació. Alternativament, podeu executar l'Assistent de disseny en mode d'anàlisi en una instantània de compilació específica per centrar l'anàlisi només en aquesta.tage. Per activar la comprovació automàtica de l'Assistent de disseny durant la compilació:
- Activeu Habilita l'execució de l'Assistent de disseny durant la compilació a la configuració de la regla de l'Assistent de disseny. Per executar l'Assistent de disseny en mode d'anàlisi per validar una instantània específica amb qualsevol regla de disseny que s'apliqui a la instantània:
- Feu clic a Informe DRC al tauler Tasques de l'analitzador de temps o del planificador de xips.
ViewCreació i correcció de resultats de l'assistent de disseny
Els informes de l'Assistent de disseny van permetre infraccions de les regles de disseny als diferents stages de l'informe de compilació.
L'assistent de disseny resulta en informes de síntesi, planificació, col·locació i finalització
A view els resultats de cada regla, feu clic a la regla a la llista Regles. Apareix una descripció de la regla i recomanacions de disseny per a la correcció.
Recomanació d'incompliment de regles de l'assistent de disseny

Modifiqueu el vostre RTL per corregir les infraccions de les regles de disseny.
Reduir els nivells lògics
Els nivells lògics excessius poden afectar la qualitat dels resultats de l'ajustador perquè el camí crític del disseny influeix en l'ordre i la durada del processament de l'ajustador. El Fitter col·loca i encamina el disseny basant-se en la fluïdesa del temps. L'ajustador col·loca primer els camins més llargs amb el menys fluix. En general, l'ajustador prioritza els camins de nivell lògic superior als camins de nivell lògic inferior. Normalment, després del Fitter stage està completa, els camins crítics restants no són els camins de nivell lògic més alt. L'ajustador ofereix la ubicació, l'encaminament i la retemporada preferits a la lògica de nivell superior. La reducció del nivell lògic ajuda a garantir que tots els elements del disseny rebin la mateixa prioritat de Fitter. Executeu informes ➤ Informes personalitzats ➤ Informe de temps a l'Analitzador de temps per generar informes que mostren els nivells de lògica del camí. Si el camí falla en el temps i el nombre de nivells lògics és elevat, considereu afegir canalització en aquesta part del disseny per millorar el rendiment.
Informe de profunditat lògica en el camí

Profunditat del nivell lògic d'informes
Després del Pla del compilador stage, podeu executar report_logic_depth a la consola Timing Analyzer Tcl per view el nombre de nivells lògics dins d'un domini de rellotge. report_logic_depth mostra la distribució de la profunditat lògica entre els camins crítics, la qual cosa us permet identificar àrees on podeu reduir els nivells lògics del vostre RTL.
profunditat_lògica_informe -nom_tauler -des de [get_clocks ] \ -a [get_clocks ]
report_logic_depth Sortida
Per obtenir dades per optimitzar RTL, executeu report_logic_depth després dels plans del compiladortage, abans de córrer restant Fitter stages. En cas contrari, els informes post-Fitter també inclouen resultats d'optimització física (retemporada i resíntesi).
Comunicació de camins de veïns
Després d'executar el Fitter (Finalitzar) stage, podeu executar report_neighbor_paths per ajudar a determinar la causa arrel del camí crític (per exemple,ample, nivell lògic alt, limitació de retemporització, col·locació subòptima, encreuament de columnes d'E/S, hold-fix o altres): report_neighbor_paths -to_clock -ncamins -nom_tauler
report_neighbor_paths informa dels camins més crítics pel que fa al temps del disseny, incloent-hi la fluïdesa associada, la informació addicional del resum del camí i els quadres delimitadors del camí.
report_neighbor_paths Sortida
report_neighbor_paths mostra el camí abans i el camí després de cada camí crític amb més temps. La retemporització o l'equilibri lògic del camí pot simplificar el tancament del temps si hi ha un marge negatiu al camí, però positiu al camí abans o al camí després.
Per activar la retemporada, assegureu-vos que les opcions següents estiguin activades:
- Per als registres: activeu les assignacions ➤ Configuració ➤ Configuració del compilador ➤ Optimització del registre ➤ Permet la retemporada del registre
- Per als punts finals de RAM: activeu les assignacions ➤ Configuració ➤ Configuració del compilador ➤ Configuració de l'ajustador (avançat) ➤ Permet la retemporada de la memòria RAM
- Per a punts finals DSP: activeu les assignacions ➤ Configuració ➤ Configuració del compilador ➤ Configuració de l'ajustador (avançat) ➤ Permet la retemporada de DSP
NOTA
Si cal més equilibri lògic, heu de modificar manualment el vostre RTL per moure la lògica del camí crític al camí abans o al camí després.
Si la sortida d'un registre està connectada a la seva entrada, un dels camins veïns o els dos poden ser idèntics al camí actual. Quan es busquen camins veïns amb el pitjor fluix, es tenen en compte totes les condicions de funcionament, no només les condicions de funcionament del camí principal en si.
Visualització de nivells lògics al mapa tecnològic Viewer
El Mapa Tecnològic Viewer també proporciona representacions esquemàtiques, amb mapes tecnològics, de la llista de xarxes de disseny i us pot ajudar a veure quines àrees d'un disseny es poden beneficiar de reduir el nombre de nivells lògics. També podeu investigar el disseny físic d'una ruta en detall al planificador de xips. Per localitzar un camí de cronometratge en un dels viewers, feu clic amb el botó dret a un camí a l'informe de cronometratge, assenyaleu Localitza el camí i seleccioneu Localitza al mapa tecnològic Vieweh.
Reduïu les xarxes d'alta ventilació
Les xarxes d'extensió elevada poden provocar congestió de recursos, cosa que complica el tancament del temps. En general, el compilador gestiona automàticament les xarxes de gran distribució relacionades amb els rellotges. El compilador promou automàticament les xarxes reconegudes d'alt ventall a la xarxa de rellotge global. El compilador fa un major esforç d'optimització durant els llocs i la rutatages, que resulta en una beneficiosa duplicació del registre. En els següents casos de cantonada, també podeu reduir la congestió fent els canvis manuals següents al vostre RTL de disseny:
Caixes de cantonada de xarxa amb sortida alta
| Característica del disseny | Optimització manual de RTL |
| Xarxes de gran distribució que arriben a moltes jerarquies o destinacions físicament llunyanes | Especifiqueu l'assignació de duplicate_hierarchy_depth a l'últim registre d'una canalització per duplicar manualment xarxes de gran distribució entre jerarquies. Especifiqueu l'assignació duplicate_register per duplicar els registres durant la col·locació. |
| Dissenys amb senyals de control a blocs de memòria DSP o M20K des de la lògica combinacional | Condueix el senyal de control a la memòria DSP o M20K des d'un registre. |
Registre la duplicació entre les jerarquies
Podeu especificar l'assignació de duplicate_hierarchy_depth a l'últim registre d'una canalització per guiar la creació de duplicació de registres i distribucions. Les figures següents il·lustren l'impacte de la següent assignació de duplicate_hierarchy_depth:
set_instance_assignment -name duplicate_hierarchy_depth -to \
On:
- register_name: l'últim registre d'una cadena que es distribueix a diverses jerarquies.
- level_number: el nombre de registres de la cadena a duplicar.
Figura 9. Abans de la duplicació del registre
Establiu l'assignació duplicate_hierarchy_depth per implementar la duplicació de registres entre jerarquies i creeu un arbre de registres després de l'últim registre de la cadena. Especifiqueu el nom del registre i el nombre de duplicats representats per M a l'example. Les fletxes vermelles mostren les ubicacions potencials dels registres duplicats.
- set_instance_assignment –nom DUPLICATE_HIERARCHY_DEPTH –a regZ M

Duplicació de registre = 1
Si s'especifica el següent nivell únic de duplicació de registre (M=1), es duplica un registre (regZ) un nivell inferior de la jerarquia de disseny:
- set_instance_assignment –nom DUPLICATE_HIERARCHY_DEPTH –a regZ 1

Duplicació de registre = 3
L'especificació de tres nivells de duplicació de registres (M=3) duplica tres registres (regZ, regY, regX) a tres, dos i un nivell de la jerarquia, respectivament:
- set_instance_assignment –nom DUPLICATE_HIERARCHY_DEPTH –a regZ 3

En duplicar i empènyer els registres cap avall a les jerarquies, el disseny conserva el mateix nombre de cicles a totes les destinacions, alhora que accelera molt el rendiment en aquests camins.
Registre la duplicació durant la col·locació
La figura 12 a la pàgina 11 mostra un registre amb un gran ventall a una àrea àmpliament estesa del xip. En duplicar aquest registre 50 vegades, podeu reduir la distància entre el registre i les destinacions que, en última instància, afavoreixen el rendiment del rellotge. L'assignació de duplicate_register permet al compilador aprofitar la proximitat física per guiar la col·locació de nous registres que alimenten un subconjunt de fan-outs.
Figura 12. Registre la duplicació durant la col·locació
Nota: Per transmetre un senyal a través del xip, utilitzeu un multistage canonada. Apliqueu l'assignació duplicate_register a cadascun dels registres del pipeline. Aquesta tècnica crea una estructura d'arbre que transmet el senyal a través del xip.
ViewResultats de duplicació
Després de la síntesi del disseny, view els resultats de la duplicació a l'informe Resum de duplicació de l'arbre jeràrquic a la carpeta Síntesi de l'informe de compilació. L'informe ofereix el següent:
- Informació sobre els registres que tenen l'assignació duplicate_hierarchy_depth.
- Raó de la longitud de la cadena que podeu utilitzar com a punt de partida per a més millores amb la tasca.
- Informació sobre els registres individuals de la cadena que podeu utilitzar per entendre millor l'estructura dels duplicats implementats.
L'informe de Fitter també inclou una secció sobre registres que tenen la configuració duplicate_register.
Aplicar tècniques d'optimització del compilador
Dissenys que utilitzen un percentatge molt alttagEls recursos del dispositiu FPGA poden provocar congestió de recursos, donant lloc a un fMAX més baix i un tancament de temps més complex. La configuració del mode d'optimització del compilador us permet especificar el focus dels esforços del compilador durant la síntesi. Per exampli, optimitzeu la síntesi per a l'àrea o la rutabilitat quan abordeu la congestió de recursos. Podeu experimentar amb combinacions d'aquests mateixos paràmetres del mode d'optimització a l'Intel Quartus Prime Design Space Explorer II. Aquests paràmetres i altres tècniques manuals us poden ajudar a reduir la congestió en dissenys molt utilitzats.
Problema de tancament temporal
- Els dissenys amb una utilització molt alta dels recursos del dispositiu compliquen el tancament del temps.
Solucions de tancament temporal
- Aplicació de modes i estratègies d'optimització del compilador a la pàgina 13: especifiqueu l'objectiu principal del mode d'optimització per a la síntesi del disseny.
- Proveu amb les opcions d'àrea i d'encaminament a la pàgina 16: apliqueu col·leccions addicionals de paràmetres per reduir la congestió i assolir els objectius d'àrea i d'itinerari.
- Considereu la síntesi fractal per a dissenys intensius en aritmètica a la pàgina 16: per a dissenys d'alt rendiment i intensius aritmètics, la síntesi fractal redueix l'ús de recursos del dispositiu mitjançant la regularització del multiplicador, la retemporada i l'empaquetament aritmètic continu.
Informació relacionada
- Capítol "Tancament i optimització del temps", Guia d'usuari de l'edició Intel Quartus Prime Pro: Optimització del disseny
- Guia d'usuari d'Intel Quartus Prime Pro Edition: compilació de dissenys
Aplicar modes i estratègies d'optimització del compilador
Utilitzeu la informació següent per aplicar els modes d'optimització del compilador i les estratègies de compilació Design Space Explorer II (DSE II).
Proveu amb la configuració del mode d'optimització del compilador
Seguiu aquests passos per experimentar amb la configuració del mode d'optimització del compilador:
- Creeu o obriu un projecte Intel Quartus Prime.
- Per especificar l'estratègia d'optimització d'alt nivell del compilador, feu clic a Tasques ➤ Configuració ➤ Configuració del compilador. Experimenteu amb qualsevol dels paràmetres de mode següents, tal com es descriu a la Taula 4 a la pàgina 14.
- Per compilar el disseny amb aquesta configuració, feu clic a Inicia la compilació al tauler de compilació.
- View la compilació resulta en l'informe de compilació.
- Feu clic a Eines ➤ Analitzador de temps per view els resultats de la configuració d'optimització del rendiment.
Configuració del mode d'optimització del compilador

Modes d'optimització (pàgina de configuració del compilador)
| Mode d'optimització | Descripció |
| Equilibrat (flux normal) | El compilador optimitza la síntesi per a una implementació equilibrada que respecta les limitacions de temps. |
| Esforç d'alt rendiment | El compilador augmenta l'esforç d'optimització del temps durant la col·locació i l'encaminament, i permet optimitzacions de síntesi física relacionades amb el temps (configuració d'optimització per registre). Cada optimització addicional pot augmentar el temps de compilació. |
| Alt rendiment amb el màxim esforç de col·locació | Habilita les mateixes optimitzacions del compilador que Esforç d'alt rendiment, amb un esforç addicional d'optimització de la ubicació. |
| Rendiment superior | Habilita les mateixes optimitzacions del compilador que Esforç d'alt rendiment, i afegeix més optimitzacions durant l'anàlisi i la síntesi per maximitzar el rendiment del disseny amb un augment potencial de l'àrea lògica. Si la utilització del disseny ja és molt alta, aquesta opció pot comportar dificultats en l'ajust, que també pot afectar negativament la qualitat general d'optimització. |
| Rendiment superior amb el màxim esforç de col·locació | Habilita les mateixes optimitzacions del compilador que Rendiment superior, amb un esforç addicional d'optimització de la ubicació. |
| Zona agressiva | El compilador fa un esforç agressiu per reduir l'àrea del dispositiu necessària per implementar el disseny a costa potencial del rendiment del disseny. |
| Alt esforç de rutabilitat de col·locació | El compilador fa un gran esforç per encaminar el disseny a costa de l'àrea de disseny, el rendiment i el temps de compilació. El compilador dedica més temps a reduir la utilització de l'encaminament, cosa que pot millorar l'encaminament i també estalviar energia dinàmica. |
| Alt esforç de rutabilitat d'embalatge | El compilador fa un gran esforç per encaminar el disseny a costa de l'àrea de disseny, el rendiment i el temps de compilació. El compilador dedica més temps a empaquetar registres, cosa que pot millorar la rutabilitat i també estalviar energia dinàmica. |
| Optimitza la llista de xarxes per a la rutabilitat | El compilador implementa modificacions de la llista de xarxes per augmentar la rutabilitat a costa del possible rendiment. |
| continuat… | |
| Mode d'optimització | Descripció |
| Alt esforç de potència | El compilador fa un gran esforç per optimitzar la síntesi per a baixa potència. Alt esforç de potència augmenta el temps d'execució de la síntesi. |
| Poder agressiu | Fa un esforç agressiu per optimitzar la síntesi per a baixa potència. El compilador redueix encara més l'ús d'encaminament dels senyals amb les taxes d'activació especificades o estimades més altes, estalviant potència dinàmica addicional però que pot afectar el rendiment. |
| Temps de compilació agressiu | Redueix el temps de compilació necessari per implementar el disseny amb un esforç reduït i menys optimitzacions de rendiment. Aquesta opció també desactiva algunes funcions d'informes detallats.
Nota: Encesa Temps de compilació agressiu activa la configuració d'Intel Quartus Prime File (.qsf) que no es poden substituir per altres configuracions .qsf. |
Dissenyar estratègies de compilació de Space Explorer II
DSE II us permet trobar la configuració òptima del projecte per als objectius d'optimització de recursos, rendiment o potència. DSE II us permet compilar de manera iterativa un disseny utilitzant diferents combinacions preestablertes de paràmetres i restriccions per aconseguir un objectiu específic. DSE II informa de la millor combinació de configuració per assolir els vostres objectius. DSE II també es pot avançartage d'habilitats de paral·lelització per compilar llavors en diversos ordinadors. La configuració de l'estratègia de compilació DSE II fa ressò de la configuració del mode d'optimització de la Taula 4 a la pàgina 14
Disseny espacial Explorer II
Seguiu aquests passos per especificar l'estratègia de compilació per a DSE II:
- Per iniciar el DSE II (i tancar el programari Intel Quartus Prime), feu clic a Eines ➤ Inicia el Design Space Explorer II. DSE II s'obre després que es tanqui el programari Intel Quartus Prime.
- A la barra d'eines DSE II, feu clic a la icona Exploració.
- Ampliar els punts d'exploració.
- Seleccioneu Exploració del disseny. Habiliteu qualsevol de les estratègies de compilació per executar exploracions de disseny orientades a aquestes estratègies.
Reduir la congestió per a un alt ús
Els dissenys que utilitzen més del 80% dels recursos del dispositiu solen presentar més dificultats per tancar el temps. Podeu aplicar les tècniques manuals i automatitzades següents per reduir encara més la congestió i simplificar el tancament temporal.
- Experimenteu amb les opcions d'àrea i d'itinerari a la pàgina 16
- Considereu la síntesi fractal per a dissenys intensius en aritmètica a la pàgina 16
Experimenta amb les opcions d'àrea i d'itinerari
Quan l'ús del dispositiu provoca congestió d'encaminament, podeu experimentar amb la configuració d'optimització d'àrea i encaminament per reduir la utilització de recursos i la congestió del vostre disseny. Feu clic a Tasques ➤ Configuració ➤ Configuració del compilador ➤ Mode d'optimització per accedir a aquesta configuració:
Opcions d'àrea i d'itinerari

Considereu la síntesi fractal per a dissenys intensius en aritmètica
Per a dissenys d'alt rendiment i intensius aritmètics, podeu habilitar optimitzacions automàtiques de síntesi fractal per millorar l'ús dels recursos del dispositiu. Les optimitzacions de la síntesi fractal inclouen la regularització i la retemporada del multiplicador, així com l'empaquetament aritmètic continu. Les optimitzacions es dirigeixen a dissenys amb un gran nombre d'operacions aritmètiques de baixa precisió (com ara sumes i multiplicacions). Podeu habilitar la síntesi fractal globalment o només per a multiplicadors específics. En condicions ideals, l'optimització de la síntesi fractal pot aconseguir una reducció d'àrea del 20-45%.
Regularització i retemporització de multiplicadors
La regularització i retemporització del multiplicador realitza la inferència d'implementacions de multiplicadors suaus altament optimitzades. El compilador pot aplicar la retemporada enrere a dos o més pipelinestages si cal. Quan activeu la síntesi fractal, el compilador aplica la regularització del multiplicador i la retemporada als multiplicadors signats i no signats.
Figura 16. Retemporització del multiplicador
NOTA
- La regularització del multiplicador utilitza només recursos lògics i no utilitza blocs DSP.
- La regularització i retemporització del multiplicador s'aplica tant als multiplicadors signats com als no signats en mòduls on s'estableix l'assignació QSF FRACTAL_SYNTHESIS.
Embalatge aritmètic continu
L'embalatge aritmètic continu torna a sintetitzar les portes aritmètiques en blocs lògics de mida òptima per adaptar-se als LAB Intel FPGA. Aquesta optimització permet utilitzar fins al 100% els recursos de LAB per als blocs aritmètics. Quan activeu la síntesi fractal, el compilador aplica aquesta optimització a totes les cadenes de transport i portes lògiques de dues entrades. Aquesta optimització pot empaquetar arbres de sumadors, multiplicadors i qualsevol altra lògica relacionada amb l'aritmètica.
Embalatge aritmètic continu

NOTA
Tingueu en compte que l'empaquetament aritmètic continu funciona independentment de la regularització del multiplicador. Per tant, si utilitzeu un multiplicador que no està regularitzat (com ara escriure el vostre propi multiplicador), l'empaquetament aritmètic continu encara pot funcionar. L'optimització de la síntesi fractal és més adequada per a dissenys amb acceleradors d'aprenentatge profund o altres funcions aritmètiques intensives i d'alt rendiment que superen tots els recursos DSP. L'habilitació de la síntesi fractal a tot el projecte pot provocar una inflació innecessària en mòduls que no són adequats per a optimitzacions fractals.
Habilitació o desactivació de la síntesi fractal
Per als dispositius Intel Stratix® 10 i Intel Agilex™, l'optimització de síntesi fractal s'executa automàticament per a multiplicadors petits (qualsevol declaració A*B a Verilog HDL o VHDL on l'amplada de bits dels operands és de 7 o menys). També podeu desactivar la síntesi fractal automàtica per a multiplicadors petits per a aquests dispositius mitjançant qualsevol dels mètodes següents:
- A RTL, configureu el DSP multstyle, tal com descriu "Multstyle Verilog HDL Synthesis Atribute". Per example: (* multstyle = “dsp” *) mòdul foo(…); mòdul foo(..) /* síntesi multstyle = “dsp” */;
- En el fitxer .qsf file, afegiu com a assignació de la següent manera: set_instance_assignment -name DSP_BLOCK_BLANCING_IMPLEMENTATION \DSP_BLOCKS -to r
A més, per als dispositius Intel Stratix 10, Intel Agilex, Intel Arria® 10 i Intel Cyclone® 10 GX, podeu habilitar la síntesi fractal globalment o per a multiplicadors específics amb l'opció GUI de síntesi fractal o l'assignació FRACTAL_SYNTHESIS .qsf corresponent:
- A RTL, utilitzeu altera_attribute de la manera següent: (* altera_attribute = "-name FRACTAL_SYNTHESIS ON" *)
- En el fitxer .qsf file, afegiu com a assignació de la següent manera: set_global_assignment -name FRACTAL_SYNTHESIS ON -entity
A la interfície d'usuari, seguiu aquests passos:
- Feu clic a Tasques ➤ Editor de tasques.
- Seleccioneu Síntesi fractal per a Nom de l'assignació, Activat per al Valor, el nom de l'entitat aritmètica intensiva per a l'Entitat i un nom d'instància a la columna A. Podeu introduir un comodí (*) perquè A assigni totes les instàncies de l'entitat.
Figura 18. Assignació de síntesi fractal a l'editor de tasques

Informació relacionada
- Atribut de síntesi Multstyle Verilog HDL
- A l'ajuda d'Intel Quartus Prime.
Preservar resultats satisfactoris
Podeu simplificar el tancament del temps mitjançant l'anotació posterior dels resultats de la compilació satisfactoris per bloquejar la col·locació de grans blocs relacionats amb rellotges, RAM i DSP. De la mateixa manera, la tècnica de reutilització de blocs de disseny us permet preservar resultats de compilació satisfactoris per a blocs de disseny lògic bàsic o perifèria FPGA específics (lògica que inclou una instància de disseny jeràrquic) i després reutilitzar aquests blocs en compilacions posteriors. En la reutilització de blocs de disseny, assigneu la instància jeràrquica com a partició de disseny i després conserveu i exporteu la partició després de la compilació correcta. Preservar i reutilitzar resultats satisfactoris us permet centrar l'esforç i el temps del compilador només en parts del disseny que no han tancat el temps.
Problema de tancament temporal
- A menys que estigui bloquejat, el compilador pot implementar blocs de disseny, rellotges, RAM i DSP de manera diferent d'una compilació a una altra depenent de diversos factors.
Solucions de tancament temporal
- Bloqueja els rellotges, les RAM i els DSP a la pàgina 20: anoteu els resultats de la compilació satisfactoris per bloquejar la col·locació de blocs grans relacionats amb els rellotges, les RAM i els DSP.
- Preserva els resultats de la partició de disseny a la pàgina 21: preserveu les particions per als blocs que compleixin el temps i centreu l'optimització en els altres blocs de disseny.
Informació relacionada
- Ajuda del quadre de diàleg d'anotació posterior de les tasques
- AN-899: Reducció del temps de compilació amb conservació ràpida
- Guia d'usuari d'Intel Quartus Prime Pro Edition: Disseny basat en blocs
Bloqueja els rellotges, les RAM i els DSP
Podeu simplificar el tancament del temps mitjançant l'anotació posterior dels resultats de la compilació satisfactoris per bloquejar la col·locació de blocs grans relacionats amb rellotges, memòria RAM i DSP. Bloquejar la col·locació de blocs grans pot produir un fMAX més alt amb menys soroll. Bloquejar blocs grans com RAM i DSP pot ser eficaç perquè aquests blocs tenen una connectivitat més pesada que els LAB normals, cosa que complica el moviment durant la col·locació. Quan una llavor produeix bons resultats amb la col·locació adequada de RAM i DSP, podeu capturar aquesta ubicació amb una anotació posterior. Les compilacions posteriors es poden beneficiar de la col·locació de RAM i DSP d'alta qualitat de la bona llavor. Aquesta tècnica no beneficia de manera significativa els dissenys amb molt poques RAM o DSP. Feu clic a Tasques ➤ Tasques d'anotació posterior per copiar les assignacions de recursos del dispositiu de la darrera compilació al fitxer .qsf per utilitzar-les a la següent compilació. Seleccioneu el tipus d'anotació posterior a la llista Tipus d'anotació posterior.
Quadre de diàleg d'anotació posterior de les tasques

Alternativament, podeu executar una anotació posterior amb l'executable quartus_cdb següent. quartus_cdb –back_annotate [–dsp] [–ram] [–clock]
NOTA
- L'executable admet les variables addicionals [–dsp], [–ram] i [–clock] que el quadre de diàleg Tasques d'anotació posterior encara no admet.
Preservar els resultats de la partició de disseny
NOTA
- Després de particionar el disseny, podeu conservar les particions per als blocs que compleixin el temps i centrar l'optimització en els altres blocs de disseny. A més, l'opció Fast Preserve simplifica la lògica d'una partició conservada només a la lògica de la interfície durant la compilació, reduint així el temps de compilació de la partició. Fast Preserve només admet la reutilització de particions arrel i els dissenys de reconfiguració parcial. Per als dissenys amb submòduls que són un repte per al tancament de temps, podeu realitzar una optimització i compilació autònomes de la partició del mòdul i, a continuació, exportar el mòdul tancat per temps per preservar la implementació en les compilacions posteriors.
Preservar els resultats de la partició de disseny

El disseny basat en blocs requereix particions de disseny. La partició de disseny us permet conservar blocs lògics individuals al vostre disseny, però també pot introduir una pèrdua potencial de rendiment a causa dels efectes de l'encreuament de la partició i del plànol. Cal equilibrar aquests factors quan utilitzeu tècniques de disseny basades en blocs. Els passos d'alt nivell següents descriuen el flux de preservació de particions per als dissenys de reutilització de particions arrel:
- Feu clic a Processament ➤ Inici ➤ Inicia anàlisi i elaboració.
- Al Navegador de projectes, feu clic amb el botó dret del ratolí a la instància de disseny tancada, assenyaleu Partició de disseny i seleccioneu un tipus de partició, tal com es descriu a la configuració de la partició de disseny a la pàgina 23.
Crea particions de disseny

- Definiu les restriccions de planificació del bloqueig lògic per a la partició. A la finestra Disseny de particions, feu clic amb el botó dret a la partició i, a continuació, feu clic a Regió de bloqueig lògic ➤ Crea una regió de bloqueig lògic nou. Assegureu-vos que la regió sigui prou gran per incloure tota la lògica a la partició.
- Per exportar els resultats de la partició després de la compilació, a la finestra de disseny de particions, especifiqueu la partició .qdb com a exportació final posterior. File.
Exportació posterior al final File

- Per compilar el disseny i exportar la partició, feu clic a Compila disseny al tauler de compilació.
- Obriu el projecte de primer nivell al programari Intel Quartus Prime.
- Feu clic a Tasques ➤ Configuració ➤ Configuració del compilador ➤ Compilació incremental. Activeu l'opció Fast Preserve.
Opció de conservació ràpida

- Feu clic a D'acord.
- A la finestra de disseny de particions, especifiqueu el .qdb exportat com a base de dades de particions File per a la partició en qüestió. Aquest .qdb és ara l'origen d'aquesta partició del projecte. Quan activeu l'opció Fast Preserve, el compilador redueix la lògica de la partició importada només a la lògica d'interfície, reduint així el temps de compilació que requereix la partició.
Configuració de la partició de disseny
Configuració de la partició de disseny
| Opció | Descripció |
| Nom de la partició | Especifica el nom de la partició. Cada nom de partició ha de ser únic i constar només de caràcters alfanumèrics. El programari Intel Quartus Prime crea automàticament una "partició_arrel" de nivell superior (|) per a cada revisió del projecte. |
| Camí de la jerarquia | Especifica la ruta de la jerarquia de la instància d'entitat que assigneu a la partició. Especifiqueu aquest valor al fitxer Crea una partició nova quadre de diàleg. El camí de la jerarquia de la partició arrel és |. |
| Tipus | Feu doble clic per especificar un dels tipus de partició següents que controlen com el compilador processa i implementa la partició: |
| continuat… | |
| Opció | Descripció |
| • Per defecte—Identifica una partició estàndard. El compilador processa la partició utilitzant la font de disseny associada files.
• Reconfigurable—Identifica una partició reconfigurable en un flux de reconfiguració parcial. Especifiqueu el Reconfigurable tipus per preservar els resultats de la síntesi, alhora que permet el reajustament de la partició al flux PR. • Nucli reservat—Identifica una partició en un flux de disseny basat en blocs que es reserva per al desenvolupament bàsic per part d'un consumidor que reutilitza la perifèria del dispositiu. |
|
| Nivell de conservació | Especifica un dels nivells de conservació següents per a la partició:
• No establert—No especifica cap nivell de conservació. La partició es compila des del codi font files. • sintetitzat—la partició es compila utilitzant la instantània sintetitzada. • final—la partició es compila utilitzant la instantània final. Amb Nivell de conservació of sintetitzat or final, els canvis al codi font no apareixen a la síntesi. |
| Buit | Especifica una partició buida que el compilador omet. Aquesta configuració és incompatible amb el Nucli reservat i Base de dades de particions File configuració per a la mateixa partició. El Nivell de conservació ha de ser No establert. Una partició buida no pot tenir cap partició fill. |
| Base de dades de particions File | Especifica una base de dades de particions File (.qdb) que el compilador utilitza durant la compilació de la partició. Exporteu el .qdb per al stage de compilació que voleu reutilitzar (sintetitzada o final). Assigna el .qdb a una partició per reutilitzar aquests resultats en un altre context. |
| Revinculació d'entitats | • PR Flow: especifica l'entitat que substitueix la persona predeterminada en cada revisió d'implementació.
• Flux de reutilització de la partició arrel: especifica l'entitat que substitueix la lògica central reservada al projecte del consumidor. |
| Color | Especifica la codificació de colors de la partició a les pantalles del planificador de xips i del planificador de particions de disseny. |
| Exportació posterior a la síntesi File | Exporta automàticament els resultats de la compilació posterior a la síntesi per a la partició al fitxer .qdb que especifiqueu, cada vegada que s'executa Analysis & Synthesis. Podeu exportar automàticament qualsevol partició de disseny que no tingui una partició pare conservada, inclosa la partició_arrel. |
| Exportació posterior al final File | Exporta automàticament els resultats de la compilació posterior a la partició al fitxer .qdb que especifiqueu, cada vegada que el s finaltage de les pistes del Fitter. Podeu exportar automàticament qualsevol partició de disseny que no tingui una partició pare conservada, inclosa la partició_arrel. |
AN 903 Historial de revisions de documents
Aquest document té el següent historial de revisions:
| Versió del document | Versió Intel Quartus Prime | Canvis |
| 2021.02.25 | 19.3 | S'ha substituït "estirar" per "tensió". Analitzar i optimitzar el disseny RTL tema. |
| 2020.03.23 | 19.3 | S'ha corregit l'error de sintaxi al codi sampli al tema "Bloquejar rellotges, RAM i DSP". |
| 2019.12.03 | 19.3 | • Primer llançament públic. |
Documents/Recursos
![]() |
Intel AN 903 Acceleració del tancament del temps [pdfGuia de l'usuari AN 903 Acceleració del tancament del temps, AN 903, Acceleració del tancament del temps, Tancament del temps |





