0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

使用RFSoC的多個 Tile 實現(xiàn)時延對齊方案解析

454398 ? 來源:XILINX技術社區(qū) ? 作者:XILINX技術社區(qū) ? 2020-11-04 14:43 ? 次閱讀

現(xiàn)代 RF 信號鏈對于跨多通道的數(shù)據(jù)轉(zhuǎn)換器性能具有極高的要求。換言之,對于賽靈思 RF Data Converter 而言,關鍵要求之一是在多個 ADC/DAC Tile、RFSoC 器件甚至開發(fā)板之間都必須保持同步。

了解賽靈思如何探索多塊同步 (Multi-Tile Synchronization) 問題解決之道,以支持實現(xiàn)波束成形、大規(guī)模 MIMO (Massive MIMO) 和相位陣列雷達。

迄今為止,我們已通過前文 https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/RF-Data-Co... 學習了有關 RF Data Converter 軟件驅(qū)動的知識,并已深入了解了支持您對任意開發(fā)板上的任意器件上的 RF-ADC 和 RF-DAC 進行調(diào)試的 RF Analyzer。

趁熱打鐵,讓我們來探討下對于使用 RFSoC 的諸多客戶都至關重要的一個話題,即跨單一器件或跨多個器件上的多個 Tile 實現(xiàn)時延對齊的要求。

我們將此要求稱為“多塊同步 (Multi-Tile Synchronization)”。

“多塊同步”是實現(xiàn)大規(guī)模 MIMO、波束成形和相位陣列雷達應用的關鍵。

例如,在波束成形中,目標不僅是全向廣播能量,而是使用天線陣列定向傳輸射頻信號。在此應用技巧中,將為每個天線元件單獨饋送要傳輸?shù)男盘?。隨后,將以建設性和破壞性方式添加每個信號副本的相位和波幅,使其將能量集中于窄波束或波瓣中。

由此可見,需要使用大量數(shù)據(jù)轉(zhuǎn)換器來構(gòu)建陣列,并且在天線陣列中的所有通道之間存在時延對齊要求。

讓我們將此情境下應用時延對齊的構(gòu)想進一步擴展。這可分為時延對齊和時延確定性。

時延對齊表示所有通道間的相對時延都是相同的,而時延確定性則意味著每次啟動時所有通道間的總時延都保持不變。在某些情況下,時延確定性和時延對齊都是必需的。

在啟動 RF Data Converter 時,轉(zhuǎn)換器是單個始終對齊的 Tile,但無法保證確定性時延。在多塊系統(tǒng)中,Tile 間無法保證確定性時延,甚至無法保證時延對齊。這意味著我們必須提供相應的機制來將這些 Tile 對齊。這是在 IP 內(nèi)部實現(xiàn)的,由軟件驅(qū)動中的 API 調(diào)用來管理。

了解多塊同步如何真正實現(xiàn)對齊的最簡單的方法是首先了解我們嘗試消除的對齊不確定性的來源。 我們將詳細討論這方面的內(nèi)容,但在此之前有必要先做些功課。

在 IP 中啟用此功能并使用軟件 API 來使 Tile 對齊的必要性毋庸置疑,但這整套機制的作用只是在 Tile 間提供數(shù)字化對齊。除此之外還必須遵循 PCB時鐘設置規(guī)則。欲知詳情,請參閱《PCB 設計用戶指南》。

有鑒于此,我們將聊一聊您將遇到的時延不確定性的來源。請看下圖。

我已經(jīng)對各 Tile 之間的時延不匹配的各種原因進行了編號:

1. 采樣時鐘偏差:

RF-ADC 或 RF-DAC Tile 時鐘輸入需對齊,其中存在的任意不匹配問題都意味著轉(zhuǎn)換器無法在同一時刻進行采樣。這永遠無法在內(nèi)部加以糾正。因此,必須在 PCB 上對走線進行延遲匹配。

