Zynq UltraScale+ RFSoC 是業(yè)界首款單芯片自適應(yīng)無線電平臺,在一款芯片內(nèi)集成射頻直采數(shù)據(jù)轉(zhuǎn)換器、單芯片軟決策前向糾錯核(SD-FEC)、FPGA邏輯、完整的ARM處理器子系統(tǒng)和高速收發(fā)器等。
第三代RFSoC器件與前幾代產(chǎn)品相比,射頻輸入輸出頻率響應(yīng)已擴(kuò)展至全面支持6GHz以下頻段,可幫助用戶開發(fā)尖端RF設(shè)計,例如大規(guī)模MIMO無線電、5G基帶、固定無線接入、測試測量與相控陣?yán)走_(dá)等等。第三代器件14bit分辨率ADC最大采樣速率增加到5.0GSPS,14bit分辨率DAC最大采樣速率增加到10.0GSPS。用戶可以參考XMP105詳細(xì)了解Zynq RFSoC系列產(chǎn)品具體參數(shù)及選型指南。
本次將分上下篇介紹基于Xilinx Zynq UltraScale+ RFSoC ZCU216評估套件的詳細(xì)內(nèi)容:
1. 第三代RFSoC 器件時鐘轉(zhuǎn)發(fā)特性。
2. ZCU216時鐘結(jié)構(gòu)及可行的時鐘設(shè)計方案。
3. 在Vivado中創(chuàng)建基于IP集成器(IP Integrator)的設(shè)計。
4. 在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計。
5. 代碼簡要分析。
6. 硬件環(huán)境及測試結(jié)果。
本文用于示例的軟件工具、驅(qū)動版本、硬件版本及文檔版本如下:
1. ZCU216 Rev-A02(Engineer Sample)
2. CLK104
3. Vivado 2021.2 + Vitis 2021.2
4. PG269 V2.6 October 27, 2021
5. Software Driver: rfdc v11.0
1. 第三代RFSoC 器件時鐘轉(zhuǎn)發(fā)特性:
RFSoC在芯片內(nèi)集成了數(shù)據(jù)轉(zhuǎn)換器,第三代RFSoC系列器件均包含4個ADC Tile和4個DAC Tile,每個ADC和DAC Tile內(nèi)可能包含1個(ZU43DR)或2個(ZU47DR/48DR)或者4個(ZU49DR)Channel,這取決于芯片型號。以ZCU216開發(fā)板上的芯片為例,ZU49DR的每個ADC Tile內(nèi)包含4路ADC,每個DAC Tile內(nèi)包含4路DAC。
每個Tile都可以獨(dú)立配置,工作在不同的采樣時鐘頻率上,采樣時鐘可以來自于外部高頻時鐘輸入,可以來自于每個Tile內(nèi)部PLL倍頻后的時鐘,也可以來自于其他Tile分發(fā)的參考時鐘。
第三代RFSoC器件相比之前幾代產(chǎn)品引入了時鐘轉(zhuǎn)發(fā)特性,不再需要為每個Tile都提供獨(dú)立的采樣時鐘,節(jié)省了引腳數(shù)量,降低了外圍電路的復(fù)雜度。
時鐘轉(zhuǎn)發(fā)的方式共分為兩種,一種是參考時鐘轉(zhuǎn)發(fā),一種是采樣時鐘轉(zhuǎn)發(fā)。
所謂參考時鐘轉(zhuǎn)發(fā),是指外部時鐘芯片提供低噪聲低頻時鐘到一個ADC/DAC Tile的專用時鐘管腳,該時鐘將在Tile間轉(zhuǎn)發(fā),通過每個Tile內(nèi)的PLL倍頻出所需的采樣時鐘;
而采樣時鐘轉(zhuǎn)發(fā)有兩種途徑,一是從外部時鐘芯片直接提供低噪聲高頻的采樣時鐘到一個ADC/DAC Tile的專用時鐘管腳,采樣時鐘將在Tile間分發(fā),無需通過內(nèi)部PLL倍頻,直接提供給ADC/DAC Channel作為采樣時鐘;
時鐘芯片提供低噪聲低頻時鐘到一個ADC/DAC Tile的專用時鐘管腳,該時鐘在此Tile內(nèi)通過PLL倍頻到采樣頻率,隨后將此采樣時鐘在Tile間分發(fā)。
以上僅為時鐘分發(fā)方式的簡化解釋,會有一些使用的限制和建議,建議用戶參考PG269 Chapter 4 Clocking-On-chip Clock Distribution章節(jié)閱讀。
用戶也可以打開Vivado,選擇器件型號后在RF Data Converter IP內(nèi)根據(jù)原理圖和目標(biāo)設(shè)計進(jìn)行配置,如果時鐘設(shè)計存在問題,工具會給予一定的報警和提示。
值得注意的是,RF Data Converter IP內(nèi)的選項和上述的兩種分發(fā)方式不是完全匹配的。當(dāng)使用采樣時鐘分發(fā)方式時,在IP內(nèi)需要勾選的是Input Refclk。ADC Tile 1(Tile 225)和DAC Tile 1(Tile 229)作為采樣時鐘輸入源,其他的ADC和DAC Tile選擇Tile 1作為時鐘源。
2. ZCU216時鐘結(jié)構(gòu)及可行的時鐘設(shè)計方案:
本節(jié)僅覆蓋ZCU216開發(fā)板與RF數(shù)據(jù)轉(zhuǎn)換器相關(guān)的時鐘部分,這部分時鐘均由擴(kuò)展子卡CLK104提供。
如下所示為CLK104板上的功能示意圖:
通過一個時鐘芯片為DAC提供接近10GSPS的低噪聲采樣時鐘是很難實現(xiàn)的,CLK104板采用兩級PLL方案。
第一級LMK04828B是一個雙環(huán)路抖動清除器和時鐘發(fā)生器,一級回路的參考輸入可為板上的10MHz TCXO、外部參考時鐘(比如從SMA100B輸出低噪聲時鐘),或SFP恢復(fù)時鐘。二級回路的參考輸入為板上的160MHz VCXO,可輸出低相噪的時鐘、同步信號。其中DAC_REFCLK和ADC_REFCLK可作為ADC/DAC低頻參考時鐘輸入;PL_CLK,AMS_SYSREF和PL_SYSREF均用作MTS(Multi-Tile Synchronization)應(yīng)用,我們將在未來博客中詳細(xì)描述MTS相關(guān)應(yīng)用;
第二級LMX2594接收第一級輸出時鐘,將其倍頻到采樣頻率,直接輸出到ADC/DAC Tile。
這三顆時鐘芯片均由SPI接口控制,板上有一顆IIC to SPI橋接芯片,F(xiàn)PGA通過IIC接口對此轉(zhuǎn)換芯片進(jìn)行控制,進(jìn)而控制三顆時鐘芯片。除此以外還有一種更為簡單的方式,ZCU216板上帶有一顆TI的MSP430 MCU,其IIC接口通過IIC Switch也可以連接到這幾顆時鐘IC上,用戶可以參考XTP580,使用BoardUI實現(xiàn)對時鐘的配置。
ZCU216上的芯片型號為ZU49DR,其4個ADC Tile和4個DAC Tile都有專用的模擬時鐘輸入管腳,但只有兩個ADC Tile(Bank 225/226)和兩個DAC Tile(Bank 229/230)的時鐘管腳被引出。如下表所示為詳細(xì)連接關(guān)系:
本文后續(xù)將會展示以下的時鐘方案配置:
使用LMX2594輸出高頻采樣時鐘分發(fā)方式,從ADC Tile1和DAC Tile1輸入。設(shè)定ADC 采樣頻率為2000MHz,DAC采樣頻率為6400MHz。
3. 在Vivado中創(chuàng)建基于IP集成器
(IP Integrator)的設(shè)計
本節(jié)需要讀者對基于Vivado的IPI設(shè)計比較熟悉,將不會對較簡單的操作步驟進(jìn)行詳述。如何使用此Blog提供的TCL文件重建Vivado工程請參考附錄。
? 打開Vivado 2021.2,新建工程,名為rfsoc_zcu216_clocking。
? 選擇板卡ZCU216 EVB或ZCU216 ES EVB,根據(jù)板卡型號決定,二者bitstream不兼容。
? 在工程界面內(nèi)創(chuàng)建Block Design,默認(rèn)名為design_1。
?添加Zynq UltraScale+ MPSoC IP,Run Block automation,使用板卡默認(rèn)配置。
? 修改Zynq配置,PS-PL Configuration界面下將AXI HPM0/1 FPD接口關(guān)閉,勾選AXI HPM0 LPD,其他保持默認(rèn)。
? 添加Zynq UltraScale+ RF Data Converter IP。
? 修改RF Data Converter配置。
1. 切換Converter Setup為Advanced模式。
2. 使能全部ADC和DAC的每個Channel,其他所有配置大多數(shù)都是可以通過API修改的,保持默認(rèn)即可,后續(xù)將會介紹如何通過API修改。
3. 修改全部ADC的Samples per AXI4-Stream Cycle為8,DAC為16,這是為了避免AXI-Stream接口時鐘頻率超出器件頻率上限。
4.在System Clocking界面按下圖配置,如上一節(jié)所示,我們將先按ADC 2GSPS,DAC 6.4GSPS進(jìn)行配置,使用采樣時鐘分發(fā)方式。IP的輸出時鐘可以用于倍頻產(chǎn)生AXI4-Stream數(shù)據(jù)接口的時鐘,因此我們先保持和Fabric clock 頻率8分頻的關(guān)系進(jìn)行配置。
5. Advanced界面保持默認(rèn),無需勾選。
? Run Block Automation,將RFDC IP AXI-Lite接口通過Interconnect連接到Zynq LPD接口實現(xiàn)地址映射。
? 為AXI4-Stream接口提供合適的時鐘和復(fù)位。
1. 點(diǎn)擊BD界面上方Run Block Automation。
2. 由于所有ADC/DAC采樣率是一致的,可以使用一個MMCM產(chǎn)生ADC/DAC所需的數(shù)字時鐘。在彈出界面中勾選ADC 0-3的時鐘源為ADC0,DAC0-3的時鐘源為DAC0。
3. 工具將會自動例化兩個Clocking Wizard IP,adc0_clk_wiz使用IP輸出的31.25MHz的時鐘作為輸入,倍頻輸出200MHz時鐘供給Master接口。Dac0_clk_wiz使用IP輸出的50MHz時鐘作為輸入,倍頻輸出400MHz時鐘供給給Slave接口。
4. 修改clocking wizard復(fù)位極性為低電平有效。
5.例化兩個Processor System Reset IP,并連接peripheral_aresetn到RFDC IP的s/m_axis_aresetn管腳上。其中Slave AXI-Stream接口是DAC的數(shù)字接口,Master AXI-Stream是ADC的數(shù)字接口。
6. 例化一個AXI GPIO IP,用于控制時鐘板CLK104上的SPI SDO選通。設(shè)定為輸出,位寬為2,初始值設(shè)定為0x0。
7. 引出AXI GPIO IP,命名為spi_mux。
? 完整的Block Design大致如下:
? 在BD中右鍵Validate design,確保沒有報錯。
? 創(chuàng)建頂層文件,右鍵BD,Create HDL Wrapper,選擇Let Vivado manage wrapper and auto-update。
? 添加管腳約束,RFDC相關(guān)管腳為專有管腳,IP內(nèi)包含管腳約束,用戶無需為此添加。
? 生成bitstream,檢查工程是否有時序違例。
? 導(dǎo)出工程XSA文件,F(xiàn)ile-Export-Export Hardware,勾選Include Bitstream,選擇導(dǎo)出目錄。
在Vitis中創(chuàng)建基于ARM的BareMetal程序設(shè)計:
詳細(xì)流程:
? 打開Vitis,選擇一個Vitis工作目錄。
? Create Application,選擇一個新的XSA文件,導(dǎo)入從Vivado獲得的XSA文件。
?為工程取一個名,以Empty Application(C)為模板新建工程。
?勾選BSP中的庫,雙擊platform.spr,選中standalone_psu_cortexa53_0下的Board Support Package,選擇Modify BSP Settings,勾選libmetal庫,保存。
? 導(dǎo)入源碼,從附件中找到main.c,可以直接拷貝到工程src目錄下,或者右鍵src目錄選擇Import sources。
? 添加工程Symbol。右鍵工程選擇C/C++ build settings,在Symbols中添加__BAREMETAL__。
? 編譯工程,如果有宏定義相關(guān)報錯,應(yīng)該是底層IP命名問題,可以在xparameters.h中找到實際的宏定義。
如何添加metal log:
Libmetal庫提供了metal_log API以便于用戶調(diào)試,用戶可以參考AR#71068使能打印功能:
https://support.xilinx.com/s/article/71068
Metal_log提供了8個等級的打印信息,用戶可以根據(jù)項目所處的不同階段決定開啟哪一個等級的調(diào)試信息。
代碼簡要分析:
整體流程大致如下:
1. Libmetal初始化。
2. RFDC IP初始化。
3. IIC/GPIO/SPI Mux初始化。
4. CLK104時鐘IC復(fù)位。
5. CLK104時鐘配置。
6. 設(shè)置RFDC Clock Distribution。
7. 查看RFDC IP狀態(tài)。
這里主要強(qiáng)調(diào)一下三個部分,一是時鐘配置,二是Clock Distribution,三是狀態(tài)檢查。
如前面章節(jié)所說,F(xiàn)PGA通過IIC接口與IIC to SPI橋接芯片進(jìn)行交互,橋接芯片通過SPI接口控制時鐘IC。配置數(shù)據(jù)在本案例中是記錄在數(shù)組中的,數(shù)據(jù)來源于TI的TICS Pro軟件。用戶需要根據(jù)實際的需求,在軟件中選擇時鐘IC的輸入輸出頻率和管腳復(fù)用,由軟件導(dǎo)出一組針對此時鐘IC的寄存器數(shù)值。
Clock Dsitribution部分,IP驅(qū)動提供了相關(guān)的結(jié)構(gòu)體和API,具體組成部分可以參考PG269文檔相關(guān)部分。以下是DAC Tile的時鐘分發(fā)網(wǎng)絡(luò)配置代碼:
在我們目前的設(shè)計中,使用LMX2594產(chǎn)生的高頻參考時鐘輸入到DAC Tile1,因此結(jié)構(gòu)體中指定source tile為XRFDC_TILE_ID1;此時鐘分發(fā)組內(nèi)最北的是DAC Tile3,最南的是DAC Tile0;分發(fā)類型是參考鐘分發(fā),因此選擇XRFDC_DIST_OUT_RX;參考鐘頻率為6400,采樣率為6400;將此結(jié)構(gòu)體傳入到XRFdc_SetClkDistribution函數(shù)中,函數(shù)內(nèi)部會檢查當(dāng)前配置是否有效,并在配置結(jié)束以后啟動tile。
檢查IP狀態(tài)是最后一步,IP啟動過程共有15個階段,只有當(dāng)Tile狀態(tài)達(dá)到0xf的時候說明此Tile正常啟動,接下來可以正常工作,如果發(fā)現(xiàn)Tile狀態(tài)停在某一步,可以對照PG269 Power-on Sequence Steps章節(jié)查找原因。
硬件環(huán)境及測試結(jié)果:
建議按照XTP587完成板子硬件環(huán)境setup:
2. 安裝CLK104時鐘板。
3. 使用出廠自帶的CARLISLE連接線,將CLK104 ADC/DAC參考鐘接到板上。
4. 設(shè)置啟動模式為JTAG。
測試結(jié)果:
由打印的IP status對比可見,時鐘成功配置,所有DAC和ADC Tile均進(jìn)入到狀態(tài)0xf。
附錄:
此文章提供重建工程TCL腳本,用戶可以下載附件,按照如下步驟重建Vivado工程:
1. 打開Vivado 2021.2。
-對Windows系統(tǒng),雙擊桌面Vivado圖標(biāo)或到此目錄尋找執(zhí)行文件C:XilinxVivado2021.2invivado.bat。
- 對Linux系統(tǒng),source/settings64.sh。
2. 在Vivado console中,將當(dāng)前目錄更換到下載的附件目錄。Cd。
3. Source 。/vivado_project.tcl。
Vitis工程需要用戶自行創(chuàng)建,本文會提供測試源代碼。
原文標(biāo)題:開發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時鐘設(shè)計
文章出處:【微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21799瀏覽量
606203 -
單芯片
+關(guān)注
關(guān)注
3文章
422瀏覽量
34677 -
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
122191 -
數(shù)據(jù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
1文章
367瀏覽量
28131
原文標(biāo)題:開發(fā)者分享|第三代Zynq RFSoC器件射頻數(shù)據(jù)轉(zhuǎn)換器應(yīng)用: 時鐘設(shè)計
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
適用于板載Zynq UltraScale+ZCU102評估板的vivado版本
如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器
如何使用ZCU102評估板來運(yùn)行應(yīng)用
Zynq UltraScale+ MPSoC ZCU102評估套件解決方案
Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞
賽靈思推出同類首創(chuàng)的Zynq UltraScale+RFSoC ZCU111評估套件
Zynq UltraScale+ RFSoC的功能特點(diǎn)與應(yīng)用
Zynq UltraScale+ MPSoC的發(fā)售消息
Zynq UltraScale+ MPSoC的ZCU102開發(fā)套件的開發(fā)流程
上新:Zynq UltraScale+ RFSoC ZCU111 評估套件
賽靈思與三星聯(lián)手全球 5G 商用部署
Zynq UltraScale+射頻ZCU216射頻數(shù)據(jù)轉(zhuǎn)換器評估工具
![<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b>射頻<b class='flag-5'>ZCU216</b>射頻數(shù)據(jù)轉(zhuǎn)換器<b class='flag-5'>評估</b>工具](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論