intel AN 903 Pinabilis ang Pagsara ng Timing
AN 903: Pinabilis ang Pagsara ng Timing sa Intel® Quartus® Prime Pro Edition
Ang densidad at pagiging kumplikado ng mga modernong disenyo ng FPGA, na pinagsasama ang mga naka-embed na system, IP, at mga high-speed na interface, ay nagpapakita ng mga dumaraming hamon para sa pagsasara ng timing. Ang mga huling pagbabago sa arkitektura at mga hamon sa pag-verify ay maaaring humantong sa pag-uubos ng mga pag-uulit ng disenyo. Ang dokumentong ito ay nagbubuod ng tatlong hakbang upang mapabilis ang pagsasara ng timing gamit ang isang na-verify at nauulit na pamamaraan sa software ng Intel® Quartus® Prime Pro Edition. Kasama sa pamamaraang ito ang paunang pagsusuri at pag-optimize ng RTL, pati na rin ang mga automated na diskarte para mabawasan ang oras ng compilation at bawasan ang pagiging kumplikado ng disenyo at mga pag-ulit na kinakailangan para sa pagsasara ng timing.
Mga Hakbang sa Pagpapabilis ng Pagsasara ng Timing
Mga Hakbang sa Pagpapabilis ng Pagsasara ng Timing
Hakbang 1: Suriin at I-optimize ang Disenyo RTL
Ang pag-optimize sa source code ng iyong disenyo ay karaniwang ang una at pinakamabisang pamamaraan para sa pagpapabuti ng kalidad ng iyong mga resulta. Tinutulungan ka ng Intel Quartus Prime Design Assistant na mabilis na iwasto ang mga pangunahing paglabag sa panuntunan sa disenyo, at nagrerekomenda ng mga pagbabago sa RTL na nagpapasimple sa pag-optimize ng disenyo at pagsasara ng timing.
Mga Problema sa Pagsara ng Oras
- Ang sobrang lohika na antas ay nakakaimpluwensya sa Fitter processing order, tagal, at kalidad ng mga resulta.
- Ang matataas na fan-out net ay nagdudulot ng pagsisikip ng mapagkukunan at nagdaragdag ng karagdagang tensyon sa mga path ng data, hindi kinakailangang pagtaas ng pagiging kritikal ng landas, at kumplikadong pagsasara ng timing. Ang pag-igting na ito ay ang puwersa ng atraksyon na humihila sa landas (at lahat ng mga landas na nagbabahagi ng mataas na signal ng fan-out na iyon) patungo sa pinagmulan ng mataas na fan-out.
Mga Solusyon sa Pagsara ng Oras
- Tamang Mga Paglabag sa Design Assistant sa pahina 4—upang mabilis na matukoy at maitama ang mga pangunahing paglabag sa panuntunan sa disenyo na nauugnay sa iyong disenyo.
- Bawasan ang Logic Levels sa pahina 7—upang matiyak na ang lahat ng elemento ng disenyo ay makakatanggap ng parehong mga Fitter optimization at para mabawasan ang mga oras ng pag-compile.
- Bawasan ang High Fan-Out Nets sa pahina 9—upang bawasan ang resource congestion at pasimplehin ang timing closure.
Kaugnay na Impormasyon
- "Pagsusuri ng Panuntunan ng Disenyo gamit ang Design Assistant," Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Mga Rekomendasyon sa Disenyo
- “Optimize Source Code,” Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Pag-optimize ng Disenyo
- "Mga Duplicate na Register para sa Fan-Out Control," Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Pag-optimize ng Disenyo
Mga Tamang Paglabag sa Design Assistant
Ang pagsasagawa ng paunang pagsusuri sa disenyo upang maalis ang mga kilalang isyu sa pagsasara ng timing ay makabuluhang nagpapataas ng produktibidad. Pagkatapos magpatakbo ng isang paunang compilation na may mga default na setting, maaari mong mulingview ang Design Assistant ay nag-uulat para sa paunang pagsusuri. Kapag naka-enable, awtomatikong iuulat ng Design Assistant ang anumang mga paglabag laban sa isang karaniwang hanay ng mga alituntunin sa disenyo na inirerekomenda ng Intel FPGA. Maaari mong patakbuhin ang Design Assistant sa Compilation Flow mode, na nagbibigay-daan sa iyo view ang mga paglabag na nauugnay para sa compilation stages tumakbo ka. Bilang kahalili, ang Design Assistant ay available sa analysis mode sa Timing Analyzer at Chip Planner.
- Mode ng Daloy ng Compilation—awtomatikong tumatakbo sa panahon ng isa o higit pang stages ng compilation. Sa mode na ito, ang Design Assistant ay gumagamit ng in-flow (transient) na data sa panahon ng compilation.
- Mode ng Pagsusuri—patakbuhin ang Design Assistant mula sa Timing Analyzer at Chip Planner upang suriin ang mga paglabag sa disenyo sa isang partikular na compilation stage, bago sumulong sa daloy ng compilation. Sa mode ng pagsusuri, gumagamit ang Design Assistant ng static na compilation snapshot data.
Itinalaga ng Design Assistant ang bawat paglabag sa panuntunan sa isa sa mga sumusunod na antas ng kalubhaan. Maaari mong tukuyin kung aling mga panuntunan ang gusto mong tingnan ng Design Assistant sa iyong disenyo, at i-customize ang mga antas ng kalubhaan, kaya inaalis ang mga pagsusuri sa panuntunan na hindi mahalaga para sa iyong disenyo.
Mga Antas ng Severity ng Panuntunan ng Design Assistant
Mga kategorya | Paglalarawan | Kulay ng Antas ng Kalubhaan |
Kritikal | Tugunan ang isyu para sa hand-off. | Pula |
Mataas | Posibleng magdulot ng functional failure. Maaaring magpahiwatig ng nawawala o maling data ng disenyo. | Kahel |
Katamtaman | Posibleng makaapekto sa kalidad ng mga resulta para sa fMAX o paggamit ng mapagkukunan. | kayumanggi |
Mababa | Sinasalamin ng panuntunan ang pinakamahuhusay na kagawian para sa mga alituntunin sa RTL coding. | Asul |
Pag-set Up ng Design Assistant
Maaari mong ganap na i-customize ang Design Assistant para sa iyong mga indibidwal na katangian ng disenyo at mga kinakailangan sa pag-uulat. I-click ang Mga Assignment ➤ Settings ➤ Design Assistant Rule Settings para tukuyin ang mga opsyon na kumokontrol kung aling mga panuntunan at parameter ang nalalapat sa iba't ibang stages ng pagsasama-sama ng disenyo para sa pagsusuri ng panuntunan sa disenyo.
Mga Setting ng Panuntunan ng Design Assistant
Tumatakbong Design Assistant
Kapag naka-enable, awtomatikong tumatakbo ang Design Assistant sa panahon ng compilation at nag-uulat ng mga paglabag sa panuntunan sa disenyo na pinagana sa Compilation Report. Bilang kahalili, maaari mong patakbuhin ang Design Assistant sa Analysis Mode sa isang partikular na compilation snapshot upang ituon ang pagsusuri sa mga iyon lamang.tage. Para i-enable ang automated Design Assistant checking sa panahon ng compilation:
- I-on ang Paganahin ang pagpapatupad ng Design Assistant sa panahon ng compilation sa Mga Setting ng Panuntunan ng Design Assistant. Upang patakbuhin ang Design Assistant sa mode ng pagsusuri upang patunayan ang isang partikular na snapshot laban sa anumang mga panuntunan sa disenyo na nalalapat sa snapshot:
- I-click ang Iulat ang DRC sa panel ng Timing Analyzer o Chip Planner Tasks.
Viewing at Pagwawasto ng Mga Resulta ng Design Assistant
Pinagana ng mga ulat ng Design Assistant ang mga paglabag sa panuntunan sa disenyo sa iba't ibang stages ng Compilation Report.
Mga Resulta ng Design Assistant sa Synthesis, Plano, Place, at Finalize na Mga Ulat
Upang view ang mga resulta para sa bawat panuntunan, i-click ang panuntunan sa listahan ng Mga Panuntunan. Lumilitaw ang isang paglalarawan ng panuntunan at mga rekomendasyon sa disenyo para sa pagwawasto.
Rekomendasyon sa Paglabag sa Panuntunan ng Design Assistant
Baguhin ang iyong RTL para itama ang mga paglabag sa panuntunan sa disenyo.
Bawasan ang Logic Levels
Ang labis na antas ng lohika ay maaaring makaapekto sa kalidad ng mga resulta ng Fitter dahil ang kritikal na landas ng disenyo ay nakakaimpluwensya sa pagkakasunud-sunod at tagal ng pagproseso ng Fitter. Inilalagay at ruta ng Fitter ang disenyo batay sa timing slack. Ang Fitter ay naglalagay ng mas mahabang mga landas na may hindi bababa sa malubay muna. Karaniwang inuuna ng Fitter ang mas matataas na logic-level path kaysa sa lower-logic level na path. Karaniwan, pagkatapos ng Fitter stage ay kumpleto na, ang mga kritikal na landas na natitira ay hindi ang pinakamataas na landas sa antas ng lohika. Ang Fitter ay nagbibigay ng ginustong placement, routing, at retiming sa mas mataas na antas ng logic. Ang pagbabawas sa antas ng lohika ay nakakatulong upang matiyak na ang lahat ng mga elemento ng disenyo ay tumatanggap ng parehong priyoridad ng Fitter. Magpatakbo ng Mga Ulat ➤ Mga Custom na Ulat ➤ Ulat ng Timing sa Timing Analyzer upang bumuo ng mga ulat na nagpapakita ng mga antas ng lohika sa landas. Kung nabigo ang path sa timing at ang bilang ng mga antas ng lohika ay mataas, isaalang-alang ang pagdaragdag ng pipelining sa bahaging iyon ng disenyo upang mapabuti ang pagganap.
Logic Depth sa Path Report
Pag-uulat ng Logic Level Depth
Pagkatapos ng Plano ng Compiler stage, maaari mong patakbuhin ang report_logic_depth sa Timing Analyzer Tcl console sa view ang bilang ng mga antas ng lohika sa loob ng isang domain ng orasan. Ang report_logic_depth ay nagpapakita ng distribusyon ng logic depth sa mga kritikal na landas, na nagbibigay-daan sa iyong tukuyin ang mga lugar kung saan maaari mong bawasan ang mga antas ng logic sa iyong RTL.
report_logic_depth -panel_name -mula sa [get_clocks ] \ -to [get_clocks ]
report_logic_depth Output
Upang makakuha ng data para sa pag-optimize ng RTL, patakbuhin ang report_logic_depth pagkatapos ng Compiler's Plantage, bago tumakbo ang natitirang Fitter stages. Kung hindi man, kasama rin sa mga ulat ng post-Fitter ang mga resulta mula sa pisikal na pag-optimize (retiming at resynthesis).
Pag-uulat ng Mga Landas ng Kapitbahay
Pagkatapos patakbuhin ang Fitter (Finalize) stage, maaari kang magpatakbo ng report_neighbor_paths upang makatulong na matukoy ang ugat ng kritikal na landas (para sa halample, mataas na antas ng logic, limitasyon sa paghinto, sub-optimal na pagkakalagay, I/O column crossing, hold-fix, o iba pa): report_neighbor_paths -to_clock -npaths -panel_name
Ang report_neighbor_paths ay nag-uulat ng pinaka-timing-kritikal na mga landas sa disenyo, kabilang ang nauugnay na slack, karagdagang impormasyon sa buod ng landas, at mga kahon ng hangganan ng landas.
report_neghbor_paths Output
Ipinapakita ng report_neighbor_paths ang pinaka-kritikal sa timing na Path Before at Path After ng bawat kritikal na Path. Maaaring gawing simple ng pagre-retim o pagbabalanse ng lohika ng path ang pagsasara ng timing kung mayroong negatibong slack sa Path, ngunit positibong slack sa Path Before o Path After.
Upang paganahin ang pag-retiming, tiyaking naka-on ang mga sumusunod na opsyon:
- Para sa Mga Rehistro—paganahin ang Mga Takdang-aralin ➤ Mga Setting ➤ Mga Setting ng Compiler ➤ Pag-optimize ng Pagrehistro ➤ Payagan ang Pag-retim ng Pagrehistro
- Para sa Mga Endpoint ng RAM—paganahin ang Mga Assignment ➤ Settings ➤ Compiler Settings ➤ Fitter Settings (Advanced) ➤ Payagan ang RAM Retiming
- Para sa Mga Endpoint ng DSP—paganahin ang Mga Assignment ➤ Mga Setting ➤ Mga Setting ng Compiler ➤ Mga Setting ng Fitter (Advanced) ➤ Payagan ang Pag-retim ng DSP
TANDAAN
Kung kinakailangan ang karagdagang pagbabalanse ng lohika, dapat mong manu-manong baguhin ang iyong RTL upang ilipat ang lohika mula sa kritikal na Path patungo sa Path Before o Path After.
Kung ang output ng isang rehistro ay konektado sa input nito, ang isa o pareho sa mga kalapit na landas ay maaaring magkapareho sa kasalukuyang landas. Kapag naghahanap ng mga kapitbahay na daanan na may pinakamasamang pagkaantala, ang lahat ng mga kondisyon ng pagpapatakbo ay isinasaalang-alang, hindi lamang ang mga kondisyon ng pagpapatakbo ng pangunahing landas mismo.
Visualizing Logic Levels sa Technology Map Viewer
Ang Mapa ng Teknolohiya ViewNagbibigay din ito ng eskematiko, nakamapang teknolohiya, mga representasyon ng netlist ng disenyo, at makakatulong sa iyo na makita kung aling mga bahagi sa isang disenyo ang maaaring makinabang mula sa pagbabawas ng bilang ng mga antas ng lohika. Maaari mo ring imbestigahan ang pisikal na layout ng isang path nang detalyado sa Chip Planner. Upang mahanap ang isang timing path sa isa sa viewers, i-right-click ang isang path sa ulat ng timing, ituro ang Hanapin ang Path, at piliin ang Hanapin sa Mapa ng Teknolohiya Vieweh.
Bawasan ang High Fan-Out Nets
Ang mga high fan-out nets ay maaaring magdulot ng resource congestion, at sa gayo'y nagiging kumplikado ang pagsasara ng timing. Sa pangkalahatan, awtomatikong pinamamahalaan ng Compiler ang mga high fan-out net na may kaugnayan sa mga orasan. Awtomatikong nagpo-promote ang Compiler ng mga kinikilalang high fan-out net sa pandaigdigang network ng orasan. Ang Compiler ay gumagawa ng mas mataas na pagsisikap sa pag-optimize sa panahon ng Place and Route stages, na nagreresulta sa kapaki-pakinabang na pagdoble ng rehistro. Sa mga sumusunod na kaso ng sulok, maaari mo ring bawasan ang pagsisikip sa pamamagitan ng paggawa ng mga sumusunod na manu-manong pagbabago sa iyong disenyo ng RTL:
Mataas na Fan-Out Net Corner Cases
Katangian ng Disenyo | Manu-manong RTL Optimization |
Mataas na fan-out net na umaabot sa maraming hierarchy o pisikal na malayong destinasyon | Tukuyin ang duplicate_hierarchy_depth na pagtatalaga sa huling rehistro sa isang pipeline upang manu-manong i-duplicate ang mataas na fan-out na network sa mga hierarchy. Tukuyin ang pagtatalaga ng duplicate_register sa mga duplicate na rehistro sa panahon ng pagkakalagay. |
Mga disenyo na may mga control signal sa DSP o M20K na mga bloke ng memorya mula sa kumbinasyon na lohika | I-drive ang control signal sa DSP o M20K memory mula sa isang rehistro. |
Magrehistro ng Duplikasyon sa Buong Hierarchies
Maaari mong tukuyin ang duplicate_hierarchy_depth na pagtatalaga sa huling rehistro sa isang pipeline upang gabayan ang paglikha ng pagdoble ng rehistro at mga fan-out. Ang mga sumusunod na figure ay naglalarawan ng epekto ng sumusunod na duplicate_hierarchy_depth na pagtatalaga:
set_instance_assignment -name duplicate_hierarchy_depth -to \
saan:
- register_name—ang huling rehistro sa isang chain na sumusubaybay sa maraming hierarchy.
- level_number—ang bilang ng mga rehistro sa chain na ido-duplicate.
Figure 9. Bago Magrehistro ng Duplication
Itakda ang duplicate_hierarchy_depth na pagtatalaga upang ipatupad ang pagdoble ng rehistro sa mga hierarchy, at lumikha ng isang puno ng mga rehistro kasunod ng huling rehistro sa chain. Tinukoy mo ang pangalan ng rehistro at ang bilang ng mga duplicate na kinakatawan ng M sa sumusunod na halample. Ipinapakita ng mga pulang arrow ang mga potensyal na lokasyon ng mga duplicate na rehistro.
- set_instance_assignment –pangalan DUPLICATE_HIERARCHY_DEPTH –to regZ M
Magrehistro ng Duplikasyon = 1
Ang pagtukoy sa sumusunod na solong antas ng pagdoble ng rehistro (M=1) ay duplicate ng isang rehistro (regZ) pababa sa isang antas ng hierarchy ng disenyo:
- set_instance_assignment –pangalan DUPLICATE_HIERARCHY_DEPTH –sa regZ 1
Magrehistro ng Duplikasyon = 3
Ang pagtukoy sa tatlong antas ng pagdoble ng rehistro (M=3) ay duplicate ng tatlong rehistro (regZ, regY, regX) pababa sa tatlo, dalawa, at isang antas ng hierarchy, ayon sa pagkakabanggit:
- set_instance_assignment –pangalan DUPLICATE_HIERARCHY_DEPTH –sa regZ 3
Sa pamamagitan ng pagdoble at pagtulak sa mga rehistro pababa sa mga hierarchy, ang disenyo ay nagpapanatili ng parehong bilang ng mga cycle sa lahat ng mga destinasyon, habang lubos na pinabilis ang pagganap sa mga landas na ito.
Magrehistro ng Duplikasyon Habang Naglalagay
Ang Figure 12 sa pahina 11 ay nagpapakita ng isang rehistro na may mataas na fan-out sa malawak na kumakalat na lugar ng chip. Sa pamamagitan ng pagdoble sa rehistrong ito ng 50 beses, maaari mong bawasan ang distansya sa pagitan ng rehistro at mga destinasyon na sa huli ay nagreresulta sa mas mabilis na pagganap ng orasan. Ang pagtatalaga ng duplicate_register ay nagbibigay-daan sa Compiler na gamitin ang pisikal na kalapitan upang gabayan ang paglalagay ng mga bagong rehistro na nagpapakain ng subset ng mga fan-out.
Figure 12. Register Duplication Habang Placement
Tandaan: Upang mag-broadcast ng signal sa buong chip, gumamit ng multistage pipeline. Ilapat ang duplicate_register na pagtatalaga sa bawat isa sa mga rehistro sa pipeline. Ang diskarteng ito ay lumilikha ng isang istraktura ng puno na nagbo-broadcast ng signal sa buong chip.
ViewMga Resulta ng Duplikasyon
Kasunod ng synthesis ng disenyo, view nagreresulta ang duplication sa ulat ng Hierarchical Tree Duplication Summary sa folder ng Synthesis ng Compilation Report. Ang ulat ay nagbibigay ng sumusunod:
- Impormasyon sa mga rehistro na mayroong duplicate_hierarchy_depth na pagtatalaga.
- Dahilan para sa haba ng chain na maaari mong gamitin bilang panimulang punto para sa higit pang mga pagpapabuti sa assignment.
- Impormasyon tungkol sa mga indibidwal na rehistro sa chain na magagamit mo para mas maunawaan ang istruktura ng mga ipinatupad na duplicate.
Kasama rin sa ulat ng Fitter ang isang seksyon sa mga rehistro na mayroong setting ng duplicate_register.
Ilapat ang Compiler Optimization Techniques
Mga disenyo na gumagamit ng napakataas na porsyentotage ng FPGA device resources ay maaaring magdulot ng resource congestion, na nagreresulta sa mas mababang fMAX at mas kumplikadong pagsasara ng timing. Nagbibigay-daan sa iyo ang mga setting ng Optimization Mode ng Compiler na tukuyin ang focus ng mga pagsusumikap ng Compiler sa panahon ng synthesis. Para kay exampKung gayon, ino-optimize mo ang synthesis para sa Lugar, o Routability kapag tinutugunan ang pagsisikip ng mapagkukunan. Maaari kang mag-eksperimento sa mga kumbinasyon ng parehong mga setting ng Optimization Mode na ito sa Intel Quartus Prime Design Space Explorer II. Ang mga setting na ito at iba pang manu-manong pamamaraan ay makakatulong sa iyo na mabawasan ang kasikipan sa mga disenyong lubos na ginagamit.
Problema sa Pagsara ng Oras
- Ang mga disenyo na may napakataas na paggamit ng mapagkukunan ng device ay nagpapalubha sa pagsasara ng oras.
Mga Solusyon sa Pagsara ng Oras
- Ilapat ang Compiler Optimization Mode at Strategy sa pahina 13—tukuyin ang pangunahing layunin ng optimization mode para sa synthesis ng disenyo.
- Mag-eksperimento sa Mga Opsyon sa Lugar at Routability sa pahina 16—maglapat ng mga karagdagang koleksyon ng mga setting upang bawasan ang pagsisikip at matugunan ang mga layunin sa lugar at rutability.
- Isaalang-alang ang Fractal Synthesis para sa Arithmetic-Intensive Designs sa pahina 16—Para sa high-throughput, arithmetic-intensive na mga disenyo, binabawasan ng fractal synthesis ang paggamit ng mapagkukunan ng device sa pamamagitan ng multiplier regularization, retiming, at tuluy-tuloy na arithmetic packing.
Kaugnay na Impormasyon
- Kabanata ng "Pagsasara at Pag-optimize ng Oras", Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Pag-optimize ng Disenyo
- Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Compilation ng Disenyo
Ilapat ang Compiler Optimization Mode at Istratehiya
Gamitin ang sumusunod na impormasyon para ilapat ang Compiler optimization modes at Design Space Explorer II (DSE II) compilation strategy.
Eksperimento sa Mga Setting ng Compiler Optimization Mode
Sundin ang mga hakbang na ito upang mag-eksperimento sa mga setting ng Compiler optimization mode:
- Gumawa o magbukas ng proyekto ng Intel Quartus Prime.
- Upang tukuyin ang mataas na antas na diskarte sa pag-optimize ng Compiler, i-click ang Mga Takdang-aralin ➤ Mga Setting ➤ Mga Setting ng Compiler. Eksperimento sa alinman sa mga sumusunod na setting ng mode, gaya ng inilalarawan ng Talahanayan 4 sa pahina 14.
- Upang i-compile ang disenyo gamit ang mga setting na ito, i-click ang Start Compilation sa Compilation Dashboard.
- View ang mga resulta ng compilation sa Compilation Report.
- I-click ang Tools ➤ Timing Analyzer upang view ang mga resulta ng mga setting ng pag-optimize sa pagganap.
Mga Setting ng Compiler Optimization Mode
Mga Mode ng Pag-optimize (Pahina ng Mga Setting ng Compiler)
Mode ng Pag-optimize | Paglalarawan |
Balanse (normal na daloy) | Ino-optimize ng Compiler ang synthesis para sa balanseng pagpapatupad na nirerespeto ang mga hadlang sa timing. |
High Performance Effort | Pinapataas ng Compiler ang pagsusumikap sa pag-optimize ng timing sa panahon ng paglalagay at pagruruta, at pinapagana ang mga pag-optimize ng Physical Synthesis na nauugnay sa timing (bawat mga setting ng pag-optimize ng rehistro). Ang bawat karagdagang pag-optimize ay maaaring tumaas ang oras ng pag-compile. |
Mataas na Pagganap na may Pinakamataas na Pagsusumikap sa Paglalagay | Pinapagana ang parehong mga pag-optimize ng Compiler bilang High Performance Effort, na may karagdagang pagsusumikap sa pag-optimize ng placement. |
Superior na Pagganap | Pinapagana ang parehong mga pag-optimize ng Compiler bilang High Performance Effort, at nagdaragdag ng higit pang mga pag-optimize sa panahon ng Pagsusuri at Synthesis upang i-maximize ang pagganap ng disenyo na may potensyal na pagtaas sa lugar ng lohika. Kung ang paggamit ng disenyo ay napakataas na, ang opsyong ito ay maaaring humantong sa kahirapan sa pag-angkop, na maaari ring negatibong makaapekto sa pangkalahatang kalidad ng pag-optimize. |
Superior na Pagganap na may Pinakamataas na Pagsusumikap sa Paglalagay | Pinapagana ang parehong mga pag-optimize ng Compiler bilang Superior na Pagganap, na may karagdagang pagsusumikap sa pag-optimize ng placement. |
Agresibong Lugar | Ang Compiler ay gumagawa ng agresibong pagsisikap na bawasan ang lugar ng device na kinakailangan upang ipatupad ang disenyo sa potensyal na gastos sa pagganap ng disenyo. |
High Placement Routability Effort | Ang Compiler ay gumagawa ng mataas na pagsisikap na iruta ang disenyo sa potensyal na gastos ng lugar ng disenyo, pagganap, at oras ng pagsasama-sama. Ang Compiler ay gumugugol ng karagdagang oras sa pagbabawas ng routing utilization, na maaaring mapabuti ang routing at makatipid din ng dynamic na kapangyarihan. |
Mataas na Pagsusumikap sa Pag-ikot ng Pag-iimpake | Ang Compiler ay gumagawa ng mataas na pagsisikap na iruta ang disenyo sa potensyal na gastos ng lugar ng disenyo, pagganap, at oras ng pagsasama-sama. Ang Compiler ay gumugugol ng karagdagang oras sa pag-iimpake ng mga rehistro, na maaaring mapabuti ang roubility at makatipid din ng dynamic na kapangyarihan. |
I-optimize ang Netlist para sa Routability | Ang Compiler ay nagpapatupad ng mga pagbabago sa netlist upang mapataas ang roubility sa posibleng gastos ng pagganap. |
nagpatuloy... |
Mode ng Pag-optimize | Paglalarawan |
High Power Effort | Ang Compiler ay gumagawa ng mataas na pagsisikap upang i-optimize ang synthesis para sa mababang kapangyarihan. High Power Effort pinatataas ang oras ng pagtakbo ng synthesis. |
Agresibong Kapangyarihan | Gumagawa ng agresibong pagsisikap na i-optimize ang synthesis para sa mababang kapangyarihan. Higit na binabawasan ng Compiler ang paggamit ng pagruruta ng mga signal na may pinakamataas na tinukoy o tinantyang mga toggle rate, na nagse-save ng karagdagang dynamic na power ngunit posibleng makaapekto sa performance. |
Agresibong Compile Time | Binabawasan ang oras ng pag-compile na kinakailangan upang maipatupad ang disenyo nang may pinababang pagsisikap at mas kaunting mga pag-optimize sa pagganap. Hindi rin pinapagana ng opsyong ito ang ilang detalyadong pag-uulat na function.
Tandaan: Naka-on Agresibong Compile Time pinapagana ang Mga Setting ng Intel Quartus Prime File (.qsf) na mga setting na hindi ma-override ng iba pang mga setting ng .qsf. |
Disenyo ng Space Explorer II Compilation Strategies
Binibigyang-daan ka ng DSE II na makahanap ng pinakamainam na mga setting ng proyekto para sa mga layunin sa resource, performance, o power optimization. Binibigyang-daan ka ng DSE II na paulit-ulit na mag-compile ng isang disenyo gamit ang iba't ibang preset na kumbinasyon ng mga setting at mga hadlang upang makamit ang isang partikular na layunin. Pagkatapos ay iuulat ng DSE II ang pinakamahusay na kumbinasyon ng mga setting upang maabot ang iyong mga layunin. Ang DSE II ay maaari ding kumuha ng advantage ng mga kakayahan sa parallelization na mag-compile ng mga buto sa maraming computer. Ang mga setting ng DSE II Compilation Strategy ay sumasalamin sa mga setting ng Optimization Mode sa Talahanayan 4 sa pahina 14
Disenyo ng Space Explorer II
Sundin ang mga hakbang na ito para tukuyin ang Compilation Strategy para sa DSE II:
- Upang ilunsad ang DSE II (at isara ang Intel Quartus Prime software), i-click ang Tools ➤ Ilunsad ang Design Space Explorer II. Magbubukas ang DSE II pagkatapos magsara ang software ng Intel Quartus Prime.
- Sa DSE II toolbar, i-click ang Exploration icon.
- Palawakin ang Mga Exploration Point.
- Piliin ang Paggalugad ng disenyo. Paganahin ang alinman sa mga diskarte sa Compilation upang magpatakbo ng mga pag-explore ng disenyo na nagta-target sa mga diskarteng iyon.
Bawasan ang Pagsisikip para sa Mataas na Paggamit
Ang mga disenyo na gumagamit ng higit sa 80% ng mga mapagkukunan ng device ay karaniwang nagpapakita ng pinakamahirap sa pagsasara ng oras. Maaari mong ilapat ang mga sumusunod na manu-mano at automated na diskarte upang higit na mabawasan ang pagsisikip at pasimplehin ang pagsasara ng oras.
- Eksperimento sa Mga Opsyon sa Lugar at Routability sa pahina 16
- Isaalang-alang ang Fractal Synthesis para sa Arithmetic-Intensive na Disenyo sa pahina 16
Eksperimento sa Lugar at Mga Opsyon sa Pag-ruta
Kapag nagdudulot ng congestion sa pagruruta ang paggamit ng device, maaari kang mag-eksperimento sa mga setting ng pag-optimize ng Area at Routability para mabawasan ang paggamit ng resource at congestion para sa iyong disenyo. I-click ang Mga Assignment ➤ Settings ➤ Compiler Settings ➤ Optimization Mode para ma-access ang mga setting na ito:
Mga Opsyon sa Lugar at Routability
Isaalang-alang ang Fractal Synthesis para sa Arithmetic-Intensive na Disenyo
Para sa mga high-throughput, arithmetic-intensive na mga disenyo, maaari mong paganahin ang mga awtomatikong fractal synthesis optimization para mapahusay ang paggamit ng mga mapagkukunan ng device. Kasama sa mga pag-optimize ng Fractal synthesis ang multiplier regularization at retiming, pati na rin ang tuluy-tuloy na arithmetic packing. Ang mga pag-optimize ay nagta-target ng mga disenyo na may malaking bilang ng mga pagpapatakbo ng aritmetika na mababa ang katumpakan (tulad ng mga pagdaragdag at pagpaparami). Maaari mong paganahin ang fractal synthesis sa buong mundo o para lamang sa mga partikular na multiplier. Sa ilalim ng perpektong mga kondisyon, ang fractal synthesis optimization ay maaaring makamit ang 20-45% na pagbawas ng lugar.
Multiplier Regularization at Retiming
Ang regularization ng multiplier at retiming ay nagsasagawa ng inference ng lubos na na-optimize na mga soft multiplier na pagpapatupad. Maaaring ilapat ng Compiler ang backward retiming sa dalawa o higit pang pipeline stages kung kinakailangan. Kapag pinagana mo ang fractal synthesis, inilalapat ng Compiler ang regularization ng multiplier at pag-retiming sa mga signed at unsigned multiplier.
Figure 16. Multiplier Retiming
TANDAAN
- Gumagamit lang ng logic resources ang multiplier regularization at hindi gumagamit ng DSP blocks.
- Inilapat ang regularization at retiming ng multiplier sa parehong mga pinirmahan at hindi nalagdaan na multiplier sa mga module kung saan nakatakda ang pagtatalaga ng FRACTAL_SYNTHESIS QSF.
Patuloy na Arithmetic Packing
Ang tuluy-tuloy na arithmetic packing ay muling nagsi-synthesize ng mga arithmetic gate sa mga bloke ng lohika na mahusay ang laki upang magkasya sa mga Intel FPGA LAB. Ang pag-optimize na ito ay nagbibigay-daan sa hanggang 100% na paggamit ng mga mapagkukunan ng LAB para sa mga bloke ng arithmetic. Kapag pinagana mo ang fractal synthesis, inilalapat ng Compiler ang pag-optimize na ito sa lahat ng carry chain at two-input logic gate. Ang pag-optimize na ito ay maaaring mag-pack ng mga adder tree, multiplier, at anumang iba pang logic na nauugnay sa arithmetic.
Patuloy na Arithmetic Packing
TANDAAN
Tandaan na ang tuluy-tuloy na arithmetic packing ay gumagana nang hiwalay sa multiplier regularization. Kaya, kung gumagamit ka ng multiplier na hindi regular (tulad ng pagsulat ng iyong sariling multiplier) kung gayon ang tuluy-tuloy na arithmetic packing ay maaari pa ring gumana. Ang pag-optimize ng Fractal synthesis ay pinakaangkop para sa mga disenyo na may mga deep-learning accelerators o iba pang high-throughput, arithmetic-intensive na function na lumalampas sa lahat ng mapagkukunan ng DSP. Ang pagpapagana ng fractal synthesis sa buong proyekto ay maaaring magdulot ng hindi kinakailangang bloat sa mga module na hindi angkop para sa mga fractal optimization.
Paganahin o Pag-disable ng Fractal Synthesis
Para sa mga Intel Stratix® 10 at Intel Agilex™ device, awtomatikong tumatakbo ang fractal synthesis optimization para sa maliliit na multiplier (anumang A*B statement sa Verilog HDL o VHDL kung saan ang bit-width ng mga operand ay 7 o mas mababa). Maaari mo ring i-disable ang awtomatikong fractal synthesis para sa maliliit na multiplier para sa mga device na ito gamit ang alinman sa mga sumusunod na pamamaraan:
- Sa RTL, itakda ang DSP multstyle, gaya ng inilalarawan ng "Multstyle Verilog HDL Synthesis Attribute." Para kay example: (* multstyle = “dsp” *) module foo(…); module foo(..) /* synthesis multstyle = “dsp” */;
- Sa .qsf file, idagdag bilang takdang-aralin tulad ng sumusunod: set_instance_assignment -name DSP_BLOCK_BALANCING_IMPLEMENTATION \DSP_BLOCKS -to r
Bilang karagdagan, para sa mga Intel Stratix 10, Intel Agilex, Intel Arria® 10, at Intel Cyclone® 10 GX device, maaari mong paganahin ang fractal synthesis sa buong mundo o para sa mga partikular na multiplier na may opsyong Fractal Synthesis GUI o ang kaukulang FRACTAL_SYNTHESIS .qsf assignment:
- Sa RTL, gumamit ng altera_attribute gaya ng sumusunod: (* altera_attribute = “-name FRACTAL_SYNTHESIS ON” *)
- Sa .qsf file, idagdag bilang takdang-aralin gaya ng sumusunod: set_global_assignment -name FRACTAL_SYNTHESIS ON -entity
Sa user interface, sundin ang mga hakbang na ito:
- I-click ang Mga Assignment ➤ Editor ng Assignment.
- Piliin ang Fractal Synthesis para sa Assignment Name, On para sa Value, ang arithmetic-intensive na pangalan ng entity para sa Entity, at isang instance name sa column na Para. Maaari kang maglagay ng wildcard (*) para kay To para italaga ang lahat ng instance ng entity.
Figure 18. Fractal Synthesis Assignment sa Assignment Editor
Kaugnay na Impormasyon
- Multstyle Verilog HDL Synthesis Attribute
- Sa Intel Quartus Prime Help.
Panatilihin ang Kasiya-siyang Resulta
Maaari mong pasimplehin ang pagsasara ng timing sa pamamagitan ng back-annotating ng mga kasiya-siyang resulta ng compilation upang i-lock down ang paglalagay ng malalaking bloke na nauugnay sa mga orasan, RAM, at DSP. Katulad nito, binibigyang-daan ka ng diskarteng muling paggamit ng design block na mapanatili ang kasiya-siyang resulta ng compilation para sa mga partikular na FPGA periphery o core logic design blocks (logic na binubuo ng hierarchical na instance ng disenyo), at pagkatapos ay muling gamitin ang mga block na iyon sa mga susunod na compilation. Sa muling paggamit ng bloke ng disenyo, itinalaga mo ang hierarchical na instance bilang isang partition ng disenyo, at pagkatapos ay i-preserve at i-export ang partition kasunod ng matagumpay na compilation. Ang pag-iingat at muling paggamit ng mga kasiya-siyang resulta ay nagbibigay-daan sa iyo na ituon ang pagsisikap at oras ng Compiler sa mga bahagi lamang ng disenyo na hindi nagsara ng timing.
Problema sa Pagsara ng Oras
- Maliban kung naka-lock down, maaaring ipatupad ng Compiler ang mga bloke ng disenyo, orasan, RAM, at DSP nang iba mula sa compiler hanggang compilation depende sa iba't ibang salik.
Mga Solusyon sa Pagsara ng Oras
- I-lock ang Mga Orasan, RAM, at DSP sa pahina 20—i-back-annotate ang mga kasiya-siyang resulta ng compilation upang i-lock down ang paglalagay ng malalaking bloke na nauugnay sa mga orasan, RAM, at DSP.
- Panatilihin ang Mga Resulta ng Partition ng Disenyo sa pahina 21—panatilihin ang mga partisyon para sa mga bloke na tumutugon sa timing, at ituon ang pag-optimize sa iba pang mga bloke ng disenyo.
Kaugnay na Impormasyon
- Tulong sa Dialog Box ng Back-Annotate Assignments
- AN-899: Pagbawas ng Oras ng Pag-compile gamit ang Mabilis na Pag-iingat
- Gabay sa Gumagamit ng Intel Quartus Prime Pro Edition: Block-Based Design
I-lock ang Mga Orasan, RAM, at DSP
Maaari mong pasimplehin ang pagsasara ng timing sa pamamagitan ng back-annotating ng mga kasiya-siyang resulta ng compilation upang i-lock down ang paglalagay ng malalaking bloke na nauugnay sa Mga Orasan, RAM, at DSP. Ang pag-lock ng malaking block placement ay maaaring makagawa ng mas mataas na fMAX na may kaunting ingay. Ang pag-lock ng malalaking bloke tulad ng mga RAM at DSP ay maaaring maging epektibo dahil ang mga bloke na ito ay may mas mabigat na koneksyon kaysa sa mga regular na LAB, na nagpapahirap sa paggalaw sa panahon ng paglalagay. Kapag ang isang binhi ay gumawa ng magagandang resulta mula sa angkop na RAM at DSP na pagkakalagay, maaari mong makuha ang pagkakalagay na iyon gamit ang back-annotation. Ang mga susunod na compiles ay maaaring makinabang mula sa mataas na kalidad ng RAM at DSP na pagkakalagay mula sa magandang binhi. Ang diskarteng ito ay hindi lubos na nakikinabang sa mga disenyo na may napakakaunting mga RAM o DSP. I-click ang Mga Assignment ➤ Back-Annotate Assignment upang kopyahin ang mga pagtatalaga ng mapagkukunan ng device mula sa huling compilation patungo sa .qsf para magamit sa susunod na compilation. Piliin ang uri ng back-annotation sa listahan ng uri ng back-annotation.
Dialog Box ng Back-Annotate na Mga Assignment
Bilang kahalili, maaari kang magpatakbo ng back-annotation gamit ang sumusunod na quartus_cdb executable. quartus_cdb –back_annotate [–dsp] [–ram] [–clock]
TANDAAN
- Sinusuportahan ng executable ang karagdagang [–dsp], [–ram], at [–clock] na mga variable na hindi pa sinusuportahan ng dialog box ng Back-Annotate Assignments.
Panatilihin ang Mga Resulta ng Partition ng Disenyo
TANDAAN
- Pagkatapos mahati ang disenyo, maaari mong mapanatili ang mga partisyon para sa mga bloke na tumutugon sa timing, at ituon ang pag-optimize sa iba pang mga bloke ng disenyo. Bilang karagdagan, ang pagpipiliang Mabilis na Panatilihin ay pinapasimple ang lohika ng isang napanatili na partisyon upang mag-interface lamang ang logic sa panahon ng compilation, at sa gayon ay binabawasan ang oras ng compilation para sa partition. Sinusuportahan lamang ng Fast Preserve ang muling paggamit ng root partition at mga disenyo ng bahagyang reconfiguration. Para sa mga disenyo na may mga sub-modules na mahirap para sa pagsasara ng timing, maaari kang magsagawa ng stand-alone na pag-optimize at pagsasama-sama ng partition ng module, at pagkatapos ay i-export ang timing-closed module upang mapanatili ang pagpapatupad sa mga susunod na compilations.
Pagpapanatili ng Mga Resulta ng Partition ng Disenyo
Ang block-based na disenyo ay nangangailangan ng paghati sa disenyo. Binibigyang-daan ka ng paghati sa disenyo na mapanatili ang mga indibidwal na bloke ng logic sa iyong disenyo, ngunit maaari ring ipakilala ang potensyal na pagkawala ng pagganap dahil sa mga epekto ng partition crossing at floorplan. Kailangan mong balansehin ang mga salik na ito kapag gumagamit ng mga diskarte sa disenyo na nakabatay sa block. Ang mga sumusunod na hakbang sa mataas na antas ay naglalarawan sa daloy ng pagpapanatili ng partition para sa mga disenyo ng muling paggamit ng partition ng ugat:
- I-click ang Processing ➤ Start ➤ Start Analysis & Elaboration.
- Sa Project Navigator, i-right-click ang timing closed design instance, ituro ang Design Partition, at pumili ng Uri ng partition, gaya ng inilalarawan ng Design Partition Settings sa pahina 23.
Lumikha ng Mga Partisyon ng Disenyo
- Tukuyin ang Logic Lock floorplanning constraints para sa partition. Sa Window ng Design Partitions, i-right click ang partition at pagkatapos ay i-click ang Logic Lock Region ➤ Create New Logic Lock Region. Tiyakin na ang rehiyon ay sapat na malaki upang ilakip ang lahat ng lohika sa partisyon.
- Para i-export ang mga resulta ng partition kasunod ng compilation, sa Design Partitions Window, tukuyin ang partition .qdb bilang Post Final Export File.
Pagkatapos ng Huling Pag-export File
- Upang i-compile ang disenyo at i-export ang partition, i-click ang Compile Design sa Compilation Dashboard.
- Buksan ang top-level na proyekto sa Intel Quartus Prime software.
- I-click ang Mga Assignment ➤ Settings ➤ Compiler Settings ➤ Incremental Compile. I-on ang opsyong Mabilis na Panatilihin.
Mabilis na Preserve na Opsyon
- I-click ang OK.
- Sa Design Partitions Window, tukuyin ang na-export na .qdb bilang Partition Database File para sa partisyon na pinag-uusapan. Ang .qdb na ito ang pinagmulan ngayon ng partition na ito sa proyekto. Kapag pinagana mo ang pagpipiliang Mabilis na Panatilihin, binabawasan ng Compiler ang lohika ng na-import na partition sa lohika lamang ng interface, sa gayon ay binabawasan ang oras ng compiler na kinakailangan ng partition.
Mga Setting ng Partition ng Disenyo
Mga Setting ng Partition ng Disenyo
Pagpipilian | Paglalarawan |
Pangalan ng Partisyon | Tinutukoy ang pangalan ng partisyon. Ang bawat pangalan ng partisyon ay dapat na natatangi at binubuo lamang ng mga alphanumeric na character. Ang software ng Intel Quartus Prime ay awtomatikong gumagawa ng pinakamataas na antas (|) na "root_partition" para sa bawat rebisyon ng proyekto. |
Hierarchy Path | Tinutukoy ang hierarchy path ng entity instance na itinalaga mo sa partition. Tinukoy mo ang halagang ito sa Lumikha ng Bagong Partisyon dialog box. Ang root partition hierarchy path ay |. |
Uri | I-double click upang tukuyin ang isa sa mga sumusunod na uri ng partition na kumokontrol kung paano pinoproseso at ipinapatupad ng Compiler ang partition: |
nagpatuloy... |
Pagpipilian | Paglalarawan |
• Default—Tumutukoy ng karaniwang partition. Pinoproseso ng Compiler ang partition gamit ang nauugnay na pinagmulan ng disenyo files.
• Reconfigureable—Tumutukoy ng isang reconfigurable partition sa isang partial reconfiguration flow. Tukuyin ang Reconfigureable uri upang mapanatili ang mga resulta ng synthesis, habang pinapayagan ang pag-refit ng partition sa daloy ng PR. • Nakareserbang Core—Tumutukoy ng partition sa isang block-based na daloy ng disenyo na nakalaan para sa core development ng isang Consumer na muling gumagamit ng periphery ng device. |
|
Antas ng Pagpapanatili | Tinutukoy ang isa sa mga sumusunod na antas ng pangangalaga para sa partisyon:
• Hindi Nakatakda—ay tumutukoy sa walang antas ng pangangalaga. Ang partisyon ay nag-compile mula sa pinagmulan files. • synthesized—ang partition ay nag-compile gamit ang synthesized snapshot. • pangwakas—ang partition ay nag-compile gamit ang huling snapshot. Sa Antas ng Pagpapanatili of synthesized or pangwakas, ang mga pagbabago sa source code ay hindi lumalabas sa synthesis. |
Walang laman | Tinutukoy ang isang walang laman na partisyon na nilalaktawan ng Compiler. Ang setting na ito ay hindi tugma sa Nakareserbang Core at Database ng Partisyon File mga setting para sa parehong partisyon. Ang Antas ng Pagpapanatili dapat ay Hindi Nakatakda. Ang isang walang laman na partition ay hindi maaaring magkaroon ng anumang child partition. |
Database ng Partisyon File | Tinutukoy ang isang Partition Database File (.qdb) na ginagamit ng Compiler sa panahon ng compilation ng partition. I-export mo ang .qdb para sa stage ng compilation na gusto mong gamitin muli (synthesized o final). Italaga ang .qdb sa isang partition upang muling gamitin ang mga resulta sa ibang konteksto. |
Entity Re-binding | • PR Flow—tumutukoy sa entity na pumapalit sa default na persona sa bawat rebisyon ng pagpapatupad.
• Daloy ng Muling Paggamit ng Root Partition —tinutukoy ang entity na pumapalit sa nakareserbang core logic sa proyekto ng consumer. |
Kulay | Tinutukoy ang color-coding ng partition sa mga display ng Chip Planner at Design Partition Planner. |
Post Synthesis Export File | Awtomatikong ine-export ang mga resulta ng compilation ng post-synthesis para sa partition sa .qdb na iyong tinukoy, sa tuwing tatakbo ang Analysis at Synthesis. Maaari mong awtomatikong i-export ang anumang partition ng disenyo na walang napreserbang parent partition, kabilang ang root_partition. |
Pagkatapos ng Huling Pag-export File | Awtomatikong ine-export ang mga resulta ng post-final compilation para sa partition sa .qdb na iyong tinukoy, sa tuwing ang huling stage ng Fitter run. Maaari mong awtomatikong i-export ang anumang partition ng disenyo na walang napreserbang parent partition, kabilang ang root_partition. |
AN 903 Document Revision History
Ang dokumentong ito ay may sumusunod na kasaysayan ng rebisyon:
Bersyon ng Dokumento | Bersyon ng Intel Quartus Prime | Mga pagbabago |
2021.02.25 | 19.3 | Pinalitan ang "pull" ng "tension" in Suriin at I-optimize ang Disenyo RTL paksa. |
2020.03.23 | 19.3 | Nawastong syntax error sa code sampsa paksang "I-lock ang Mga Orasan, RAM, at DSP." |
2019.12.03 | 19.3 | • Unang pampublikong paglabas. |
Mga Dokumento / Mga Mapagkukunan
![]() |
intel AN 903 Pinabilis ang Pagsara ng Timing [pdf] Gabay sa Gumagamit AN 903 Pinabilis ang Pagsara ng Timing, AN 903, Pagpapabilis ng Pagsara ng Timing, Pagsasara ng Timing |