2. Tile PLL 分頻器相位:

如果使用“Tile PLL”來創(chuàng)建采樣時鐘,那么在 2 個 Tile 間將無法保證 PLL 上的輸出分頻器相位相同。原因在于,啟動時復位完成的時間無法得到控制。Tile 間的所有這些分頻器都需要同步復位,才能實現(xiàn)對齊。

3. DUC/DDC 數(shù)字時鐘分頻器相位:

同理,RF-ADC 和 RF-DAC Tile 的數(shù)字部分在轉(zhuǎn)換器采樣時鐘的分配版本上運行。在 Tile 間無法保證這些分頻器完成復位時處于相同相位。這些分頻器需達成統(tǒng)一的復位狀態(tài)。

4. 雙時鐘 FIFO 讀寫指針版本:

在“Tile”與“PL 結(jié)構(gòu) (PL Fabric)”之間安全傳遞數(shù)據(jù)的 FIFO 可包含 M 或 M+1 個時延讀取周期,這取決于讀取使能處于已斷言狀態(tài)還是寫入狀態(tài)。這意味著需要通過某種糾正措施來實現(xiàn) Tile 同步。

為解決上述問題,我們提供了一種支持跨 Tile 同步的解決方案。它是在 IP 內(nèi)實現(xiàn)的,并在 RFDC 驅(qū)動中包含一組 API 調(diào)用以供其控制。此方案的關鍵是我們借用了 JESD204B 使用的 SYSREF 概念。我們將使用 SYSREF 作為系統(tǒng)的公用時序參考。在 (PG269) 和 (UG583) 中涵蓋了 SYSREF 的部分規(guī)則,我將在講解過程中將其與同步過程關聯(lián)。我們需將 SYSREF 提供給 Tile 和 PL 結(jié)構(gòu)(分別稱為“模擬 SYSREF”和“PL SYSREF”)。原因稍后揭曉。

但首先該怎么做呢?在了解解決方案前,有些 PCB 問題值得注意下。

ADC 和 DAC Tile 采樣時鐘必須全部實現(xiàn)相位對齊,并同時到達 Tile 時鐘輸入。并且,DAC 輸出路徑和 ADC 輸入路徑必須實現(xiàn)延遲匹配。請謹記,該解決方案僅在此處提供數(shù)字化對齊,完成 Tile 同步后,時鐘或數(shù)據(jù)線不匹配將顯示為殘差。

“模擬 SYSREF”和“PL SYSREF”信號必須布線到 RFSoC 以使其能同時到達其各自的輸入。(這至關重要,稍后我們將講解原因。)

在設計中,必須為要在 IP 中同步的 Tile 啟用 MTS。

請謹記,編號最小的 DAC 和 ADC Tile 始終必須包含在同步組中。

軟件應用必須包含 API 調(diào)用才能在運行時執(zhí)行多塊同步。

另一個實用的步驟是將 metal 日志的日志級別設置為 DEBUG,以便對設置中的 MTS 進行測試。metal 日志提供了 MTS 過程的詳細信息,調(diào)試 MTS 問題時此日志至關重要。

在軟件應用中,需聲明 ADC 和 DAC 同步組的結(jié)構(gòu)。

您將需要初始化并設置這些結(jié)構(gòu)才能執(zhí)行 MTS。

在最簡單的情況下,只需指定要同步的 Tile,并調(diào)用多塊同步函數(shù) XRFdc_MultiConverter_Sync 以使 IP 對齊 Tile:

那么 API 運行時究竟會做什么呢?

metal 日志可以解答這個問題。

首先,SysRef 將分布到要同步的所有 Tile。 然后,使用 Tile 中的模擬采樣時鐘通過延遲抽頭鏈 (DTC) 來捕獲 SYSREF。如果在 Tile 中已啟用 PLL,那么通過 PLL VCO 同樣可安全捕獲 SYSREF。

