




























摘 要:針對高精度位移傳感器對高速位移測量算法的運行速度、可移植性及降低研發成本的需求,提出一種基于高層次綜合(high level synthesis, HLS)技術的高精度測量算法的硬件加速設計方法。使用HLS技術實現C++語言到Verilog語言的綜合,針對高精度位移測量算法設計策略,利用HLS技術中的流水化和數組重構等優化技術進行硬件加速,并將其封裝為知識產權(intellectual property, IP)核,提高算法的可移植性。以Xilinx公司的Kintex 7系列現場可編程門陣列(field programmable gate array, FPGA)芯片XC7K325TFFG676為載體的測量系統實驗結果表明,整個算法耗時91.8 μs,相比數字信號處理(digital signal processor, DSP)單元將運行時間縮短了308.2 μs,測量精度達到44.44 nm,穩定性為49.20 nm,線性度為0.503‰。
關鍵詞: 高層次綜合技術; 位移檢測; 現場可編程門陣列; 硬件加速
中圖分類號: TP 33
文獻標志碼: ADOI:10.12305/j.issn.1001 506X.2025.02.01
High precision displacement measurement algorithm based on
HLS for hardware acceleration design
CHEN Haoran1,2, WANG Tianhao1,2, LU Meina2,*, SONG Maoxin2, LUO Huan2,
WU Xiaoyu2, LUO Donggen2, QIU Zhenwei2
(1. Science Island Branch, Graduate School of University of Science and Technology of China, Hefei 230026, China;
2. Hefei Institutes of Physical Science, Chinese Academy of Sciences, Hefei 230031, China)
Abstract:To address the requirements of high precision displacement sensors for high speed displacement measurement algorithms for operating speed, protability and lower researching and developing cost, a hardware acceleration design method for high precision measurement algorithms based on high level synthesis (HLS) technology is proposed. By using HLS, the C++code is synthesized into Verilog. The design strategy for high precision displacement measurement algorithms employs optimization techniques such as pipelining and array partitioning in HLS to achieve hardware acceleration and the design is packaged as an intellectual property (IP) core to enhance portability of the proposed algorithm. The measurement system is implemented on a Xilinx Kintex 7 field programmable gate array (FPGA) XC7K325TFFG676 chip as a carrier, and experimental results demonstrate that the entire operating time of the proposed algorithm is 91.8 μs, which is 308.2 μs shorter than the implementation time of a digital signal processor (DSP), with the measurement accuracy of 44.44 nm, stability of 49.20 nm, and linearity of 0.503‰.
Keywords:high level synthesis (HLS) technology; displacement measurement; field programmable gate array (FPGA); hardware acceleration
0 引 言
近年來,高精度位移傳感器已成為推動工業智能化和自動化發展的關鍵工具,其應用范圍涵蓋了工程建筑、精密數控、航天航空、集成電路制造等諸多領域[1-4]。在工程建筑領域[1],通過對建筑結構進行高精度位移測量,可以及時檢測出超限形變,從而進行快速的安全評估并給出準確的解決方案,以保證工程設施的安全性和穩定性,減少生命財產的損失。在精密數控領域[1-3],液壓機械臂由于非線性動力以及液壓驅動特有的時變不確定性,需要更高精度的軌跡跟蹤控制,以確保產品能夠被準確裝配到目標孔上,避免撞擊事故的發生。同時,高精度位移測量技術可用于檢測機床的誤差和偏差,并對導軌的磨損和松動進行補償校正,從而提高機床加工的精度和穩定性。
目前,高精度位移測量技術廣泛使用激光三角測量法,該方法通過分析傳感器捕獲的光斑位置來計算物體的精確位置。盡管激光三角測量法在高精度位移測量中應用效果顯著,但在處理高速動態對象時,其實時性與精度受到圖像處理技術限制。傳統的圖像處理技術利用中央處理器(central processing unit, CPU)和圖形處理器(graphics processing unit, GPU)[5-7]進行訓練和推理,達到硬件加速的效果。文獻[8]使用深度學習卷積神經網絡進行訓練,提高目標監測的準確性。使用無人機通過串口通信的方式采集圖像,利用局域網的相關特性,實現高性能的異步通訊。使用CPU或GPU對算法進行軟件實現具有較高的可編程性和靈活性,但是對于規模較大的實驗,例如高能物理(high energy physics, HEP)實驗[9],傳統CPU方法的計算成本非常高,采用多核CPU和服務集群來提升網絡處理性能,不僅受限于“功耗墻”,還會增加主機間通訊難度,運營成本非常高[10-11]。因此,盡管CPU在數據處理上表現出相當好的性能,但是其實時性在與外部硬件集成時很難實現,需要消耗大量的電力并且需要服務器等基礎設施,不適用于流水化工業生產。
隨著芯片運算能力的不斷提高,通過現場可編程門陣列(field programmable gate array, FPGA)實現算法的硬件加速成為解決上述問題的理想選擇。一方面,FPGA擁有天然的并行性,內置的數千個“內核”[12]可以直接并行執行相同的操作,從而有效減少資源的重復使用,降低不必要的延遲。另一方面,FPGA在功能配置時就能提供確定的時延,與依賴復雜指令集的CPU相比,FPGA通過定制數據路徑實現了無需處理指令開銷的高級并行流水線。如果將數據傳輸時間考慮在內,FPGA的性能比單個CPU增加了1.4倍;考慮到能源消耗,單個FPGA比雙CPU增加3.4倍以上[13]。因此,并行化與低開銷的數據傳輸顯著提升整個系統的硬件加速能力。為達到高速、高精度位移測量的目的,使用基于FPGA的實時圖像處理系統是非常理想的解決方案。文獻[14]提出基于FPGA和數字信號處理器(digital signal processor, DSP)搭建異構平臺圖像處理系統,能同時發揮FPGA強大的并行處理能力和DSP卓越的運算能力,但是異構平臺結構復雜,數據傳輸消耗額外資源[15-17]。文獻[18]提出以FPGA為載體,結合可編程片上系統(system on a programmable chip, SOPC)和軟硬件協同設計方案,將算法移植到FPGA中以實現加速處理。這種方案具有實時性好、靈活性高的特點[19]。但是隨著對高效率和實時性的更高追求,在處理大規模、高速的多路圖像數據時,探索新的技術解決方案已成為必要。
在這一背景下,高層次綜合(high level synthesis, HLS)技術[20]的引入為解決上述問題提供了新的視角。在深度神經網絡(deep neural networks, DNN)中,需要頻繁對經過訓練的網絡模型參數進行存儲與訪問,由此產生大量的計算和內存需求。文獻[21]提出靈活卷積神經網絡(flexible convolutional neural network, Flex CNN)架構,使用HLS技術進行動態平鋪和數據布局優化等操作,在Openpose V2網絡上實現了2.3倍的加速,滿足每秒幀數(frames per second, FPS)為23.8的實時處理要求。在視頻轉碼中,需要設計復雜的算法來確定視頻吞吐率和資源使用率,文獻[22]為研究復雜應用的設計與優化,提出使用HLS技術進行完整H.264解碼器的案例研究。通過優化,在640×480分辨率下實現了34 FPS的吞吐量。在圖形處理中,由于計算較低的內存比例和不規則的數據訪問模式,圖形處理通常受內存限制。文獻[23]提出一種在HLS技術中設計的圖線性代數疊加層,可以在配備高帶寬內存(high bandwidth memory, HBM)的FPGA上實現圖處理工作負載的高效加速。
通過HLS技術,可以將復雜的圖像處理算法快速轉化為高效的硬件邏輯,并部署在FPGA上,從而顯著提升數據處理的速度和效率。然而,HLS技術在硬件綜合過程中仍面臨影響系統性能的問題,分別為編譯問題、并行問題、訪存問題、易用性問題和可移植性問題。針對這些問題,本文自頂向下分析算法,通過循環優化、數組重構、代碼優化等技術,提高硬件綜合效果,減少數據傳輸延遲。將加速后的算法封裝為知識產權(intellectual property, IP)核,提高算法的復用性和可移植性。
基于以上分析,本文采用FPGA作為主控制器,搭建高精度位移測量系統。在完成圖像采集后,在FPGA內部通過模板匹配、基于灰度質心算法等步驟,實現對多光斑峰值的亞像素定位。通過HLS技術,針對上述流程進行硬件加速設計,大幅度降低算法時延和資源消耗,以滿足更為嚴苛的工業應用需求。
1 系統原理及總體設計
1.1 系統原理
高精度位移測量系統原理基于三角測量法[24-25],其結構如圖1所示。首先,光源發出的入射光經聚光鏡后,出射成為平行光束。平行光束經成像系統1和轉折反射鏡斜入射在硅片上,形成如圖2所示的光斑標記。標記通過硅片以一定角度反射,被成像系統2放大成像在電荷耦合器件(charge coupled device, CCD)上。圖3為位移測量光路原理圖。硅片高度的偏移與CCD標記的偏移有如下的幾何關系:
y=Δhcos θsin2θ=2Δhsin θ(1)
式中:y為CCD上偏移量;Δh為硅片高度偏移量;θ為入射光與硅片的夾角。根據式(1)可知,硅片高度的偏移Δh和CCD上標記的偏移y有幾何關系,當硅片的高度發生偏移時,標記在CCD上的偏移均會產生相應的位移。通過高精度位移算法處理像元中心的偏移可以得到硅片的位移量。
1.2 算法實現
高精度位移測量算法的核心是計算CCD探測器上成像光斑的亞像元位置。常見的光斑定位算法有加權插值法、擬合法、質心法、峰值法等[26-28]。為提升算法的運行效率,本文首先使用模板匹配法對光斑的5個狹縫進行粗定位,再根據粗定位結果和光斑信號的相對位置關系,選取對應波形寬度范圍的計算窗口,使用基于灰度的加權質心定位算法進行細定位。結合粗定位和細定位結果,可以得到硅片的位移量。
1.2.1 模板匹配粗定位算法
光斑標記在CCD上形成的包絡曲線如圖4所示,根據兩側波峰與中間峰的相對位置設定閾值權重,從左向右逐像元移動匹配模板的起始位置:
M=∑ni=1wiri(2)
式中:M是匹配度;wi是第i個位置的權重;ri是第i個位置的響應值;n是位置的總數。
經式(2)匹配度公式可以得到包絡曲線不同位置像元的匹配度,選取匹配度最大的像元坐標作為粗定位的結果。
基于灰度質心法的原理是通過計算灰度圖片中元素的坐標和對應灰度值的乘積之和,以及灰度值的總和,從而確定物體的質心坐標。然而,在實際測量中,光斑存在散斑并包含CCD噪聲[29-31],直接使用質心法會存在一定的計算誤差:
Xc=∑Si=1xif4(xi)∑Si=1f4(xi)(3)
式中:Xc是細定位結果;xi表示圖像中每個像素點的橫縱坐標;S是窗口內的像元個數;f(xi)是對應于像素點的灰度響應值。
本文使用的加權質心法是質心法的進階算法,這種方式更多地受圖像中心信息的影響,從而提高算法的抗干擾能力。如圖4所示,根據粗定位的結果和光斑信號的相對位置關系,選取對應波形寬度范圍的計算窗口,通過如式(3)所示的加權質心定位公式得到細定位結果。
1.3 算法優化
本算法基于CCD三角測量法,并在質心細定位方面進行了優化。
0.2(fmax-fmin)≤f≤0.8(fmax-fmin)(4)
式中:fmax是窗口內最大響應值;fmin表示窗口內最小響應值;f是計算的窗口內響應值。
在原始算法的實驗過程中,首先根據精測窗口范圍內響應值的最大值fmax和最小值fmin確定數據響應值范圍。具體而言,僅考慮這一范圍內的響應而進行質心定位計算,如式(4)所示。然后,根據篩選后的數據響應值選擇對應的像元序號并進行質心法的計算。通過這種方法計算得到的重復精度為10 μm,遠超實際工業測量需求,導致測量系統設計復雜,成本增加。
鑒于此,本文進一步優化算法,對窗口范圍內的響應值采用改進的基于灰度加權質心法與線性插值[32]相結合的定位方法,對窗口范圍內的S+1個像元進行m倍的線性插值,最終窗口內實際用于計算的像元數據個數為S×m+1,對插值后的窗口內數據進行基于灰度的加權質心定位:
Xc=∑Sm+1i=1xif4(xi)∑Sm+1i=1f4(xi)(5)
式中:Xc是細定位結果;xi表示圖像中每個像素點的橫、縱坐標;S是窗口內的像元個數;f(xi)是對應于像素點的灰度響應值;m表示線性插值倍數。
質心定位結果如式(5)所示,其中權重定義為fn(xi),通過調整權重的指數n,對算法性能進行了多次優化。經過一系列仿真軟件實驗測試,綜合考慮算法運行時間、重復精度以及FPGA資源的使用率,最終確定將n設為4。這一調整使得算法能夠在硬件上更高效地實現,優化了其重復精度和穩定性。
1.4 硬件電路設計
高精度位移測量系統開發平臺采用核心版加擴展版的模式,設計的硬件平臺如圖5所示。為提升系統的可擴展性,其內部包含6套獨立的線陣CCD探頭。為提高數據傳輸效率,主控芯片選用Kintex 7系列作為主控制器。線陣CCD通過高速串行總線[33]向FPGA發送圖像數據,并將數據存儲到雙口隨機存儲器中。FPGA內部對雙口存儲器中的圖像數據峰值進行基于灰度的加權質心定位計算,計算結果通過數模轉換芯片[34-35]轉換為模擬量并輸入上位機,6套線陣CCD、光源設置、相機設置、算法參數統一接受串口[36]通信處理解析上位機的控制指令。
2 硬件加速設計
傳統的硬件加速優化方式,例如FPGA+DSP和軟硬件協同等方式設計復雜、耗時長、調試難度大,不利于進行快速開發。通過HLS技術創建新方案,使用優化指令(如流水化和數組重構等)對算法進行硬件加速,從而減少設計復雜度并實現快速迭代開發,滿足期望的面積和性能目標。
在使用HLS技術對算法進行優化的過程中,需要綜合考慮面積和時延兩個方面的指標。面積是算法硬件資源[37]的使用量,包括塊狀隨機訪問存儲器(block" random access memory, BRAM)、DSP、觸發器(flip flop, FF)和查找表(look up table, LUT)。時延包括最小和最大時延值,表示執行循環所需的時鐘周期數。在綜合報告中,Vivado HLS工具會提供資源的消耗和時延的理論值。通常情況下,面積與時延成反比關系,所以需要在兩者之間進行權衡,找到最佳方案。本文提供循環優化、數組優化和代碼優化等策略,在提升算法性能的同時實現了硬件資源的高效利用。
2.1 循環優化
調焦算法結構由模板粗匹配和細匹配組成,自頂向下進行分析。未經優化前,調焦算法的計算最大時延為21 308個時鐘周期,其中模板粗匹配的最大時延和最小時延均為2 084個時鐘周期,占據調焦算法總時延的9.8%,并且粗匹配模塊內部結構簡潔且易于分析,現首先分析粗匹配模塊。
時延主要來源于兩個方面,一是分配數組空間,二是循環結構的執行。在粗匹配函數的計算中,初始化一個長度為2 048的無符號整型數組,需要執行2 048次運算,其直接關聯到數據存儲和訪問模式。在FPGA等硬件上進行實現時,數組常被映射到硬件資源上,如寄存器或隨機訪問存儲器(random access memory, RAM)。對寄存器和RAM進行合理的數組空間的分配,對于削減時延和提高資源的使用效率有顯著的影響。針對這一問題,首先對數組初始化做靜態關鍵字約束,將其初始化為具體的值。靜態數組的值在編譯時就已確定,所以在FPGA進行綜合時,Vivado HLS工具可以直接將靜態數據燒錄進FPGA的比特流中,硬件可以直接訪問這些數據,無需通過外部接口進行數據傳輸,從而提高算法的處理速度。
表1和表2分別給出了使用靜態關鍵字優化前后算法的性能和資源利用率比較。根據表1和表2數據可知,優化前后最小時延和間隔從8 485個時鐘周期降低到4 118個時鐘周期,降幅達到51.4%。最大時延和間隔也從32 294個時鐘周期降低到27 927個時鐘周期,降幅為13.5%。從資源利用情況來看,BRAM的使用從12個單位降低到10個單位,減少了16.7%。FF的使用量從9 756減少到8 927,降低了8.5%。LUT的使用量從16 711降到16 233,減少了2.9%。DSP的使用量則保持不變。通過對算法進行靜態關鍵字優化,不僅顯著提升算法的處理速度,降低時間延遲,還可有效地提高硬件資源的使用效率,達到性能與資源雙重優化的目標。
其次,對循環內部的并行性進行探索并分析。粗匹配的核心是進行模板匹配,通過與模板數據進行乘法和加法運算,得到每個位置上的匹配度,選取匹配度最高的位置為中心位置。如圖6所示,算法輸入被實現為雙端口RAM,通過HLS技術優化硬件電路,將一次循環分成多個周期執行,將每次的乘加操作結果放入寄存器中,減少多個運算器的串聯操作。雙端口RAM在一個周期內只能讀取2個數據,所以單次循環至少需要5個時鐘周期。相比軟件的加法器串聯執行,此方法減少了算法的運行時延,實現了硬件電路的加速優化。
在硬件實現中,循環結構可能導致流水線阻塞和數據依賴,從而增加總體時延。如圖7所示,每次循環迭代需要進行數據讀取、數據計算、數據寫入的操作,迭代間隔(initia tion interval, II)為3個時鐘周期。由于沒有進行流水化操作,每次循環迭代都需要等待前一次寫入操作的完成。這樣3次循環需要9個時鐘周期。使用流水化指令進行優化,在上一個循環進行計算操作時既可以進行第2個循環的數據讀入,II為1個時鐘周期。以此類推,3次循環僅需要5個時鐘周期,大大降低了算法時延,提高了吞吐量。
同理,對于細定位函數的優化也同樣做流水化處理。細定位算法的核心為加權質心法,通過計算采樣點的信號強度與其位置的加權平均,計算得出亞像元坐標。該方法的基本原理是將每個采樣點的信號強度作為權重,將位置作為加權因子,進而通過計算得到質心。其代碼實現需要進行累加操作,即需要對某一寄存器進行讀取和寫入,此操作會導致數據依賴的問題。數據依賴[38]分為3種類型:讀后寫(read after write, RAW)、寫后讀(write after read, WAR)和寫后寫(write after write, WAW),對這些依賴關系的識別和處理是實現有效流水線的關鍵。本算法中的累加操作即RAW問題,在第1次寫入完成之前無法進行第2次讀取,每次循環迭代中的運算都指向不同的地址,但是每次迭代對寄存器的累加操作都只能同時針對1個地址,所以無法使用流水化展開循環。
表3和表4分別給出了循環流水優化前后算法性能和資源利用率比較。根據表3和表4數據可知,優化后,最小時延和間隔從4 118個時鐘周期降低到872個時鐘周期,減少了82.8%;最大時延和間隔從27 927個時鐘周期降低到5 540個時鐘周期,減少了80.2%。資源的使用率也相應增加,DSP數量從27增加到49,增加了81.5%;FF的使用量從8 927增加到13 761,增加了54.3%;LUT從16 233增加到21 273,增加了31.1%。這表明循環流水優化在顯著提升算法執行速度的同時,也出現了對硬件資源的更高需求。這種優化策略在設計時需要權衡性能提升與資源消耗雙重目標,尤其是在資源受限的環境中,需要進行更細致的資源管理和優化策略調整。
2.2 數組優化
在使用Vivado HLS工具進行硬件綜合時,數組被實現為雙端口RAM,由于RAM端口大小的約束,讀寫操作在1個時鐘周期內至多完成2次。由于優化操作需要展開循環,在一個時鐘周期內需要對內存進行多次讀/寫,所以數組資源受到限制。讀寫端口數量不夠,無法使II等于1個時鐘周期,不能達到理想要求。本文使用數組降維的方式解決內存瓶頸,即采用塊分割、循環分割以及完全分割等方式分割數組。分割方式如圖8所示,分別有0~N-1個數組塊。塊分割是將數組按照分割的塊數順序放入不同的塊RAM中,一個塊RAM放滿,才會放入下一個塊。循環分割是將原數組數據以交叉分割的方式存儲在若干個塊RAM中。完全分割是將原數組數據存放在寄存器中,能同時獲取多個數據,比較適合較小的數組。
表5和表6分別給出了數組優化前后算法的性能和資源利用率比較。根據數組優化前后的數據可知,算法性能在延遲和間隔方面實現了微小的改進,最小和最大時延分別降低了1.6%和0.4%,而在邏輯資源方面有大幅增加。這表明數組優化策略在提升算法時延能力的同時,極大地依賴于更復雜的邏輯資源。
在上文中提到的粗匹配中,模板匹配算法需要5個時鐘周期才能完成一次循環的操作,從中可以看出,一個時鐘周期只能從RAM中讀取兩個數據,若需要將其進行流水化操作,需要對輸入的數組進行數組重構指令操作,以提高數據訪問并行度和效率。使用HLS技術中的重構指令將圖像數據分別存儲到2 048個寄存器中,每個時鐘周期能同時獲取2 048個數據進行運算,達到II為1個時鐘周期的目的,從而綜合算法時延相較上一方案最多降低20個時鐘周期,但同時會導致LUT和FF的數量增加193%。由于時延的減少是通過增加資源面積來換取的,兩者為負相關的關系,所以在時延和面積之間存在一個平衡點,這個平衡點即為最佳優化點。
2.3 代碼優化
2.3.1 雙緩沖策略
為了解決上文中提到的累加器無法進行流水化操作、循環迭代次數無法在編譯時確定的問題,本文采用乒乓緩沖區策略來提高數據處理的并行度。該策略設計兩個獨立的緩沖區,交替用于數據的讀取和處理。當一個緩沖區執行數據運算時,另一個緩沖區則同時加載數據。這種交替使用緩沖區的方法不僅有效地解決了因數據依賴性而導致的處理延遲,還極大地提高了算法的資源使用率。在數據處理過程中,一旦一個緩沖區完成了數據的處理,就可以立即接收新的數據,而不需要等待整個數據處理周期的完成。通過并行化數據的讀取和處理操作,使得數據流在硬件資源中的持續流動成為可能,從而實現更高效的數據重用和加速整體的處理速度。
2.3.2 移位操作的應用
移位操作是一種在二進制數中左移位或右移位的操作,可以用來進行乘法和除法的近似計算。在硬件實現中,移位操作比乘法操作速度更快,因為其可以通過簡單的位移和加法運算來完成,而不需要復雜的邏輯門陣列。同時,移位操作只需單周期即可完成,可以顯著降低對LUT和其他邏輯資源的消耗。本文將模板匹配算法中的乘法換為移位操作,通過將輸入信號數組中的值左移特定的位數,并將其加入到臨時變量中,可以模擬乘法操作。這種方法不僅提高了執行效率,還節省了硬件資源,從而實現硬件加速。
表7和表8分別給出了代碼優化前后算法的性能和資源利用率比較。通過對表7和表8的分析可知,雖然代碼優化為算法的時延和間隔僅帶來了微小的提升,但是在資源利用率方面卻帶來了顯著的優化,其中FF從46 909降至27 552,減少了41.3%,LUT從180 172降至117 682,減少了34.7%。考慮到高精度位移測量系統對數據量和實時性的高要求,在優化過程中以滿足性能要求為重中之重,在可接受的范圍內允許適當增加資源利用率。因此,采用HLS技術設計的模塊符合要求。
2.4 小結
本文通過Vivado HLS工具,將高級語言編譯為硬件代碼,有效解決了編譯問題、并行問題、訪存問題以及易用性和可移植性問題。
2.4.1 編譯問題
本文通過設計空間探索算法和剪枝技術解決編譯問題,利用Vivado HLS工具將C++語言編譯轉化為硬件語言,實現代碼的自動重構[39],并在不同的編譯指導組合下探索資源和性能的平衡。設計空間探索算法,自頂向下出發,分析嵌套循環結構,設定不同的優化組合,在進行硬件綜合后通過編譯生成的報告不斷評估資源消耗與時延,找到最佳的時延和資源的平衡方案。
2.4.2 并行問題
由于FPGA具有天然的并行性,因此在整體資源有限的情況下,可通過增加多個并行模塊來提高對計算資源的利用率。本文使用HLS技術中的流水化指令對循環進行流水化,將每個循環迭代分解為多級流水線,以提高并行度。循環次數指令對未知循環次數確定循環上限。此外,通過數據流指令允許函數級別的流水化操作,使得多任務能夠并行執行。通過分析頂層函數及其子函數,確保整個系統具備高度的并行處理能力,實現任務級并行。
2.4.3 訪存問題
為提升FPGA訪存資源使用率,本文采用一維和多維數據分割策略,使得數據能夠分布在盡可能多的內存塊中,以空間為代價降低時間消耗。常見的數據分割方法包括塊分割、循環分割和安全分割。本文還引入了雙緩沖策略和移位操作,通過優化片上內存,提高數據處理的并行度,實現內存的合理分配。此外,流水化指令對片上內存進行的流水化操作有效提高了訪存效率,并在不同的優化組合下保持訪存性能的穩定性。
2.4.4 易用性和可移植性
易用性和可移植性問題通過模塊化和可復用設計得到解決。Vivado HLS工具的IP核可被集成到不同項目的硬件代碼中,并借助邏輯分析器或虛擬輸入輸出組件進行硬件內部測試。同時,通過HLS技術將高級語言(C/C++)編譯為FPGA硬件描述語言,降低了硬件設計的復雜度,使得不熟悉Verilog等硬件語言的工程師也能進行FPGA設計,同時使硬件IP核具備了快速適應不同項目需求的可移植性和靈活性。
3 測試及驗證
3.1 時延測試
3.1.1 時延測試方法
本研究利用Xilinx Kintex 7 FPGA作為主控模塊,驗證算法在實際硬件上的性能。整個開發和測試均在Vivado 2018.3和Vivado HLS 2018.3平臺上進行,系統的工作頻率設定為100 Hz。如圖9所示,測試平臺包括光源、光纖、光學探測模塊和主控模塊等組件。在實驗中,光源發射的光束經光纖傳輸至光學探測模塊。在光學探測模塊內,硅片位置的變化導致其反射的調焦標記在探測器上產生位移,該位移通過主控模塊進行分析,從而計算出硅片的實際位移量,計算公式如下:
Time=apdone-apstart(6)
式中:Time是算法運行時間;apdone是算法結束時間;apstart是算法開始時間。
為了確保數據的準確性,使用示波器監測和記錄算法處理的開始與結束信號,進一步通過式(6)計算處理時間,確保實驗數據的可靠性和實驗的可重復性。
FPGA通過線陣CCD捕獲大小為2 048×16比特的圖片數據,并使用HLS技術進行圖像數據處理和硬件加速設計。經過處理,系統計算得到的硅片位移量為24.25 nm,與仿真軟件前期驗證的計算結果一致,證明算法輸出結果正確。將Vivado HLS工具中驗證的算法封裝為IP核,并在Vivado中進行實例化。通過包括仿真、綜合、布局布線在內的一系列步驟,最終生成比特流并燒錄到板卡中,完成了板級驗證。在實驗中,使用捕獲算法的開始和結束信號,通過式(6)計算得到算法的運行時間Time。
3.1.2 時延測試結果
示波器測量結果顯示,基于HLS技術的高精度位移測量系統處理一幅圖像所需的時間約為91.8 μs。在未進行優化之前,該高精度位移算法的處理時延為424.67 μs。優化后,處理時延顯著減少至91.8 μs,降低了332.87 μs。使用Vivado HLS工具進行硬件綜合后,軟件提供了算法各函數模塊的運行時間在優化前后的詳細對比,其中粗定位函數的時延從2 048個時鐘周期大幅降低至僅19個時鐘周期,降幅達到了99.07%,而細定位函數的時延也從20 086個時鐘周期減少至3 717個時鐘周期,降幅為81.5%。這種優化顯著提高了各函數的執行速度,并極大地增強了系統的響應能力和處理效率。對實時圖像處理系統而言,這樣的優化能夠在更短的時間內完成相同的任務,從而降低了系統的整體能耗,有效改善了系統的性能。
3.2 重復精度和穩定性測試
3.2.1 重復精度和穩定性測試方法
良好的重復精度和穩定性是進行高精度位移測量的基本要求。為此,本研究采用高精度位移測量算法對靜止硅片進行連續的測量實驗,實驗分別持續30 s和30 min,以評估系統在短期和長期運行條件下的性能。在相同的環境條件和設備設施下,短時測量(30 s)主要用于評估重復精度,通過計算測量數據的3倍標準差來定量表達。長時測量(30 min)用于評估系統的穩定性,同樣采取3倍標準差作為穩定性的指標。所有測量數據均由高精度位移測量系統自動記錄并直接輸出位置坐標。在數據收集完成后,利用仿真軟件對結果進行分析,以確保分析的準確性和可靠性。
3.2.2 重復精度和穩定性測試結果
基于上述測量數據,繪制兩組不同時間段下硅片位移波動的曲線圖,如圖10所示。從圖10可以看出,硅片位移的動態變化,為評估系統的測量性能提供了直接的視覺效應。
根據表9的統計結果,可以看出系統在不同時間尺度上的重復精度和穩定性。在短時測量中,系統的3倍標準差為44.44 nm,遠低于100 nm,表明系統具有極高的測量精度。對于長時測量,3倍標準差為49.20 nm,同樣遠低于500 nm的穩定性閾值。統計結果不僅驗證了位移測量系統的高精度和穩定性,而且通過連續和長期測量展示了系統對環境或操作變化的健壯性。
3.3 線性度測試
本實驗采用線性度測試評估高精度位移測量系統的性能。線性度指測量系統在測量范圍內,輸出量與輸入量之間呈線性關系的程度,通常用來衡量系統的輸出與理想線性關系之間的偏離程度,計算公式如下:
y^=∑ni=1(xi-x-)(yi-y-)∑ni=1(xi-x-)2x+y--∑ni=1(xi-x-)(yi-y-)∑ni=1(xi-x-)2x-(7)
式中:y^是預測值;xi是第i個觀測值的自變量;yi是第i個觀測值的因變量;x-和y-分別為所有xi和yi的平均值。
在測試中,為確保測量系統的準確性,上位機控制位移臺以±140 nm的量程進行等間距移動,總共移動10步,每步停留1 s,以確保測量的準確性。在此過程中,共采集11 000張圖片,通過高精度位移測量系統實時計算并記錄硅片的位置數據。經FPGA處理后,將位移結果通過串口傳至上位機,進行進一步的數據分析。硅片位移波動的結果如圖11所示。對于數據分析,本實驗采用式(7)擬合出預測的位移曲線y^,并將擬合曲線與實測曲線進行比較,如圖12所示。
高精度位移算法的計算公式如下:
r=MAX{|y^-y|}L×100%(8)
式中:y是第i個觀測值的實際值;L是量程大小;r是線性度。
利用式(8)計算出高精度位移算法的線性度為0.503‰,遠低于0.1%的允許偏差,證明了系統在測試范圍內具有良好的線性度。這一結果不僅證實了系統的高精確度,也顯示了其在實際應用中的可靠性。
3.4 不同架構時間性能對比
在高精度位移測量算法的實際應用中,FPGA利用HLS技術定制數據通路,從而在硬件層面上實現了復雜的控制和數據處理,這種定制化的數據通路能夠顯著減少FPGA的算法響應時間,在處理效率上具有顯著優勢。相比之下,盡管DSP在執行標準的線性代數運算和信號過濾任務時擁有強大的計算能力,但其高性能主要依賴多核的并行化處理。然而,多核處理的需求增加了核間通訊的處理時延,特別是在處理多幅圖像的位移檢測任務時,這在極大程度上限制了DSP的性能。
此外,DSP雖然具有成熟的開發環境和測試工具,便于快速部署算法,但是在硬件層面定制化能力有限。同時,DSP的研發周期較長,研發成本高,需要有經驗的工程師進行測試以維護異構平臺的穩定性。相比之下,基于HLS技術的開發不僅能夠充分利用FPGA的并行性,提高圖像處理的性能,而且可通過不同約束方案的協同仿真來優化時延,提供了高效的開發流程。在工程中可進行IP核的多次例化,大大提高了開發效率,保證了算法的可移植性和靈活性。
為了進行不同系統間性能的比較,本實驗在具有1 GHz主頻的DSP中實現了與FPGA相同參數位寬的高精度位移測量算法。該DSP在Code Composer Studio開發環境下運行。FPGA和DSP在時間性能上的對比如表10所示,盡管FPGA的工作頻率較低,但其處理時間顯著優于DSP,僅需91.8 μs,而DSP的處理時間為400 μs,相比之下,FPGA的處理時延縮短了308.2 μs。
盡管DSP擁有顯著的計算能力和工作頻率,但面對需要迅速開發和高效算法實現的應用時,基于HLS的FPGA在硬件加速、開發效率提升、資源成本控制等方面提供了更優的解決方案。FPGA不僅能夠縮短項目研發周期,還能有效降低開發成本,優化整體性能。這一優勢使FPGA成為對性能和響應時間有嚴格要求的高精度位移測量應用的更佳選擇。
4 結 論
本文根據實際應用需求,使用FPGA作為主控制器,通過HLS技術的循環流水優化、數組重構、代碼優化等步驟,完成了高精度位移測量算法的硬件加速設計。通過實驗,對高精度位移測量算法運算時間進行驗證,實驗結果表明算法時延達到91.8 μs,與未進行優化相比,其處理時延降低了332.87 μs,與DSP技術相比,其實現效率提高了78.6%。硬件加速后,算法的重復精度為44.44 nm,穩定性為49.20 nm,線性度為0.503‰,線性度在偏差范圍內,驗證了系統良好的重復精度和穩定性。所提方法有效提升了數據處理效率,具有實時性高、設計難度低、靈活性強的特點,可以滿足實際應用需求。
參考文獻
[1]李清泉, 陳睿哲, 涂偉, 等. 基于慣性相機的大跨度橋梁線形形變實時測量方法[J]. 武漢大學學報, 2023, 48(11): 1834-1843.
LI Q Q, CHEN R Z, TU W, et al. Real time vision based deformation measurement of long span bridge with inertial sensors[J]. Geomatics and Information Science of Wuhan University, 2023, 48(11): 1834-1843.
[2]丁孺琦, 王振, 程敏, 等. 基于模型控制的液壓機械臂高精度軌跡跟蹤[J]. 機械工程學報, 2023, 59(14): 298-309.
DING R Q, WANG Z, CHENG M, et al. Model based control of the hydraulic manipulator for the high precision trajectory tracking[J]. Journal of Mechanical Engineering, 2023, 59(14): 298-309.
[3]GAO W, KIM S W, BOSSE H, et al. Measurement technologies for precision positioning[J]. CIRP Annals, 2015, 64(2): 773-796.
[4]楊宏興, 付海金, 胡鵬程, 等. 超精密高速激光干涉位移測量技術與儀器[J]. 激光與光電子學進展, 2022, 59(9): 305-319.
YANG H X, FU H J, HU P C, et al. Ultra precision and high speed laser interferometric displacement measurement technology and instrument[J]. Laser Optoelectron Progress, 2022, 59(9): 305-319.
[5]GEORGIS G, LENTARIS G, REISIS D. Acceleration techniques and evaluation on multi core CPU, GPU and FPGA for image processing and super resolution[J]. Journal of Real Time Image Processing, 2019, 16(4): 1207-1234.
[6]NAZ N, MALIK H A, KHURSHID A B, et al. Efficient processing of image processing applications on CPU/GPU[J]. Mathe matical Problems in Engineering, 2020, 2020(1): 4839876.
[7]譚鵬源, 薛長斌, 周莉. 基于嵌入式 CPU+GPU異構平臺的遙感圖像濾波加速[J]. 空間科學學報, 2024, 44(1): 95-102.
TAN P Y, XUE C B, ZHOU L. Acceleration of remote sensing image filtering based on embedded CPU+GPU heterogeneous platform[J]. Chinese Journal of Space Science, 2024, 44(1): 95-102.
[8]HUANG F, CHEN S Y, WANG Q, et al. Using deep learning in an embedded system for real time target detection based on images from an unmanned aerial vehicle: vehicle detection as a case study[J]. International Journal of Digital Earth, 2023, 16(1): 910-936.
[9]WOJENSKI A, ZBROSZCZYK H, KRUSZEWSKI M, et al. Hardware acceleration of complex HEP algorithms with HLS and FPGAs: methodology and preliminary implementation[J]. Computer Physics Communications, 2024, 295: 108997.
[10]趙鵬, 程光, 趙德宇. 基于 FPGA 的高性能可編程數據平面研究綜述[J]. 軟件學報, 2023, 34(11): 5330-5354.
ZHAO P, CHENG G, ZHAO D Y. Survey on FPGA based high performance programmable data plane[J]. Journal of Software, 2023, 34(11): 5330-5354.
[11]ASANO S, MARUYAMA T, YAMAGUCHI Y. Performance comparison of FPGA, GPU and CPU in image processing[C]∥Proc.of the IEEE International Conference on Field Progra mmable Logic and Applications, 2009: 126-131.
[12]李博杰. 基于可編程網卡的高性能數據中心系統[D]. 合肥: 中國科學技術大學, 2019.
LI B J. High performance data center systems with programmable network interface cards[D]. Hefei: University of Science and Technology of China, 2019.
[13]SRIDHARAN S, DURANTE P, FAERBER C, et al. Accele rating particle identification for high speed data filtering using OpenCL on FPGAs and other architectures[C]∥Proc.of the IEEE 26th International Conference on Field Programmable Logic and Applications, 2016.
[14]周全. 基于FPGA和DSP架構的實時高速圖像處理系統的硬件平臺設計[D]. 重慶: 重慶理工大學, 2016.
ZHOU Q. The hardware platform design of high speed real time image processing system based on DSP and FPGA[D]. Chongqing: Chongqing University of Technology, 2016.
[15]LI Y, ZHAO X D, CHENG T R. Heterogeneous computing platform based on CPU+FPGA and working modes[C]∥Proc.of the IEEE 12th International Conference on Computational Intelligence and Security, 2016: 669-672.
[16]YANG Z P, JI S X, CHEN X Z, et al. Challenges and opportunities to enable large scale compuating via heterogeneous chiplets[C]∥Proc.of the 29th Asia and South Pacific Design Automation Conference, 2024: 765-770.
[17]HAJIRASSOULIHA A, TABERNER A J, NASH M P, et al. Suitability of recent hardware accelerators (DSPs, FPGAs, and GPUs) for computer vision and image processing algorithms[J]. Signal Processing: Image Communication, 2018, 68: 101-119.
[18]趙子豪, 駱冬根, 路美娜, 等. 基于SOPC的檢焦圖像實時處理系統設計[J]. 電子測量技術, 2022, 45(9): 31-37.
ZHAO Z H, LUO D G, LU M N, et al. Design of real time processing system of focus detection image based on SOPC[J]. Electric Measurement Technology, 2024, 45(9): 31-37.
[19]SU S F, CHANG M W. Adaptive neural acceleration unit based on heterogeneous multicore hardware architecture FPGA and software defined hardware[J]. Journal of the Chinese Institute of Engineers, 2024, 47(3): 337-350.
[20]徐誠, 郭進陽, 李超, 等. 使用HLS開發FPGA異構加速系統: 問題、優化方法和機遇[J]. 計算機科學與探索, 2023, 17(8): 1729-1748.
XU C, GUO J Y, LI C, et al. Using HLS to develop FPGA hetero geneous acceleration system: problems, optimization methods and opportunities[J]. Journal of Frontiers of Computer Science amp; Technology, 2023, 17(8): 1729-1748.
[21]SOHRABIZADEH A, WANG J, CONG J. End to end optimization of deep learning applications[C]∥Proc.of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, 2020: 133-139.
[22]LIU X H, CHEN Y, NGUYEN T, et al. High level synthesis of complex applications: an H. 264 video decoder[C]∥Proc.of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, 2016: 224-233.
[23]HU Y W, DU Y X, USTUN E, et al. GraphLily: accelerating graph linear algebra on HBM equipped FPGAs[C]∥Proc.of the IEEE/ACM International Conference on Computer Aided Design, 2021.
[24]LIANG X R, ZENG J S, GUO X, et al. Optimization of laser spot center detection based on laser triangulation[C]∥Proc.of the 3rd International Conference on Optics and Image Processing, 2023.
[25]倪沛東. 基于激光三角法的目標位移測量方法及系統設計[D]. 太原: 中北大學, 2023.
NI P D. Target displacement measurement method and system design based onlaser triangulation[D]. Taiyuan: North University of China, 2023.
[26]ZHANG Q J, ZHAO Y H. Measurement method of laser spot center based on weight interpolation algorithm[J]. Laser amp; Infrared, 2016, 46(1): 81-84.
[27]XIAO M F, ZHANG Y M, LI H. High precision spot position ing algorithm based on four quadrant detector[C]∥Proc.of the Journal of Physics: Conference Series, 2020, 1633(1): 012122.
[28]ZHOU P, WANG X Q, HUANG Q Y, et al. Laser spot center detection based on improved circled fitting algorithm[C]∥Proc.of the 2nd IEEE Advanced Information Management, Communicates, Electronic and Automation Control Confe rence, 2018: 316-319.
[29]ZENG K, LI Y L, XIONG Y Z. A signal denoising system for CCD spectrometer based on FPGA[C]∥Proc.of the 4th International Conference on Signal Processing and Computer Science, 2023, 12970: 455-462.
[30]GAO R H, LIU H S, ZHAO Y, et al. High precision laser spot center positioning method for weak light conditions[J]. Applied Optics, 2020, 59(6): 1763-1768.
[31]ZHAO H L, WANG S Z, SHEN W, et al. Laser spot centering algorithm of double area shrinking iteration based on baseline method[J]. Applied Sciences, 2022, 12(21): 11302.
[32]XU P F, JIA Y J. SNR improvement based on piecewise linear interpolation[J]. Journal of Electrical Engineering, 2021, 72(5): 348-351.
[33]BAILEY D G. Design for embedded image processing on FPGAs[M]. New Jersey: Wiley, 2023.
[34]PENG X X, TANG Y, LI J F, et al. FPGA based CCD signal acquisition and transmission system design[J]. Scientific Reports, 2024, 14(1): 1855.
[35]BOYLE S, GUNDERSON A, ORLANDIC M. High level FPGA design of deep learning hyperspectral anomaly detection[C]∥Proc.of the IEEE Nordic Circuits and Systems Conference, 2023.
[36]SHAO Z Y. An FPGA based adaptive solution for synchronous configuration in UART communication[J]. Highlights in Science, Engineering and Technology, 2024, 81: 615-622.
[37]NOROUZI M, ILIAS Q, JANNESARI A, et al. Accelerating data dependence profiling with static hints[C]∥Proc.of the 25th International Conference on Parallel and Distributed Computing, 2019: 17-28.
[38]李朝帥. 面向多分支語句的自動重構方法研究[D]. 石家莊: 河北科技大學, 2024.
LI Z S. An automated refactoring approach for multi branch statement[D]. Shijiazhuang: Hebei University of Science and Technology, 2024.
作者簡介
陳昊然(2000—),女,碩士研究生,主要研究方向為圖像采集及數據處理。
王天昊(1999—),男,碩士研究生,主要研究方向為視、聽覺信息處理、模式識別。
路美娜(1986—),女,副研究員,碩士,主要研究方向為光電遙感。
宋茂新(1983—),男,研究員,博士,主要研究方向為光機設計。
羅 環(1994—),女,工程師,碩士,主要研究方向為嵌入式軟件開發。
吳曉宇(1998—),女,碩士研究生,主要研究方向為光機設計。
駱冬根(1979—),男,副研究員,博士,主要研究方向為光電檢測、偏振光學遙感。
裘楨煒(1982—),男,研究員,博士,主要研究方向為空間光學偏振遙感、大氣氣溶膠探測。