DSP 設(shè)計(jì)的實(shí)時(shí)分析
2007-07-25
作者:Scott Ferguson
隨著 FPGA 在數(shù)字通信設(shè)計(jì)領(lǐng)域(蜂窩基站、衛(wèi)星通信和雷達(dá))的高性能信號(hào)處理中成為可行的選擇,分析和調(diào)試工具必須包括能幫助您在最短時(shí)間內(nèi)得到電路最佳性能的新技術(shù)。
雖然現(xiàn)在已經(jīng)有多種連接仿真與射頻模擬信號(hào)" title="模擬信號(hào)">模擬信號(hào)的信號(hào)分析工具,但重要的要能夠測量您 FPGA 子電路中的信號(hào)質(zhì)量(譜圖、I-Q 星座圖、誤差矢量" title="誤差矢量">誤差矢量幅度[EVM])。安捷倫科技把它的 89601A 矢量信號(hào)分析(VSA)軟件與邏輯分析儀" title="邏輯分析儀">邏輯分析儀產(chǎn)品線(1680、1690 和 16900 家族)鏈接構(gòu)成數(shù)字 VSA 工具。當(dāng)這一工具與Xilinx? ChipScope? Pro 及 Agilent 跟蹤內(nèi)核一起使用時(shí),您就能快速和容易地對(duì)您 FPGA 設(shè)計(jì)內(nèi)的任何地方進(jìn)行信號(hào)分析。
我們將在本文中說明這一組合工具是如何工作的 —— 以及如何幫助您從 Xilinx 基 DSP 電路獲取最多。
數(shù)字 VSA
VSA 用基于快速傅立葉變換(FFT)的數(shù)據(jù)處理提供時(shí)域和頻域顯示及測量組合。圖 1 是典型的 VSA 顯示。顯示是極為靈活和可配置的,其主要內(nèi)容包括 I-Q 星座圖(左上)、幅度譜(左下)、誤差矢量(右上)和測量結(jié)果(右下)。在測量結(jié)果部分顯示 EVM。該值是調(diào)制信號(hào)質(zhì)量的主要指示器。
通過從捕獲數(shù)據(jù)中抽取 I-Q 符號(hào)計(jì)算EVM;符號(hào)是由 QPSK、QAM 或其它調(diào)制方案定義星座圖中的網(wǎng)格點(diǎn)。在抽取被測信號(hào)后,即可使用符號(hào)序列建立被稱為“參考”信號(hào)的理想(理論上完美)信號(hào)。把各被測信號(hào)與參考信號(hào)比較,差值稱為誤差矢量(誤差包含 I 和 Q,或幅度和相位成分)。組合各次捕獲的誤差矢量,即完成一次 EVM 測量。
屏幕圖 |
圖 1 - VSA 顯示
?
雖然這一分析軟件的最初目的是用于分析模擬射頻信號(hào),但它是在獨(dú)立于硬件的 PC 基軟件包中完成的開發(fā)。由于 Agilent 邏輯分析儀也是 PC 基的,因此把 VSA 軟件擴(kuò)展至鏈接邏輯分析儀是很容易的。
數(shù)字基帶和 IF 信號(hào)是模擬信號(hào)的表述形式。與其用儀器通過把信號(hào)數(shù)字化執(zhí)行 FFT 分析(如射頻信號(hào)分析儀),還不如從一開始就使用數(shù)字信號(hào)。這些模擬信號(hào)的數(shù)字版本可在邏輯分析儀中以圖形風(fēng)格的波形顯示,這很像是示波器的顯示(如 圖 2 所示)。
正如您所看到的,當(dāng)對(duì)總線同步采樣,并且采樣率符合Nyquist 要求時(shí),邏輯分析儀就能捕獲到“剛逝”或“即至”模擬信號(hào)的足夠精確版本。
屏幕圖 |
圖 2 – 數(shù)字總線的圖形顯示
FPGA 動(dòng)態(tài)探頭
當(dāng) FPGA 動(dòng)態(tài)探頭與ChipScope Pro 分析儀一道工作時(shí),即可訪問 DSP 設(shè)計(jì)的任何部分,并且不需要重編譯。在圖 3 中,經(jīng)簡化的數(shù)字無線電發(fā)送器設(shè)計(jì)被接到 Agilent 跟蹤內(nèi)核(ATC2)。該內(nèi)核是一個(gè)開關(guān) MUX,它通過ChipScope Pro 內(nèi)核插入器融入設(shè)計(jì)中,通常為后綜合。在內(nèi)核插入期間,您可選擇連接至跟蹤內(nèi)核的內(nèi)部網(wǎng)絡(luò),以及將用于接至 MUX 輸出的物理焊盤" title="焊盤">焊盤。這些焊盤再通過電路板的走線接到邏輯分析儀探頭。
邏輯分析儀通過 JTAG 控制 FPGA(下載位圖文件和選擇線排)。在您選擇新線排時(shí),邏輯分析儀自動(dòng)重配置自身,以符合現(xiàn)在連接至探頭的網(wǎng)名。
設(shè)計(jì)例子 - QAM16 調(diào)制器
通過當(dāng)?shù)?/SPAN> Xilinx DSP專家 FAE 的幫助,我們制作了一塊演示板,用以配合把 Xilinx 系統(tǒng)發(fā)生器用于 DSP 的小 Virtex(tm)-II 部件(XC2 V250-FG256)。這一工具能快速和容易地建立 DSP 設(shè)計(jì)。該設(shè)計(jì)(如 圖 3 中的框圖所示)包括 25 MHz 符號(hào)編碼器;帶 24 抽頭和 4X 內(nèi)插的根升余弦濾波器(輸出運(yùn)行于 100MHz);以及帶有 25MHz 本振" title="本振">本振的 IF 調(diào)制級(jí)。
示意圖 |
圖 3 –數(shù)字總線的圖形顯示
把 ATC2 內(nèi)核集成至系統(tǒng)發(fā)生器設(shè)計(jì)中
在把該項(xiàng)設(shè)計(jì)編譯至 VHDL 后,我們插入 ATC2 內(nèi)核。為使邏輯分析儀顯示上的信號(hào)名更合理,我們要對(duì) VHDL 做一些手動(dòng)編輯(您可通過在系統(tǒng)發(fā)生器中仔細(xì)選擇網(wǎng)名而跳過這一步驟)。然后把絕大多數(shù)感興趣的網(wǎng)絡(luò)作為來自頂級(jí)目標(biāo)的輸出端口連接,要讓這些網(wǎng)名足夠短,以適應(yīng)邏輯分析儀的屏幕。
為了使用 FPGA 動(dòng)態(tài)探頭把網(wǎng)絡(luò)接到各輸出端口時(shí),一項(xiàng)好的技巧是使用VHDL 中的“keep” 屬性。由于您在綜合之前尚未在設(shè)計(jì)中增加ATC2 內(nèi)核,許多網(wǎng)絡(luò)并未被優(yōu)化,因?yàn)樗鼈儧]有接到任何地方。在 VHDL中使用“keep”的語法如:
attribute keep : string;
attribute keep of i_symbol: signal is "true";
attribute keep of q_symbol: signal is "true";
我們用 4 組線排建立 ATC 內(nèi)核,每一線排為 48 個(gè)信號(hào)。使用 ATC2 內(nèi)核的 2X TDM 選項(xiàng)(各焊盤上任一時(shí)間有兩個(gè)時(shí)間片信號(hào)),這只要求 FPGA 上的 25 個(gè)封裝焊盤(1 個(gè)用于時(shí)鐘,24 個(gè)用于數(shù)據(jù))。這樣就能訪問 192 個(gè)信號(hào)。而實(shí)際上我們只需要觀察 92 個(gè)信號(hào):
? ??I-Q 符號(hào),每一符號(hào) 8 位 (16)
? ??I-Q 濾波器輸出,每一輸出 24 位 (48)
? ??IF 本振正弦和余弦,每一信號(hào) 2 位 (4)
? ??組合 IF 信號(hào) (24)
具有 24 位 I 和 Q 信號(hào)的 RRC 濾波器輸出是最大要求,它確定了所需要的引腳數(shù)。如果不能實(shí)現(xiàn) 24 個(gè)引腳,您可去掉最低有效位,這樣做會(huì)損失一定的動(dòng)態(tài)范圍,但仍能觀察到信號(hào)。
時(shí)域、邏輯和 VSA 測量
邏輯分析儀用同步采樣(或“狀態(tài)模式”)捕獲 ATC2 內(nèi)核的輸出。這意味著要在ATC2 的各輸出時(shí)鐘沿上采樣數(shù)據(jù)。在我們?cè)O(shè)計(jì)的電路中有兩個(gè)時(shí)鐘率 —— 25MHz 用于 RRC 濾波器前的符號(hào)數(shù)據(jù),100MHz 用于該濾波器后的所有元件。由于ATC2 內(nèi)核只支持一內(nèi)核一時(shí)鐘,對(duì)于調(diào)試存在兩種選擇方案:
? ??使用兩個(gè)內(nèi)核,一個(gè)時(shí)鐘率用一個(gè)內(nèi)核
? ??一個(gè)內(nèi)核用于較快的時(shí)鐘率,對(duì) 25MHz 總線進(jìn)行過采樣
由于二個(gè)時(shí)鐘具有相關(guān)性 —— 一個(gè)時(shí)鐘率是另一個(gè)的整數(shù)倍? —— 因此我們可對(duì)較慢的總線作過采樣。如果不想進(jìn)行過采樣,則可把邏輯分析儀設(shè)置為保存每四個(gè)樣本中的第四個(gè)樣本,從而能以每 25MHz 時(shí)鐘周期一個(gè)樣本的精度捕獲 25MHz 總線。
由于 MUX 中有額外可用的信號(hào),因此能對(duì)某些感興趣的信號(hào)進(jìn)行雙倍的探測。例如在濾波器前的線排 0 中的 I 和 Q 符號(hào),以及 RRC 濾波器后的 I 成份。這意味著我們能在邏輯分析儀中進(jìn)行某些時(shí)域分析,以測量濾波器群時(shí)延,如 圖 4 所示。兩個(gè)標(biāo)記指示通常的信號(hào)特征:寬而平坦的頂部,標(biāo)記測量示出其時(shí)間間隔為 250 ns。
在探測了電路的感興趣部分后,我們對(duì)信號(hào)執(zhí)行矢量信號(hào)分析,并測量RRC 濾波器和 IF 調(diào)制級(jí)的質(zhì)量。
屏幕圖 |
圖 4 – 濾波器群時(shí)延測量
為了解濾波前的 QAM16 I - Q 符號(hào)(如圖 5 所示),您可觀看 16 點(diǎn)的 QAM 星座圖(左上圖)。每一符號(hào)一個(gè)點(diǎn),星座點(diǎn)間的連線是直線。譜圖(左下圖)中心在 0Hz 處,鄰道中的 25MHz 通帶有功率存在。射頻信號(hào)中的鄰道功率是不需要的,這也正是采用基帶濾波器的理由。
屏幕圖 |
圖 5 – 未濾波的 QAM16 符號(hào)
通過選擇ATC2 內(nèi)核中的不同線排(由邏輯分析儀控制),您可分析基帶濾波器后面的IQ 信號(hào),如 圖 6 所示?,F(xiàn)在的譜圖有離開的邊帶,測量結(jié)果顯示(右下象限)示出EVM 為 0.5%。當(dāng)下次您的射頻研制組抱怨基帶設(shè)計(jì)中的錯(cuò)誤時(shí),您可示出這一測量結(jié)果(因?yàn)樗麄兿喈?dāng)熟悉),從而證明這并非是您濾波器故障所致。
屏幕圖 |
圖 6 – 經(jīng)濾波的 IQ 基帶數(shù)據(jù)
在許多數(shù)字無線電設(shè)計(jì)中,現(xiàn)在會(huì)把該 IQ 信號(hào)轉(zhuǎn)換成模擬信號(hào)。但我們?cè)谙嗤?/SPAN> FPGA 內(nèi)執(zhí)行數(shù)字的 IF 調(diào)制。切換 FPGA 動(dòng)態(tài)探頭中的線排使我們能夠訪問數(shù)字 IF(再次說明,沒有另外的綜合、布放和路由步驟),如 圖 7 所示。注意譜圖和 I-Q 星座圖是大致相同的,只是現(xiàn)在的中心大約位于 25MHz 處。EVM 稍高一些,表明您可能需要較高質(zhì)量的本振,或另增一級(jí)濾波器。
屏幕圖 |
圖 7 – 數(shù)字 IF 信號(hào)
結(jié)論
您可通過 Xilinx 系統(tǒng)發(fā)生器、ChipScope Pro 分析儀與 Agilent 邏輯分析儀及 Agilent VSA 軟件的組合使用,對(duì) Xilinx FPGA 內(nèi)部的數(shù)字基帶和 IF 信號(hào)作實(shí)時(shí)和深度的分析。它將節(jié)省您的時(shí)間,消除對(duì)仿真與真實(shí)硬件間差異的疑問。它也能幫助您與從事射頻設(shè)計(jì)的同事溝通,無論何種信號(hào)形式(模擬、數(shù)字、基帶、射頻),您們有著共同的語言,并使用著同樣的分析軟件。