從音頻輸入到輸出,現(xiàn)有的實時數(shù)字音頻系統(tǒng)很難實現(xiàn)低于 1ms 的時延。實際上,200μs 是到目前為止可實現(xiàn)的最佳時延。INSA(法國)的 Emeraude 研究團隊正在開發(fā) Syfala 編譯器,該編譯器結(jié)合了 Faust (一種用于實時音頻 DSP 的領域特定語言)和 AMD Vitis? HLS,使其為音頻 DSP 用戶提供非常高級的音頻合成工具。
Emeraude 采用基于 AMD Zynq? 的FPGA 板卡、低時延音頻編解碼器和 Syfala 編譯器,在眾多簡單的 DSP 程序上實現(xiàn)了 11μs 的低時延。這項新技術適用于聲音合成和主動聲學控制。
實時音頻數(shù)字信號處理(DSP)已經(jīng)在廣泛的計算機架構上實現(xiàn):采用馮?諾依曼架構的 CPU、多核 CPU、GPU、專用電路、FPGA 等。然而,實現(xiàn)超低時延(即小于 1ms)的唯一方法是使用專用電路,如 ASIC 或 FPGA。
盡管如此,對于 DSP 程序員而言,使用 FPGA 幾乎是不可能的事情,因為他們沒有掌握硬件設計技能。
因此,該項目的主要挑戰(zhàn)在于設計出一款工具,允許音頻 DSP 程序員以極低時延(即小于 100μs)在 FPGA 上實現(xiàn)任意音頻 DSP 算法。
解決方案
采用的解決方案是將音頻 DSP 語言編譯器(即 Faust)的輸出與 HLS 工具 Vitis HLS連接起來。Faust 編譯器不僅可處理軟硬件分區(qū),而且還可隔離將在 FPGA 上實施的內(nèi)核 DSP 算法,如圖 1 所示。
圖 1:從 Faust 程序到 FPGA 的 Syfala 編譯流程
Vitis HLS 用于實現(xiàn)該內(nèi)核 DSP 的硬件,允許訪問外部 DDR 內(nèi)存以及使用 ARM Zynq 處理系統(tǒng)驅(qū)動程序的硬件控制器。
圖 2:DSP 硬件控制在 Digilent Zybo 板上實現(xiàn)
INSA-LYON 的研究團隊主管 Tanguy Risset 表示:“Vitis HLS 允許我們直接重復使用 Faust 編譯器生成的 C++ 代碼,因此從 Faust 高級規(guī)范直至 FPGA 比特流都無需經(jīng)歷手動設計流程。此外,Vitis HLS 與 AMD 的設計流程能夠很好地集成在一起,方便我們進行硬件/軟件的協(xié)同設計?!?/span>
設計成效
最終成效就是獲得一個新的編譯流程,可將任意音頻 DSP 程序自動編譯到基于 AMD Zynq 7000 的 FPGA 板卡(如 Digilent Zybo 或 Genesys)上。這樣一來,從模擬輸入到模擬輸出,所實現(xiàn)的程序的時延可低至 11μs。如此短的時延是前所未有的。該編譯器是開源的,目前用于實現(xiàn)主動聲學控制算法和 3D 音頻編解碼流程。
Risset 補充道:“Vitis HLS 使我們能夠精確控制 IP 的時延。特別是 Vitis HLS 能夠生成一個有一個樣本延遲時延的 IP。這對于實現(xiàn)我們在模擬與模擬之間實現(xiàn)的時延極為重要?!?/span>
Risset 表示,Vitis HLS IP 的調(diào)度視圖有助于我們了解 Vitis HLS 是如何引導并行化,以及內(nèi)存訪問是如何對 IP 時延產(chǎn)生影響的。他補充道:“這促使我們在 Faust 生成的 C++ 代碼中對內(nèi)存訪問進行優(yōu)化,這是實現(xiàn)低時延的必要步驟。”