在日志中可以看到,它從延遲抽頭鏈中間的抽頭 64 處開始,并通過掃描來查找理想抽頭,以使 SysRef 位于采樣時鐘周期中間。

metal:info: DTC Scan T1

metal:debug: Target 64, DTC Code 7, Diff 57, Min 57

metal:debug: Target 64, DTC Code 44, Diff 20, Min 20

metal:debug: Target 64, DTC Code 93, Diff 29, Min 20

metal: debug: RefTile (0): DTC Code Target 64, Picked 44

metal:info: ADC0:00000000000000011113222220000000000000000000*0000000000000000000#111322222200000000000000000000000000000000000000111122222000000

metal:debug: Tile (1): Max/Min 44/44, Range 0

metal:debug: Tile (1): Code 9, New-Range: 35, Min-Range: 35

metal:debug: Tile (1): Code 47, New-Range: 3, Min-Range: 3

metal:debug: Tile (1): Code 96, New-Range: 52, Min-Range: 3

metal:debug: Tile (1): Code 47, Range Prev 0, New 3

metal:info: ADC1:00000000000000000001111322222000000000000000#00*00000000000000000001111322222000000000000000000000000000000000000000111132222200

請注意 DTC 掃描中的 0 值。這是時鐘周期中的穩(wěn)定部分,由表示轉(zhuǎn)換的 1/2/3 綁定。您將看到掃描置入 1 個 # 和 1 個 *。井號表示起點,星號表示所在的 DTC 代碼。它將使用所選代碼來為下一個 Tile 設置 DTC 起點。在 Tile 0 處可看到,它在抽頭 44 處找到理想代碼,然后在 Tile 1 中以代碼 44 開始,嘗試幾條代碼,最終止于代碼 47 上。

因此我們要求 SYSREF 信號必須為高質(zhì)量、自由運行的低抖動方波。如果有噪聲,那么在捕獲處將出現(xiàn)不匹配,從而導致 Tile 間不匹配。

在 Tile 中安全捕獲后,即可使用 SYSREF 來將 Tile 中數(shù)字部分的所有 Tile 同步復位。因此,SYSREF 頻率必須是對其進行采樣的全局時鐘分頻器 GCD(DAC_Sample_Rate/16,ADC_Sample_Rate/16)的整數(shù)約數(shù)以及任意 PL 端時鐘的整數(shù)約數(shù)。

完成此分頻器復位后,在所有 Tile 將實現(xiàn)有效的公用時鐘。Tile 內(nèi)部所有一切都會實現(xiàn)對齊?;乜辞拔闹酗@示時延不對齊問題來源的圖示,可以看到我們已經(jīng)解決了其中第 2 和第 3 項。

但任務并沒有結(jié)束,因為我們需要考慮 Tile 之間源自雙時鐘 FIFO 的固有不匹配問題。具體該怎么辦呢?

首先,必須捕獲 PL 時鐘域中 PL 用戶 SYSREF 以及 AXI-Stream 時鐘域中的 PL 用戶 SYSREF(如果與前者不同)。這同樣解釋了為什么 SYSREF 必須是所有 PL 時鐘的整數(shù)約數(shù)?,F(xiàn)已安全捕獲 PL 時鐘域中的 SYSREF。

前文中我提到過我會解釋為何需要模擬 Tile 端 SYSREF 和 PL 用戶 SYSREF,以及為何要求它們同時到達其各自的輸入。

MTS 的下一步是有效提取 PL 用戶 SYSREF 和 Tile SYSREF,將 Tile 間這兩者各自的飛行時間進行比較。

由于這兩者在器件球形封裝處對齊,因此可安全捕獲,并同時到達 FIFO 的某一端。因此,“飛行時間”或 Tile 間相對時延的任意不匹配的唯一可能來源就是 FIFO。在此情況下,我們使用 IP 將所謂的標記位插入 FIFO。它用于停止 FIFO 讀取端的標記計數(shù)器。隨后,將對標記計數(shù)器進行比較。然后,我們即可調(diào)整 FIFO 的讀取指針,以使所有 FIFO 都匹配。

