AIE Kernel有時需要由外部提供參數更新kernel行為,此時就要用到RTP(Run-Time Parameter)。AIE支持兩種類型的RTP,一種是異步(Asynchronous),通常由PS或其他AIE Kernel控制。“異步”意味著RTP可以隨時被更改。在每次Kernel被調用時,RTP都會被讀取,而不會進行任何同步處理。這種機制適合于參數不經常更新的場合,例如濾波器系數。另一種為同步RTP(Synchronous)。“同步”意味著只有當處理器將RTP傳遞給AIE Kernel后,該Kernel才能被觸發執行。無論是哪種類型,RTL都可以是標量(Scalar)或數組(Array)。我們先看一個同步RTP。系統框圖如下圖所示。圖中sine為AIE Kernel,其中trigger為RTP,此處為標量。s2mm為HLS Kernel,最終通過HLS在PL側實現。
在描述AIE Kernel sine時,phase_increment為輸入參數,這里的名字是形參名,本質上就是RTP,只是RTP在graph.h中會另起名字。
在描述graph時,將RTP定義為input_port,并起名字為trigger,如下圖第26行所示。同時確定RTP與AIE Kernel的連接關系,如下圖第33行所示。
在graph.cpp中,使用update更新RTP。如下圖所示,可以看到update的次數與run的次數是一致的。代碼第28行至第31行,依次將trigger值寫入ping/pong/ping/pong buffer。
對于異步RTP,需要在graph.h中指定其與AIE Kernel之間的關系為異步關系,如下圖代碼第33行所示,使用了async。
在graph.cpp中要使用wait()。這是和同步RTP的最大區別。在同步模式下,graph的run是受RTP的update控制的。在異步模式下,需要通過wait等待graph的run完成。異步模式下,當graph在執行時是無法保證RTP生效的。
原文標題:AIE(17)—更新RTP(1)
文章出處:【微信公眾號:TeacherGaoFPGAHub】歡迎添加關注!文章轉載請注明出處。
-
處理器
+關注
關注
68文章
19684瀏覽量
232681 -
濾波器
+關注
關注
162文章
7997瀏覽量
180363 -
RTP
+關注
關注
0文章
28瀏覽量
11994
原文標題:AIE(17)—更新RTP(1)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
示波器的兩種類型介紹
兩種類型的激活有什么不同嗎?
SMPS中有兩種類型的損耗
EMI可以大致分為“傳導發射”和“輻射發射”兩種類型的分類

評論