在有關(guān) RF 數(shù)據(jù)轉(zhuǎn)換器的博文中,我們了解了什么是軟件驅(qū)動(dòng)以及可以如何用它來(lái)管理 RF 數(shù)據(jù)轉(zhuǎn)換器 IP 的狀態(tài)和控制。
我們介紹了可以如何通過(guò)編寫一個(gè)簡(jiǎn)單的獨(dú)立應(yīng)用來(lái)幫助調(diào)試系統(tǒng)中的 RF-ADC 和 RF-DAC 。
在那篇博客中,我提到賽靈思已通過(guò)一個(gè)叫作 RF Analyzer 的工具實(shí)現(xiàn)了在任何電路板上的任何器件上啟用了 RF 數(shù)據(jù)轉(zhuǎn)換器的調(diào)試功能。我現(xiàn)在將用接下來(lái)的兩篇博文來(lái)拆箱此實(shí)用程序、查看其主要功能,并了解我們可以如何用它來(lái)管理 RF-ADC 和 RF-DAC 塊。我還會(huì)講講如何用它來(lái)生成 RF-DAC 激勵(lì),以及如何查看和分析 RF-ADC 接收的數(shù)據(jù)。
這篇博客由上,下兩部分組成,專門針對(duì) RF Analyzer 而編寫。在本篇文章中,我們來(lái)看一下該工具是由哪些塊構(gòu)建的。我認(rèn)為這個(gè) RF 分析儀是由三條主線組成的。
首先是 PL 設(shè)計(jì),它是由 Zynq UltraScale+ RF Data Converter IP 示例設(shè)計(jì)、用于啟用 RF 子系統(tǒng)狀態(tài)和控制的 MicroBlaze,以及用于寫入和讀取 GUI 數(shù)據(jù)的 JTAG to AXI Master IP 組成的。此設(shè)計(jì)中還包含一些時(shí)鐘生成功能。
該設(shè)計(jì)的最大優(yōu)點(diǎn)就是您擁有與您的設(shè)計(jì)相匹配的 IP 配置。這意味著您現(xiàn)在已經(jīng)將 RF 數(shù)據(jù)轉(zhuǎn)換器與您的設(shè)計(jì)的其他部分分離開(kāi)來(lái)。這讓您能夠剝離設(shè)計(jì)的其余部分,而只查看系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)換器性能、捕獲 RX 數(shù)據(jù),并分析“RF Analyzer GUI”中的數(shù)據(jù)。
應(yīng)該理解為,這種獨(dú)立靈活設(shè)計(jì)的成本是無(wú)法管理 DDR 內(nèi)存的(因?yàn)槲覀兿胍谌魏纹骷?任何電路板上啟動(dòng)),因此用于回放/捕獲的存儲(chǔ)空間是通過(guò)片上的 Block RAM 構(gòu)建的。為了便于使用,我們還為每個(gè)帶有分析儀數(shù)據(jù)包的可用器件提供了預(yù)先構(gòu)建的比特流。
在 PL 比特流之后,我們有一個(gè) MicroBlaze 應(yīng)用。該應(yīng)用旨在管理 PL 設(shè)計(jì)中的控制路徑。在較高的層級(jí),它可以接收來(lái)自 RF Analyzer GUI 的命令、對(duì)其進(jìn)行解析,并通過(guò)驅(qū)動(dòng) API 從各個(gè)塊中讀回請(qǐng)求的數(shù)據(jù),甚至可以修改塊的設(shè)置。這是以 RF 分析儀設(shè)計(jì)的 ELF 文件的形式提供的。
在頂層有一個(gè) Labview GUI,允許您與 RF-ADC 和 RF-DAC 塊連接,以進(jìn)行數(shù)據(jù)捕獲和激勵(lì)生成/回放。該 GUI 遵循與 ZCU111 RFSoC Evaluation GUI 相同的樣式。
下圖顯示的是完整 RF 分析儀的展示圖。
既然我們對(duì) RF 分析儀有了初步的了解,那就讓我們來(lái)更深入地了解一下。最好的辦法是從定制的 IP 配置開(kāi)始,并逐一了解一下在 RF Analyzer 環(huán)境中使用它所需的所有步驟。
在本示例中,我們將使用 ZCU1275 功能描述電路板。該電路板配有 16x16 ZU29DR 器件。我們實(shí)際上不需要對(duì)這個(gè)電路板太了解。我們只需要確定以下內(nèi)容:
轉(zhuǎn)換器時(shí)鐘已設(shè)置
Bullseye連接器在構(gòu)建中連接妥當(dāng),以與我們特定的IP配置相匹配
RF 分析儀會(huì)對(duì)其余部分進(jìn)行管理。我們稍后會(huì)回過(guò)頭來(lái)討論這個(gè)問(wèn)題。
第一步是設(shè)置 IP。這是我們構(gòu)建 RF Analyzer PL 設(shè)計(jì)的基礎(chǔ)。您可以從 IP 目錄中選擇它,也可以在“IP Integrator”中的塊設(shè)計(jì)(block design)中找到它。
所以,我認(rèn)為展示 RF-ADC 和 RF-DAC 配置并查看一些 CW(連續(xù)波)音調(diào)是有意義的。
然后,我們會(huì)設(shè)置兩個(gè)塊以啟用環(huán)回,我們還可以從 RF-DAC 發(fā)送上轉(zhuǎn)換 QAM16 矢量并通過(guò) RF-ADC 來(lái)接收它。
在本示例中,我們將運(yùn)行采樣率為 1966.08 MHz 的 RF-ADC 和采樣率為 3932.16 MHz 的 RF-DAC。
您最終獲得的 IP 類似于此處顯示的 IP。兩個(gè) DAC 塊皆處于活動(dòng)狀態(tài),并使用了兩個(gè)ADC塊。
您現(xiàn)在可以單擊“OK”并決定跳過(guò) IP 的 OOC 綜合。
我們必須指示工具,當(dāng)我們創(chuàng)建示例設(shè)計(jì)時(shí),我們打算啟用 RF 分析器。您需要在 Vivado Tcl 控制臺(tái)中輸入以下命令。
set_property -dict [list CONFIG.RF_Analyzer {1}] [get_ips]
接下來(lái),右鍵單擊 IP 并點(diǎn)擊“Open Example Design”。您隨即會(huì)獲得一個(gè)包含示例設(shè)計(jì)和 Analyzer 基礎(chǔ)結(jié)構(gòu)的新工程。
在此設(shè)計(jì)的頂層,我們利用 STARTUPE3 塊為設(shè)計(jì)提供 AXI4-Lite 時(shí)鐘和外部復(fù)位。您將在設(shè)計(jì)的頂級(jí) RTL 封裝中看到此步驟實(shí)例化。
一旦加載了比特流,就會(huì)在 PL 結(jié)構(gòu)中置位 EOS(啟動(dòng)結(jié)束)信號(hào)。此步驟對(duì)復(fù)位進(jìn)行管理,并會(huì)啟動(dòng)設(shè)計(jì)和應(yīng)用的運(yùn)行。
如前所述,該設(shè)計(jì)包含 MicroBlaze。
這將對(duì) RF 數(shù)據(jù)轉(zhuǎn)換器和時(shí)鐘的狀態(tài)和控制進(jìn)行管理。如果您右鍵單擊此處,您會(huì)看到有一個(gè)與之關(guān)聯(lián)的 ELF 文件。
這將嵌入對(duì)比特流中的設(shè)計(jì)和 Analyzer GUI 之間的通信進(jìn)行管理的程序。
您還將在此塊設(shè)計(jì)中看到 JTAG to AXI master IP。該 master IP 將分別管理 Source 和 Sink IP 的數(shù)據(jù)路徑。
我們利用 AXI SmartConnect 來(lái)管理 MicroBlaze/JTAG2AXI Master 與其他設(shè)計(jì)之間的接口。
您可以看到與 IP 示例設(shè)計(jì) AXI4-Lite 接口的連接:
還有一個(gè)時(shí)鐘塊。這需要塊輸出時(shí)鐘并使用 MMCM 將 AXI4-Stream 時(shí)鐘驅(qū)動(dòng)到各個(gè)塊。每個(gè) MMCM 都啟用了 AXI DRP 端口。這使我們能夠靈活地管理數(shù)據(jù)轉(zhuǎn)換器時(shí)鐘的變化,并在運(yùn)行時(shí)擴(kuò)展 AXI4-Stream 時(shí)鐘。
現(xiàn)在我們來(lái)深入了解一下帶有 IP 示例設(shè)計(jì)的層級(jí)結(jié)構(gòu)。
當(dāng)我們?cè)谥黜?xiàng)目中進(jìn)行配置時(shí),我們可以看到該層級(jí)包含 RF Data Converter IP、DAC 源和 ADC 接收器。這些塊是 RTL,如果右鍵單擊并選擇“Go to Source”,您可以更詳細(xì)地進(jìn)行查看。
RF-DAC 數(shù)據(jù)激勵(lì)塊由可以加載樣本的 128 kbits 的塊 RAM 組成,這些樣本接著會(huì)被發(fā)送到 RF 數(shù)據(jù)轉(zhuǎn)換核中啟用的 RF-DAC 通道。
實(shí)際上,DAC 源只是一個(gè)構(gòu)建 BRAM 的 XPM,可以使用新的激勵(lì)寫入 BRAM,也可以將其內(nèi)容傳輸?shù)?DAC。
激勵(lì)塊中的每個(gè)通道都會(huì)驅(qū)動(dòng) Zynq UltraScale+ RF 數(shù)據(jù)轉(zhuǎn)換器 IP 核上的 AXI4-Stream。由于每個(gè)轉(zhuǎn)換器最多可以有四個(gè) AXI4-Stream 接口,因此 DAC 源塊中最多有 16 個(gè)通道。每個(gè)啟用的 AXI4-Stream 接口都會(huì)被映射到從 DAC0開(kāi)始的連續(xù)通道。
DAC 激勵(lì)塊的寄存器映射包含在(PG269). 的表 56 中。同樣,可以在 Sink 塊中捕獲 ADC 流數(shù)據(jù)并進(jìn)行回讀。
Zynq UltraScale+ RF 數(shù)據(jù)轉(zhuǎn)換器上每個(gè)啟用的 AXI4-Stream 輸出數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)采集塊的單獨(dú)通道中。由于每個(gè)轉(zhuǎn)換器最多可以有四個(gè) AXI4-Stream 接口,因此數(shù)據(jù)捕獲塊中最多有 16 個(gè)通道。
啟用的 AXI4-Stream 接口會(huì)被映射到以 ADC0開(kāi)始的連續(xù)通道。
每個(gè)通道的存儲(chǔ)包括 128 kbit 的塊 RAM。捕獲塊的地址映射可以在(PG269)的表 55 中找到。
在我們實(shí)現(xiàn)它并生成比特流之前,您可以在以下文件中查看我們對(duì)設(shè)計(jì)的約束:
usp_rf_data_converter_0_example_design.xdc
這些約束可以創(chuàng)建主時(shí)鐘并會(huì)添加一些 PBlock 進(jìn)行平面布局設(shè)計(jì),以便激勵(lì)和捕獲存儲(chǔ)器能夠和數(shù)據(jù)轉(zhuǎn)換器塊放在相鄰的位置。
為了管理 axi_aclk 域和 AXI4-Stream 時(shí)鐘域之間跨時(shí)鐘域的靜態(tài)控制信號(hào),添加了一些時(shí)序例外。
例如,num_samples_reg 會(huì)提示數(shù)據(jù)激勵(lì)和示例設(shè)計(jì)中的捕獲塊要從 RF-ADC 塊獲取多少樣本或要發(fā)送多少樣本到 RF-DAC 塊。由于這是在控制路徑上,因此它與 axi_aclk 同步。然后,該設(shè)置會(huì)按照在 AXI4-Stream 時(shí)鐘上運(yùn)行的 Stimulus 和 Capture 塊中的地址計(jì)數(shù)器邏輯來(lái)使用。信號(hào)不應(yīng)經(jīng)常變化(如果有變化的話),因此在實(shí)現(xiàn)過(guò)程中將其作為定時(shí)路徑忽略不會(huì)有問(wèn)題。
在此階段,您可以將設(shè)計(jì)一直運(yùn)行到 write_bitstream。
您會(huì)看到時(shí)序條件已滿足。注意:Pblock 用于鎖定相關(guān)塊旁邊的捕獲和激勵(lì)內(nèi)存。
比特流的運(yùn)行路徑類似于以下路徑:
\ip_name\ip_name.runs\impl_1
現(xiàn)在我們已準(zhǔn)備就緒,可以下載此比特流了。我們擁有使用分析儀所需的一切,可以查看電路板上的數(shù)據(jù)轉(zhuǎn)換器了。
下次我們將通過(guò) ZCU1275 功能描述電路板來(lái)啟動(dòng)此比特流并探索“RF Analyzer GUI”的功能。
回頭見(jiàn)!
-
賽靈思
+關(guān)注
關(guān)注
32文章
1794瀏覽量
131334 -
RF
+關(guān)注
關(guān)注
65文章
3055瀏覽量
167114 -
比特流
+關(guān)注
關(guān)注
0文章
10瀏覽量
8144
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論