metal 日志中顯示了標記計數(shù)器讀數(shù)以及執(zhí)行的所有調(diào)整。

metal: debug: Marker Read Tile 0,FIFO 0 - 00006000 = 0000: count=41, loc=0, done=1

metal: info: DAC0: Marker: - 41,0

metal: debug: Marker Read Tile 1,FIFO 0 - 0000A000 = 0000: count=41, loc=0, done=1

metal: info: DAC1: Marker: - 41,0

metal: info: SysRef period interms of DAC T1s = 1024

metal: info: DAC target latency =656

metal: debug: Tile 0, latency656, max 656

metal: debug: Tile 1, latency640, max 656

metal: debug: Target 656, Tile 0,delta 0, i/f_part 0/0, offset 0

metal: debug: Target 656, Tile 1,delta 0, i/f_part 0/0, offset 0

最后,可生成 MTS 調(diào)整報告。

=== Multi-Tile Sync Report ===

DAC0: Latency(T1) =656, AdjustedDelayOffset(T8) = 0

DAC1: Latency(T1) =656, AdjustedDelayOffset(T8) = 0

DAC2: Latency(T1) =656, AdjustedDelayOffset(T8) = 0

DAC3: Latency(T1) =656, AdjustedDelayOffset(T8) = 0

執(zhí)行 Tile 同步后,可以觀察硬件中的時延對齊。

以下捕獲顯示了執(zhí)行 MTS 后 28DR 上全部 8 個 ADC 的單調(diào)輸入結(jié)果。

遵循所有準則的前提下,應在 +/-1 T1 時鐘周期規(guī)格內(nèi)實現(xiàn)對齊。

實際上,在 T1 小范圍內(nèi)會出現(xiàn)殘差不匹配。如前文所述,此不匹配實際上來自模擬 I/O 的 PCB 走線和 Tile 輸入時鐘。

那么確定性時延該如何解決?

文初提到在某些情況下啟動時,時延對齊和時延確定性都是必需的。在 MTS API 中內(nèi)置此功能。

MTS 的數(shù)據(jù)結(jié)構(gòu)成員之一是 Target_Latency??赏ㄟ^設置此值來提供 IP 調(diào)整目標,以便在 FIFO 處始終得到相同時延。

具體過程是將目標時延設置為 0,并觀察含最大時延測量值的 FIFO,為其添加裕度,然后將該值設置為新目標。

此裕度以采樣時鐘數(shù)量來表示。對于 RF-ADC Tile,該值必須為 FIFO 讀取字數(shù)量的倍數(shù)乘以取樣因數(shù),對于 RF-DAC Tile,顯示常數(shù) 16,此常數(shù)非常實用。

請謹記,MTS 的默認行為是將 Tile 對齊,因此如果目標設置過低,metal 日志將發(fā)出警告,表明它無法滿足該目標值并且僅對 Tile 進行同步。

最后點評:

在本文中,我嘗試解釋 MTS 的工作方式并將其與 metal 日志相關聯(lián)。我希望本篇博文能為您提供有關多塊同步解決方案的更多見解,幫助您將來自 IP 產(chǎn)品指南、PCB 指南以及您使用該功能的自身經(jīng)驗有機結(jié)合,并幫助您理解來自 metal 日志的各種消息。

在 metal 日志中還包含許多其它錯誤報告方面的功能,這些功能可為將來 MTS 故障調(diào)試相關博文提供基礎。

