- Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境
- 何賓編著
- 1892字
- 2021-10-29 21:33:57
2.3 Quartus Prime Pro設計流程
編譯流程是順序和方法,通過這個流程,軟件翻譯設計文件,將翻譯后的設計映射到器件指定的元件,在器件中對設計執行布局和布線,然后生成編程文件。Intel Quartus Prime Pro版本的軟件在不同階段執行這些功能,如分析和綜合、適配器等。
2.3.1 處理流程框架
Intel Quartus Prime Pro版本的軟件的基本設計流程如圖2.16所示。

注
圖中虛線表示當行為仿真和時序仿真不滿足設計要求時,需要對設計進行修改。
一個完整的Quartus Prime Pro版本的軟件的設計流程中各個步驟與命令的對應關系如表 2.2 所示。一個完整的 Quartus Prime Pro 版本的軟件的設計流程中包含了 Quartus Prime Pro版本的軟件的基本設計流程中沒有執行的步驟。

圖2.16 Intel Quartus Prime Pro版本的軟件的基本設計流程
表2.2 圖2.16各個步驟與命令的對應關系

續表


注
(1)quartus_fit--retime只用于Intel Stratix 10器件。
(2)Intel Quartus Prime Pro版本的設計入口提供了多種設計方法,包括文本編輯器(支持 HDL)、原理圖編輯器、狀態機編輯器、IP 目錄和IP 參數編輯器、設計分區規劃器、平臺設計器/平臺設計器(Pro)系統設計工具、DSP Builder、OpenCL、Intel HLS 編譯器和第三方設計入口工具。
在FPGA設計的過程中,需要通過功能仿真和時序仿真來保證設計的正確性。因此,通常在綜合后,對設計執行功能仿真,在該仿真中不會考慮任何時序問題,只是為了單純驗證邏輯功能的正確性;適配后,對設計執行時序仿真,該仿真對設計的功能和時序同時進行驗證。當執行功能仿真時,如果邏輯功能不滿足設計要求,則需要修改原始設計。當然,在時序仿真時,如果發現設計不能滿足要求,可能就需要對原始設計進行較大的修改,有時候甚至會拋棄整個原來的設計,這是因為保證時序收斂是FPGA設計工程師最重要的設計目標,當然這也是他們最頭疼的一件事情。
2.3.2 增量優化的概念
Quartus Prime Pro版本在設計編譯的每個階段都支持增量優化。在增量優化中,設計者可以在按順序運行下一個編譯模塊之前獨立運行和優化每個編譯階段,如圖 2.17 所示。編譯器將每個階段的結果保留位分析快照。當讀者對設計或約束進行修改時,編譯器僅運行受更改影響的階段。在綜合或任何適配器階段之后,查看結果并執行時序分析。Genuine 需要修改設計 RTL 或編譯器設置,然后重新運行綜合或適配器并評估這些變化的結果。重復這個過程,指導模塊性能滿足要求。這個流程可以在每個階段最大化結果,而無須等待完整的編譯結果。

圖2.17 增量優化流程
2.3.3 超感知設計流程
Quartus Prime Pro版本的編譯器可幫助設計者充分利用Stratix 10的HyperFlex架構。使用超感知(Hyper-Aware)設計流程以縮短設計周期并優化性能。
超感知設計流程將自動寄存器重定時(Hyper-Retiming)和目標時序收斂建議(快速向前編譯)相結合,使 Stratix 10 設計最大限度地利用超寄存器(Hyper-Register)并驅動最高性能,如圖2.18所示。

圖2.18 超感知設計流程(1)
1.超重定時
Stratix 10 架構的一項重要創新就是在每個布線段和塊輸入中添加了多個超寄存器。最大限度地使用超寄存器可以提高設計性能。超寄存器的普及改善了寄存器之間時間延遲的平衡,并減少了關鍵路徑延遲。超重定時將寄存器從 ALM 中移出,并在有利情況下將它們重定時到超寄存器,如圖 2.19 所示。超重定時在適配期間自動運行,只需要很少的工作量,并且可以顯著提高性能。

圖2.19 超寄存器架構
2.快速向前編譯
如果設計者需要超重定時之外的優化,運行快速向前(Fast-Forward)編譯以產生時序收斂建議,從而打破關鍵性能瓶頸??焖傧蚯熬幾g精確顯示了對 RTL 更改產生最大影響的位置,并報告了每次更改可以帶來的性能優勢。適配器不會自動在RAM和DSP塊中重定時寄存器。然而,快速向前分析顯示了該優化的潛在性能優勢。
快速向前編譯識別添加流水線級(超流水線)的最佳位置,并且在每種情況下的預期性能優勢。當設計者修改 RTL 在每個時鐘邊界放置流水線級后,超重定時器(Hyper-Retimer)會自動將寄存器放在時鐘域內的最佳位置,以最大限度地提高性能。在 RTL 中實施建議以實現類似的結果。執行任何更改后,重新運行超重定時器,直到結果滿足性能和時序要求為止??焖傧蚯熬幾g不會自動作為完整編譯過程的一部分。在Compilation Dashboard中使能或運行快速向前編譯。
HyperFlex優化的步驟包括:
(1)超重定時。重定時器將已經存在的寄存器移到超寄存器中。
(2)快速向前編譯。編譯器產生設計指定的時序收斂建議,并且預測性能改善。
(3)超流水線。使用快速向前編譯以識別在RTL中添加新寄存器和流水線級的位置。
(4)超優化。超出超重定時和超流水線的設計優化,如重構循環、去除控制邏輯限制和減少長路徑的延遲。
超感知設計流程包括下面的步驟,如圖2.20所示。

圖2.20 超感知設計流程(2)
(1)在適配器運行重定時階段,自動將ALM寄存器重定時到超寄存器。
(2)在編譯報告中查看重定時結果。
(3)如果要求更進一步的性能優化,則運行快速向前編譯。
(4)查看快速向前時序收斂建議。
(5)在設計的RTL中,實施合理的快速向前建議。
(6)通過重定時階段重新編譯設計。
- 筆記本電腦使用、維護與故障排除實戰
- Raspberry Pi 3 Cookbook for Python Programmers
- 新型電腦主板關鍵電路維修圖冊
- Creating Dynamic UI with Android Fragments
- 分布式系統與一致性
- 微軟互聯網信息服務(IIS)最佳實踐 (微軟技術開發者叢書)
- 計算機組裝與維護(第3版)
- STM32嵌入式技術應用開發全案例實踐
- 筆記本電腦維修300問
- 筆記本電腦應用技巧
- VMware Workstation:No Experience Necessary
- 無蘋果不生活:OS X Mountain Lion 隨身寶典
- 觸摸屏應用技術從入門到精通
- 微控制器的應用
- Blender for Video Production Quick Start Guide