- AMD FPGA設計優化寶典:面向Vivado/VHDL
- 高亞軍編著
- 727字
- 2023-12-12 20:02:32
1.5 性能指標
對于一個FPGA設計,我們該如何評估其性能呢?通常會用到以下幾個指標:設計可運行的最高頻率(Fmax)、輸入到輸出的時鐘周期數(Latency)、吞吐率(Throughput)、資源利用率和功耗(Power)。
Fmax可通過時序報告計算得到。在Vivado中,可通過命令report_timing_summary生成時序報告,如圖1-46所示。當WNS、WHS和WPWS均大于或等于0時,表明時序已收斂。

圖1-46
在圖1-46中,WNS為0.171ns,若時鐘周期為10ns,那么Fmax為

顯然,WNS越大越好。
輸入到輸出的延遲通常用時鐘周期個數來表示,稱為Latency,該指標也反映了設計的流水級數。如圖1-47所示,輸入x0對應的輸出為y0,輸入x1對應的輸出為y1,從輸入到輸出需要3個時鐘周期,因此Latency為3。相鄰兩個輸入之間間隔的時鐘周期個數反映了該設計的吞吐率。顯然,Latency越小越好。但Latency小意味著流水級數低,這可能會導致Fmax降低。

圖1-47
在Vivado下,可通過命令xilinx::designutils::report_failfast(從Vivado 2022.1開始,可直接使用命令report_qor_assessment)查看資源利用率的指導值和實際值,如圖1-48所示,圖中,Guideline列對應指導值,Actual列對應實際值,Status列若為REVIEW,則表明其所在行對應的資源利用率超過指導值。

圖1-48
將圖1-48中的信息提取出來,形成表1-7,表中,LUTRAM表示分布式RAM,SRL表示用LUT實現的移位寄存器。根據此表,我們可以在設計初期進行芯片選型。需要注意的是BRAM、UltraRAM和DSP48三者的資源利用率都不能超過80%,若超過了80%,則要保證三者的平均利用率低于80%。
表1-7

此外,我們還要看設計功耗是否達到預期目標。在Vivado下,可通過命令report_power生成當前設計的功耗報告,如圖1-49所示。報告提供的信息越多(如通過仿真提供.saif文件等),可信度越高。

圖1-49
這些性能指標不是獨立的,而是相互影響的。有時為了提升Fmax而增加Latency或資源利用率;有時為了降低資源利用率而犧牲Fmax。無論如何,最終的目標是實現時序和功耗均收斂。時序收斂意味著設計達到了預期的Fmax,功耗收斂意味著設計的功耗在目標范圍內。
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- 編寫整潔的Python代碼(第2版)
- C語言程序設計立體化案例教程
- 人人都懂設計模式:從生活中領悟設計模式(Python實現)
- JavaCAPS基礎、應用與案例
- Java程序設計入門
- Python深度學習:模型、方法與實現
- Unity 2018 Shaders and Effects Cookbook
- Clojure for Machine Learning
- Building Serverless Architectures
- Python自然語言理解:自然語言理解系統開發與應用實戰
- 監控的藝術:云原生時代的監控框架
- Qt 5.12實戰
- 現代C++語言核心特性解析
- Swift 2 Design Patterns