開(kāi)放式FPGA可增加測(cè)試的靈活性
目前大多數(shù)儀器采用封閉式FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和固定的固件實(shí)現(xiàn)儀器的功能。如果你曾見(jiàn)過(guò)示波器的拆解,你也許見(jiàn)過(guò)里面的FPGA。FPGA可以增加測(cè)試儀器的處理能力,如果你曾使用過(guò)儀器的開(kāi)放式FPGA,你就會(huì)知道可以將自定義的測(cè)試功能編程進(jìn)儀器中。
儀器供應(yīng)商早就了解FPGA的好處,并且一直在充分發(fā)揮FPGA獨(dú)特的處理能力優(yōu)勢(shì)來(lái)豐富的功能,比如:儀器
● 能夠在示波器上完成預(yù)觸發(fā)捕獲
● 能夠利用信號(hào)處理功能在矢量信號(hào)分析儀上產(chǎn)生I和Q數(shù)據(jù)
● 能夠在高速數(shù)字儀器上實(shí)時(shí)進(jìn)行圖案發(fā)生和矢量比較
測(cè)試設(shè)備制造商現(xiàn)在開(kāi)始向用戶(hù)開(kāi)放FPGA以提供更多特殊應(yīng)用的優(yōu)化。為了幫助理解為何這是一個(gè)好的轉(zhuǎn)變,下面列出了在測(cè)試應(yīng)用中使用FPGA的一些關(guān)鍵特性:
● 確定性,實(shí)時(shí)處理
● 真正并行的執(zhí)行
● 可重配置
● 低延時(shí)
更進(jìn)一步講,利用開(kāi)放式FPGA可以實(shí)現(xiàn)哪些以前不能實(shí)現(xiàn)的功能呢?為了描述這些可能性,下面將介紹一些利用開(kāi)放式FPGA的常見(jiàn)測(cè)試應(yīng)用。
測(cè)試系統(tǒng)加速
在大批量生產(chǎn)線的最終產(chǎn)品測(cè)試中,每一秒的測(cè)試時(shí)間都很寶貴。當(dāng)產(chǎn)品測(cè)試速度與生產(chǎn)速度相匹配時(shí),生產(chǎn)線的效率就是最高的。當(dāng)兩者速度不匹配時(shí),就必須采用創(chuàng)新的技術(shù)來(lái)縮短測(cè)試時(shí)間。傳統(tǒng)方法需要使用多臺(tái)分開(kāi)的臺(tái)式儀器,它們通過(guò)以太網(wǎng)、USB或GPIB連接到一臺(tái)PC主機(jī)。這種測(cè)試的速度相對(duì)較慢,因?yàn)榇郎y(cè)設(shè)備的控制、測(cè)量以及通過(guò)數(shù)據(jù)總線的處理是分開(kāi)進(jìn)行的。另外一種方法是使用開(kāi)放式FPGA來(lái)加速這個(gè)過(guò)程,如圖1所示。
圖1:在測(cè)試儀器中,開(kāi)放式FPGA可以增加諸如觸發(fā)和后處理等功能。
與使用外部通信總線不同,F(xiàn)PGA可以使用高速總線(如PXIe)連接儀器,并通過(guò)其配置端口(如I2C、SPI或另外的控制總線)連接待測(cè)設(shè)備(DUT)。這種應(yīng)用中的FPGA可以控制待測(cè)設(shè)備,觸發(fā)其它儀器開(kāi)始捕獲樣本,甚至將這些樣本處理成對(duì)主機(jī)來(lái)說(shuō)有意義的結(jié)果。
低時(shí)延是加速這類(lèi)應(yīng)用的一個(gè)關(guān)鍵因素。FPGA沒(méi)有操作系統(tǒng),但所有的邏輯都是用硬件實(shí)現(xiàn),并且這些硬件工作的時(shí)鐘速率很高。這意味著響應(yīng)只需花一個(gè)時(shí)鐘周期捕獲、一個(gè)時(shí)鐘周期處理和一個(gè)時(shí)鐘周期輸出結(jié)果。當(dāng)時(shí)鐘速率為200MHz(時(shí)鐘周期為4ns)時(shí),完整的響應(yīng)時(shí)間只需12ns。由于FPGA的確定性特點(diǎn),12ns的響應(yīng)時(shí)間不是只有一次,而是每次都是。因此FPGA不僅可以避免與使用主機(jī)有關(guān)的延時(shí),而且能夠最大限度地減小主機(jī)處理時(shí)的非確定性延時(shí)。
協(xié)議的處理
今天,并不是所有數(shù)字和MEMS設(shè)備都能用已知結(jié)果矢量進(jìn)行測(cè)試。就拿脈沖密度麥克風(fēng)(PDM)來(lái)說(shuō),如果給它一個(gè)激勵(lì)信號(hào),你不能期望每次測(cè)試得到的比特流是完全相同的,這是因?yàn)镻DM是模擬設(shè)備。為了從這些類(lèi)型的待測(cè)設(shè)備獲得有意義的結(jié)果,在比較結(jié)果之前你首先需要用其特定的協(xié)議對(duì)數(shù)字流進(jìn)行解碼。借助開(kāi)放式FPGA,你可以在FPGA上配置你的測(cè)試系統(tǒng)來(lái)實(shí)現(xiàn)PDM協(xié)議,不必再傳至CPU進(jìn)行解釋。進(jìn)一步拓展這個(gè)概念,今天你可以配置這個(gè)FPGA實(shí)現(xiàn)PDM協(xié)議,明天你又可以重新配置同樣這個(gè)FPGA實(shí)現(xiàn)不同的協(xié)議,比如用于測(cè)試數(shù)字溫度傳感器、加速度計(jì)或MEMS設(shè)備的協(xié)議。
在圖2中,協(xié)議不是在CPU上實(shí)現(xiàn),而是在FPGA上實(shí)現(xiàn)。正因?yàn)榇耍瑴y(cè)試系統(tǒng)現(xiàn)在自身就可以支持快速握手腳本,適應(yīng)精確等待周期等協(xié)議行為,并根據(jù)通信內(nèi)容做出決策。這種方法不僅能讓你從待測(cè)設(shè)備接收更高層數(shù)據(jù),比如在PDM麥克風(fēng)場(chǎng)合中解碼的模擬數(shù)據(jù),而且允許你用更高層命令編寫(xiě)測(cè)試腳本。
圖2:FPGA可以用來(lái)處理協(xié)議,知曉總線使用的協(xié)議內(nèi)容。
評(píng)論