編輯:hfy
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 賽靈思
    +關注

    關注

    32

    文章

    1794

    瀏覽量

    131126
  • RF信號
    +關注

    關注

    1

    文章

    41

    瀏覽量

    14637
  • MIMO
    +關注

    關注

    12

    文章

    590

    瀏覽量

    76750
  • 數(shù)據(jù)轉(zhuǎn)換器

    關注

    1

    文章

    354

    瀏覽量

    27960
  • 波束成形
    +關注

    關注

    1

    文章

    26

    瀏覽量

    13682
收藏 人收藏

    評論

    相關推薦

    推薦一款極具性價比的RFSoC開發(fā)平臺

    在當今飛速發(fā)展的通信技術領域,Xilinx RFSoC(Radio Frequency System on Chip)系列以其卓越的集成能力和強大的靈活性,成為行業(yè)內(nèi)的佼佼者。RFSoC將先進的模擬
    的頭像 發(fā)表于 10-25 10:28 ?249次閱讀
    推薦一款極具性價比的<b class='flag-5'>RFSoC</b>開發(fā)平臺

    如果系統(tǒng)中使用多片功放芯片TAS5622A,如何實現(xiàn)時鐘同步?

    如果系統(tǒng)中使用多片功放芯片,如何實現(xiàn)時鐘同步(例如TAS5622A)? ST的芯片(如TDA7498)可以支持: Master芯片提供時鐘給Slave芯片,從而實現(xiàn)多芯片同步。
    發(fā)表于 10-21 08:06

    三相三電平逆變器的中心對齊SVPWM實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《三相三電平逆變器的中心對齊SVPWM實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-12 11:25 ?0次下載
    三相三電平逆變器的中心<b class='flag-5'>對齊</b>SVPWM<b class='flag-5'>實現(xiàn)</b>

    基于RFSOC 27或47DR 8路ADC + 8路DA 6U VPX板卡

    基于RFSOC 27或47DR 8路ADC + 8路DA 6U VPX板卡
    的頭像 發(fā)表于 10-10 18:18 ?346次閱讀
    基于<b class='flag-5'>RFSOC</b> 27或47DR 8路ADC + 8路DA 6U VPX板卡

    國產(chǎn)RFSoC 47DR/28DR/27DR核心板

    采用FDW復旦微電子FMZQ28DR- RFSoC處理器,兼容Gen1 ZU28/27、Gen3 ZU48/47DR RFSoC,擁有8個RF-ADC、8個RF-DAC通道。提供完整的應用示例源代碼和性能分析工具, 主要用于小尺寸、低功耗、實時處理RF系統(tǒng)的快速集成與應用
    的頭像 發(fā)表于 09-03 17:08 ?521次閱讀
    國產(chǎn)<b class='flag-5'>RFSoC</b> 47DR/28DR/27DR核心板

    ESP8266如何實現(xiàn)時間小于3us的定時任務?

    實現(xiàn)一個穩(wěn)定的軟串口,現(xiàn)有的軟串口程序是通過中斷實現(xiàn)的,但中斷好像會被其他中斷打斷,導致數(shù)據(jù)丟失,定時器按文檔上的說法,只能大于50us,能不能實現(xiàn)時間小于3us的定時任務或者提高GPIO中斷的優(yōu)先級呢?或者還有其他什么辦法?
    發(fā)表于 07-19 06:13

    HarmonyOS實戰(zhàn)開發(fā)-如何實現(xiàn)音頻低時錄制和播放,AudioVivid音樂播放的相關功能

    ||||---Ability.test.ets // 自動化測試用例 具體實現(xiàn) 音頻錄制和播放-源碼參考:audioRecording.cpp低時錄制開發(fā)指導文檔低時播放開發(fā)指導文檔低時
    發(fā)表于 05-11 20:26

    HarmonyOS開發(fā)ArkUI案例:【常用布局容器對齊方式】

    基于ArkTS擴展的聲明式開發(fā)范式,實現(xiàn)Flex、Column、Row和Stack四種常用布局容器對齊方式。
    的頭像 發(fā)表于 05-08 16:47 ?1483次閱讀
    HarmonyOS開發(fā)ArkUI案例:【常用布局容器<b class='flag-5'>對齊</b>方式】

    金融信創(chuàng)優(yōu)秀解決方案-超低時網(wǎng)絡解決方案

    方案基于中科馭數(shù)自主研發(fā)的低時網(wǎng)絡DPU卡SWIFT-2200N和超低時數(shù)據(jù)處理開發(fā)平臺SWIFT-NDPP
    的頭像 發(fā)表于 04-30 14:29 ?767次閱讀
    金融信創(chuàng)優(yōu)秀解決<b class='flag-5'>方案</b>-超低時<b class='flag-5'>延</b>網(wǎng)絡解決<b class='flag-5'>方案</b>

    羅德與施瓦茨矢量網(wǎng)絡分析儀如何實現(xiàn)時域測量?

    羅德與施瓦茨(Rohde & Schwarz)矢量網(wǎng)絡分析儀是一種高精度的測試儀器,用于測量和分析無線通信系統(tǒng)中的射頻和微波信號。除了頻域測量(如頻譜分析)外,它還可以實現(xiàn)時域測量,用于分析信號
    的頭像 發(fā)表于 04-26 09:11 ?476次閱讀
    羅德與施瓦茨矢量網(wǎng)絡分析儀如何<b class='flag-5'>實現(xiàn)時</b>域測量?

    網(wǎng)絡研討會預告 | 《如何使用Zynq Ultrascale+ RFSoC實現(xiàn)軟件定義無線電》

    本次研討會添加中文字幕的全部視頻,方便感興趣的伙伴們回看和保存。)在線直播《如何使用ZynqUltrascale+RFSoC實現(xiàn)軟件定義無線電》的網(wǎng)絡研討會。En
    的頭像 發(fā)表于 02-27 08:08 ?432次閱讀
    網(wǎng)絡研討會預告 | 《如何使用Zynq Ultrascale+ <b class='flag-5'>RFSoC</b><b class='flag-5'>實現(xiàn)</b>軟件定義無線電》

    LED樹木燈光亮化方案的設計與控制技術解析

    LED樹木燈光亮化方案的設計與控制技術解析
    的頭像 發(fā)表于 01-24 17:54 ?655次閱讀
    LED樹木燈光亮化<b class='flag-5'>方案</b>的設計與控制技術<b class='flag-5'>解析</b>

    控制系統(tǒng)之間如何實現(xiàn)時鐘同步?

    控制系統(tǒng)之間如何實現(xiàn)時鐘同步? 控制系統(tǒng)之間的時鐘同步是確保不同系統(tǒng)之間的時鐘保持一致的過程。它在許多實時應用中非常重要,如分布式系統(tǒng)、通信網(wǎng)絡、工業(yè)自動化等。時鐘同步的目標是確保所有控制系統(tǒng)在各個
    的頭像 發(fā)表于 01-16 14:37 ?916次閱讀

    keil arm工程中結(jié)構(gòu)體1字節(jié)對齊如何實現(xiàn)

    在Keil Arm工程中,結(jié)構(gòu)體的對齊方式可以通過使用特定的編譯器指令或者關鍵字來實現(xiàn)。結(jié)構(gòu)體的對齊方式會直接影響結(jié)構(gòu)體變量在內(nèi)存中的布局和對齊邊界,從而對程序的性能和存儲空間占用產(chǎn)生
    的頭像 發(fā)表于 01-05 14:40 ?3320次閱讀

    如何實現(xiàn)AD9970 LVDS串行輸出數(shù)據(jù)的字邊界對齊

    目前正在做一個AD9970+CCD的項目,通過FPGA接收并解析AD9970輸出的LVDS差分串行數(shù)據(jù)。由于AD9970輸出的是串行比特位流,F(xiàn)PGA首先需要判斷一個data word在 bit
    發(fā)表于 01-01 06:36