色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

使用RFSoC的多個 Tile 實現時延對齊方案解析

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

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

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

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

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

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

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

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

由此可見,需要使用大量數據轉換器來構建陣列,并且在天線陣列中的所有通道之間存在時延對齊要求。

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

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

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

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

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

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

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

1. 采樣時鐘偏差:

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

2. Tile PLL 分頻器相位:

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

3. DUC/DDC 數字時鐘分頻器相位:

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

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

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

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

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

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

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

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

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

軟件應用必須包含 API 調用才能在運行時執行多塊同步。

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

在軟件應用中,需聲明 ADC 和 DAC 同步組的結構。

您將需要初始化并設置這些結構才能執行 MTS。

在最簡單的情況下,只需指定要同步的 Tile,并調用多塊同步函數 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 值。這是時鐘周期中的穩定部分,由表示轉換的 1/2/3 綁定。您將看到掃描置入 1 個 # 和 1 個 *。井號表示起點,星號表示所在的 DTC 代碼。它將使用所選代碼來為下一個 Tile 設置 DTC 起點。在 Tile 0 處可看到,它在抽頭 44 處找到理想代碼,然后在 Tile 1 中以代碼 44 開始,嘗試幾條代碼,最終止于代碼 47 上。

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

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

完成此分頻器復位后,在所有 Tile 將實現有效的公用時鐘。Tile 內部所有一切都會實現對齊。回看前文中顯示時延不對齊問題來源的圖示,可以看到我們已經解決了其中第 2 和第 3 項。

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

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

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

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

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

metal 日志中顯示了標記計數器讀數以及執行的所有調整。

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 調整報告。

=== 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

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

以下捕獲顯示了執行 MTS 后 28DR 上全部 8 個 ADC 的單調輸入結果。

遵循所有準則的前提下,應在 +/-1 T1 時鐘周期規格內實現對齊。

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

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

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

MTS 的數據結構成員之一是 Target_Latency。可通過設置此值來提供 IP 調整目標,以便在 FIFO 處始終得到相同時延。

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

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

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

最后點評:

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

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

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

    關注

    32

    文章

    1794

    瀏覽量

    131248
  • RF信號
    +關注

    關注

    1

    文章

    41

    瀏覽量

    14661
  • MIMO
    +關注

    關注

    12

    文章

    594

    瀏覽量

    76828
  • 數據轉換器
    +關注

    關注

    1

    文章

    363

    瀏覽量

    28004
  • 波束成形
    +關注

    關注

    1

    文章

    26

    瀏覽量

    13692
收藏 人收藏

    評論

    相關推薦

    KiCad的對齊工具不好用?

    “ ?不存在的。唯一的原因是您還沒有學會怎么用。 ? ” 對齊命令在哪里? KiCad的對齊命令(Align)藏得比較隱蔽,既不在菜單欄,也不在工具欄。右鍵的菜單中默認也不存在。只有當您 選中兩個或
    的頭像 發表于 12-04 18:15 ?135次閱讀
    KiCad的<b class='flag-5'>對齊</b>工具不好用?

    ARM嵌入式系統中內存對齊的重要性

    做嵌入式系統軟件開發,經常在代碼中看到各種各樣的對齊,很多時候我們都是知其然不知其所以然,知道要做好各種對齊,但是不明白為什么要對齊,不對齊會有哪些后果,這篇文章大概總結了內存
    的頭像 發表于 11-11 17:17 ?816次閱讀
    ARM嵌入式系統中內存<b class='flag-5'>對齊</b>的重要性

    推薦一款極具性價比的RFSoC開發平臺

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

    如果系統中使用多片功放芯片TAS5622A,如何實現時鐘同步?

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

    三相三電平逆變器的中心對齊SVPWM實現

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

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

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

    ESP8266如何實現時間小于3us的定時任務?

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

    HarmonyOS實戰開發-如何實現音頻低時錄制和播放,AudioVivid音樂播放的相關功能

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

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

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

    金融信創優秀解決方案-超低時網絡解決方案

    方案基于中科馭數自主研發的低時網絡DPU卡SWIFT-2200N和超低時數據處理開發平臺SWIFT-NDPP
    的頭像 發表于 04-30 14:29 ?821次閱讀
    金融信創優秀解決<b class='flag-5'>方案</b>-超低時<b class='flag-5'>延</b>網絡解決<b class='flag-5'>方案</b>

    羅德與施瓦茨矢量網絡分析儀如何實現時域測量?

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

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

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

    控制系統之間如何實現時鐘同步?

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

    keil arm工程中結構體1字節對齊如何實現

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

    如何實現AD9970 LVDS串行輸出數據的字邊界對齊

    目前正在做一個AD9970+CCD的項目,通過FPGA接收并解析AD9970輸出的LVDS差分串行數據。由于AD9970輸出的是串行比特位流,FPGA首先需要判斷一個data word在 bit
    發表于 01-01 06:36
    主站蜘蛛池模板: 亚洲福利网站| 久久久久青草大香线综合精品| WWWXXXX兽交| 99爱在线精品视频免费观看9| 在线亚洲97se| 中文字幕在线观看亚洲| 一边吃奶一边添P好爽故事| 亚洲精品高清在线观看| 亚洲精品久久久久69影院| 亚洲AV香蕉一区区二区三区蜜桃| 午夜国产高清精品一区免费| 手机在线免费观看毛片| 色吧最新网址| 忘忧草直播| 亚洲国产精品嫩草影院| 羞羞麻豆国产精品1区2区3区| 洗濯屋H纯肉动漫在线观看| 侮辱丰满美丽的人妻| 亚洲欧洲日产国码中学| 妖精视频免费看| 中国欧美日韩一区二区三区| 91精品国产免费入口| 99久久无码一区人妻A片蜜| www.x日本| 国产福利不卡在线视频| 国产香蕉视频在线观看| 灰原哀被啪漫画禁漫| 久久视频在线视频观品15 | 曰本少妇高潮久久久久久| 亚洲中文字幕欧美自拍一区 | 日本成熟bbxxxxxxxx| 色婷婷综合激情中文在线| 无码AV精品久久一区二区免费| 香蕉免费高清完整| 亚洲在线v观看免费国| 34g污奶绵uk甩奶| QVOD理论| 国产一区二区高清| 久久人妻AV一区二区软件| 欧美人成人亚洲专区中文字幕| 色欲精品国产AV久久久|