李石林,段吉海,晉良念,謝躍雷
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西 桂林 541004)
數(shù)字射頻存儲(chǔ)器(DRFM)是一種微波和射頻存儲(chǔ)系統(tǒng),它以數(shù)字存儲(chǔ)和高速采樣為技術(shù)基礎(chǔ),一般用于射頻和微波信號(hào)的存儲(chǔ)及轉(zhuǎn)發(fā),主要應(yīng)用于電子對(duì)抗和雷達(dá)等領(lǐng)域。它主要由射頻前端部分和數(shù)據(jù)處理部分組成,射頻部分主要包括下變頻模塊和上變頻模塊。本文主要闡述基于FPGA的數(shù)字射頻存儲(chǔ)器數(shù)據(jù)處理部分的硬件設(shè)計(jì)。數(shù)據(jù)處理部分的設(shè)計(jì)思想主要是通過充分利用FPGA內(nèi)部的豐富資源和高速時(shí)鐘管理資源,與其他件器件如DDR2,ADC,DAC,MUC通過專用接口與之相連,使FPGA作為數(shù)據(jù)傳遞的橋梁和選擇數(shù)據(jù)通路的控制中心[1]。數(shù)字射頻存儲(chǔ)器的數(shù)據(jù)處理部分可以完成數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)回放及上位機(jī)通信等不同功能[1]。
該設(shè)計(jì)的出發(fā)點(diǎn)就是為了實(shí)現(xiàn)把1個(gè)寬頻基帶信號(hào)進(jìn)行定時(shí)存儲(chǔ),即在數(shù)據(jù)處理部分實(shí)現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)回放及上位機(jī)通信等功能。該系統(tǒng)以EP3C40F484I7為核心,由存儲(chǔ)模塊、AD/DA轉(zhuǎn)換模塊、MUC控制模塊及電源模塊等構(gòu)成。設(shè)計(jì)思想是射頻信號(hào)經(jīng)射頻前端模塊下變頻后,變成I/Q兩路模擬基帶信號(hào),送給AD9640進(jìn)行模數(shù)轉(zhuǎn)換,然后送給FPGA進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)緩存,而后把數(shù)據(jù)送到DDR2中進(jìn)行定時(shí)存儲(chǔ),存儲(chǔ)時(shí)間通過上位機(jī)設(shè)定。再把數(shù)據(jù)調(diào)出送給DAC5681Z進(jìn)行數(shù)模轉(zhuǎn)換。最后射頻前端把數(shù)據(jù)進(jìn)行上變頻重新發(fā)生出去。從而實(shí)現(xiàn)上述應(yīng)用要求,系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)
本文采用ADI公司的AD9640作為模數(shù)轉(zhuǎn)換芯片。AD9640為雙通道,是1款高度集成的14位高速A/D變換芯片。其具有 80 MS/s(兆采樣/秒),105 MS/s,125 MS/s,150 MS/s 4種速度級(jí)別可供選擇。AD9640供電電為1.8 V模擬電源,輸出電平可以設(shè)置為1.8~3.3 V COMS電平或1.8 V LVDS電平,支持SPI控制[2]。它主要應(yīng)用在通信系統(tǒng)、智能天線系統(tǒng)、I/Q解調(diào)系統(tǒng)、多模式數(shù)字接收機(jī)、寬頻數(shù)據(jù)應(yīng)用等方面[2]。數(shù)模轉(zhuǎn)換部分選用 TI公司的DAC5862Z作為數(shù)模轉(zhuǎn)換芯片[3],DAC5682Z是1款雙通道、16位、1GSPS DAC,具有寬帶LVDS數(shù)據(jù)輸入、片內(nèi)集成2x/4x插值濾波器、板上時(shí)鐘乘法器和內(nèi)部電壓基準(zhǔn)。DAC5682Z在線性度、噪聲、串?dāng)_及PLL相位噪聲等方面都有較好的性能。它主要應(yīng)用在寬帶無線接入技術(shù)、電纜調(diào)制解調(diào)器終端系統(tǒng)、WiMAX/802.16、蜂窩基站等方面。
該設(shè)計(jì)輸入的模擬信號(hào)是帶寬高達(dá)48 MHz的I/Q兩路基帶信號(hào),根據(jù)奈奎斯特采樣定理和FPGA鎖相環(huán)提供的時(shí)鐘情況選用采樣速率為125 MS/s的AD芯片,信號(hào)傳輸中采用的LVDS電平傳輸模式,LVDS電平模式可以極大程度地抑制共模噪聲。AD9640在設(shè)計(jì)中的作用就是將I/Q兩路基帶轉(zhuǎn)換成LVDS電平模式的數(shù)字基帶信號(hào),AD9640的啟動(dòng)和控制通過 SPI接口來設(shè)置。DAC5682Z用來把延時(shí)處理好的數(shù)據(jù)轉(zhuǎn)換成模擬基帶信號(hào),系統(tǒng)中的核心處理芯片選用EP3C40F484I7。由于采用LVDS電平模式進(jìn)行傳輸,而CycloneIII芯片在進(jìn)行LVDS 接口設(shè)計(jì)時(shí)芯片左右bank 上,也就是1,2,5,6bank,設(shè)計(jì)了“專用輸出緩沖區(qū)”,即左右bank發(fā)送差分信號(hào)不需要外接匹配電阻,結(jié)合DDR2對(duì)速度的要求,把FPGA左邊bank用來作為AD9640的接口端,右邊bank作為DAC5682Z接口端。采用CycloneIII芯片來傳輸差分信號(hào)時(shí)有兩點(diǎn)需要特別注意:1)FPGA 上下bank,即3,4,7,8 bank,沒有“專用輸出緩沖區(qū)”,如果要做差分信號(hào)輸出使用,需要匹配電阻網(wǎng)絡(luò);2)FPGA LVDS接口輸入差分信號(hào)時(shí),無論哪個(gè)bank,都需要100 Ω匹配電阻。這個(gè)電阻一定要在最遠(yuǎn)的接收器輸入端,最好使用高精度的貼片電阻跨界在差分線上。AD9640和DAC5682Z的差分時(shí)鐘由FPGA的PLL提供,需注意的是DAC5682Z為優(yōu)化PLL電路在LVDS時(shí)鐘內(nèi)部接口電路中沒有設(shè)計(jì)終端匹配電阻(DAC5682Z的LVDS寬帶數(shù)據(jù)輸入內(nèi)部電路中有終端匹配電阻)。在布線時(shí)有如下要求:1)時(shí)鐘信號(hào)線、輸入端信號(hào)線盡量等長(zhǎng),以減少時(shí)延誤差和時(shí)鐘抖動(dòng)。2)時(shí)鐘線盡量短,100 Ω的終端匹配電阻和交流耦合電容應(yīng)盡量靠近輸時(shí)鐘輸入端引腳,對(duì)時(shí)鐘線盡量采用保護(hù)地,需要特別注意的是同層或相鄰層不能有走線與時(shí)鐘線在位置上近距離平行,時(shí)鐘線路優(yōu)先采用單點(diǎn)直到的主動(dòng)方法。3)采用數(shù)字部分與模擬部分單點(diǎn)接地,單點(diǎn)接地的地方在AD/DA芯片變換的地方,這樣可以保證數(shù)字信號(hào)線參考地的回路路徑較短,阻抗連續(xù)。圖2為AD9640與DAC5682Z外圍接口電路圖。
圖2 AD9640與DAC5682Z外圍接口電路圖
該設(shè)計(jì)的主要硬件指標(biāo)就是能把1個(gè)射頻信號(hào)進(jìn)行定時(shí)存儲(chǔ)一段設(shè)計(jì),存儲(chǔ)的最大時(shí)間為1 s。由于模數(shù)轉(zhuǎn)換芯片是14位,采樣速率為125 MS/s。即其1 s的轉(zhuǎn)換數(shù)據(jù)達(dá)到了1.75 Gbyte,也就是說如果要使差分信號(hào)延時(shí)1 s就需要向2片大于1.75 Gbyte的存儲(chǔ)芯片寫數(shù)據(jù)。系統(tǒng)中數(shù)據(jù)輸入流是連續(xù)不斷的,F(xiàn)PGA必須對(duì)數(shù)據(jù)進(jìn)行讀寫同時(shí)操作,也就是進(jìn)行乒乓操作,則需要4片大于1.75 Gbyte的存儲(chǔ)芯片。為了解決設(shè)計(jì)中要求對(duì)高速和海量數(shù)據(jù)緩存的問題,該系統(tǒng)選用2 Gbyte DDR2芯片MT47H128M16-16 Meg x16 x 8 banks作為海量存儲(chǔ)系統(tǒng)的的存儲(chǔ)芯片。
DDR2是由JEDEC(電子設(shè)備工程聯(lián)合委員會(huì))定義的新下一代內(nèi)存技術(shù)標(biāo)準(zhǔn),是DDR內(nèi)存的換代產(chǎn)品。相對(duì)應(yīng)DDR,DDR2擁有更少的能耗和發(fā)熱量,更高的密度和頻率,更好的高速效能,擁有2倍于DDR的預(yù)讀取能力(即4位預(yù)存取技術(shù)),能以4倍于外部總線的速度進(jìn)行數(shù)據(jù)的讀取,及4倍于內(nèi)部控制總線的速度運(yùn)行。此外,DDR2還采用了離線驅(qū)動(dòng)調(diào)制(OCD,off-Chip Drive)、片內(nèi)終結(jié)器ODT(On-Die Termination)、前置CAS(Post Column Address Strobe)3項(xiàng)新技術(shù),提升了內(nèi)存帶寬的利用率。因此,DDR2已經(jīng)取代DDR成為主流存儲(chǔ)器配置[4]。
該設(shè)計(jì)選用EP3C484I7作為DDR2的控制器。采用2個(gè)IP核對(duì)4片DDR2進(jìn)行控制。所以每2片DDR2以地址控制線共用、數(shù)據(jù)線獨(dú)立的方式進(jìn)行連接。由于FPGA Top和Bottom的bank管腳速度比Right和Left的bank管腳速度快。該設(shè)計(jì)把4片DDR2分別掛在FPGA的Top和Bottom的4個(gè)bank上。DDR2中若干條數(shù)據(jù)線(DQ)伴隨個(gè)1個(gè)采用時(shí)鐘信號(hào)(DQS)進(jìn)行采樣,與FPGA連接時(shí)FPGA內(nèi)部須以若干個(gè)DQ和1個(gè)DQS為最小單位進(jìn)行分組。EP3C484I7 bank的DQ分配情況如表1所示(x8組表示1個(gè)DQS和8個(gè)DQ組成的1個(gè)組,表格中的“4”表示FPGA的每邊都支持4個(gè)x8組,而每邊有2個(gè)bank,即每個(gè) bank 擁有2 個(gè) x8 組)[5]。
表1 FPGA DQ分布
由于設(shè)計(jì)中采用Top和Bottom邊的bank,下面利用FPGA Top上的2個(gè)bank介紹DDR2的設(shè)計(jì)的思想及注意事項(xiàng)。Top的2個(gè)bank為bank7和bank8,bank7中有DQS0T,DQS2T和DQS4T,若干個(gè)DQ和1個(gè)DQS組成1個(gè)組,但是這里要特別注意DQS0T沒有自己的DQ,bank8擁有DQS3T和DQS5T。在設(shè)計(jì)DDR2接口電路時(shí),首先要知道DDR2分為x8,x16,x32這3種架構(gòu)。在設(shè)計(jì)x8架構(gòu)的DDR2接口電路時(shí),F(xiàn)PGA中的DQS4T和DQS2T各有8個(gè)自己的DQ,DQS3T和DQS5T各有9個(gè)屬于自己的DQ,DQS0T沒有自己的DQ。對(duì)于x16架構(gòu)的DDR2,F(xiàn)PGA中的DQS3T和DQS5T有18個(gè)屬于自己的DQ。而設(shè)計(jì)x32架構(gòu)的DDR2接口電路時(shí),F(xiàn)PGA bank7和bank8中的DQS5T共有36個(gè)屬于自己的DQ[4]。
該設(shè)計(jì)中使用的DDR2芯片為鎂光公司的MT47H128M16–16 Meg x16 x 8 banks,其芯片的容量大小128 M ×16 bit,即2 Gbit,每1 片分為8 個(gè)bank,每個(gè)bank 為16 M×16 bit。這里需要特別注意的是此處×16,并不是設(shè)計(jì)中要用x16架構(gòu)的DDR2,如果設(shè)計(jì)時(shí)按照FPGA上x16架構(gòu)的管腳去設(shè)計(jì),就會(huì)出錯(cuò)。雖然該DDR2是16位的帶寬,但其卻有2個(gè)DQS,分別是LDQS和UQDS,也就是說其實(shí)2個(gè)DQS分別采樣低8位和高8位數(shù)據(jù)[5]。所以這里只能使用x8架構(gòu)來設(shè)計(jì)接口電路,DDR2接口電路圖如圖3所示。在DDR接口電路設(shè)計(jì)中,DQS和DQ需要有專用引腳,DM(寫數(shù)據(jù)選擇)也需要專有引腳進(jìn)行連接。DDR2中DM為在數(shù)據(jù)信號(hào)(DQ)屏蔽位,DM是以8 bit為單位起作用的,所以理論上只要有8個(gè)DQ便會(huì)有1個(gè)DM。FPGA的Top邊bank中DM的分配如表2所示[5]。
圖3 DDR2接口電路圖
確定DDR2架構(gòu),即確定了DDR2和FPGA的DQS,DM的連接方式。DQ需注意的是DDR2接口采用1.8V的SSTL電平進(jìn)行數(shù)據(jù)傳輸,輸入信號(hào)需要和1個(gè)高精度的參考電壓(VREF)進(jìn)行比較輸出后才被認(rèn)為是實(shí)際輸入[6]。因此DDR2所在FPGA的bank電壓必須是1.8 V,還要使用該bank上的VREF作為參考電壓,F(xiàn)PGA的每個(gè)bank上都有自己的VREF。在電源芯片選擇時(shí)需選高品質(zhì)的電源芯片(該設(shè)計(jì)中采用高精度線性電源芯片TPS51100D提供參考電壓)用來向DDR2的VREF和FPGA的VREF提供電源。DDR2的地址線和控制線在FPGA上沒有專用引腳,按自己的走線要求可以任意選用空余的I/O口進(jìn)行設(shè)計(jì)。DDR2接口電路設(shè)計(jì)管腳分配時(shí)建議使用Quartus II軟件自動(dòng)分配管。DDR2的時(shí)鐘線盡量要求短,所以可以選擇臨近的差分I/O管腳當(dāng)作DDR2的時(shí)鐘。
表2 FPGA的Top邊bank中DM的分配
在設(shè)計(jì)中需注意,DDR2 SDRAM的ODT技術(shù),ODT是DDR2內(nèi)部的終端使能匹配電阻,使用ODT管腳時(shí),它對(duì) DQ[15:0],LDM,UDM,LDQS,LDQS#,UDQS 和 UDQS#實(shí)現(xiàn)了內(nèi)部匹配,內(nèi)部終端阻抗值可以有多種選擇,如0 Ω,50 Ω,75 Ω,150 Ω 等[3]。并且內(nèi)存控制器可以根據(jù)系統(tǒng)內(nèi)干擾信號(hào)的強(qiáng)度自動(dòng)調(diào)整阻值的大小。需要注意地址和控制信號(hào)線需要外部的匹配終結(jié)。
DDR2在PCB設(shè)計(jì)時(shí),由于它是高速走線,必須要考慮走線時(shí)的信號(hào)完整性,為滿足合理的設(shè)計(jì)要求,設(shè)計(jì)中一般按下面的形式進(jìn)行分組[5]:
1)DQ[0:7],DM3B,DQS3B 此10根線為1組,在同一層進(jìn)行布線;
2)DQ[8:15],DM5B,DQS5B 此10根線為1組,在同一層進(jìn)行布線;
3)DQ[16:23],DM2B,DQS2B 此10根線為1組,在同一層進(jìn)行布線;
4)DQ[24:31],DM4B,DQS4B 此10根線為1組,在同一層進(jìn)行布線;
5)DQ[32:39],DM2T,DQS2T 此 10 根線為1組,在同一層進(jìn)行布線;
6)DQ[40:47],DM4T,DQS4T 此 10 根線為1組,在同一層進(jìn)行布線;
7)DQ[48:55],DM3T,DQS3T 此10 根線為1 組,在同一層進(jìn)行布線;
8)DQ[56:63],DM5T,DQS5T 此10 根線為1 組,在同一層進(jìn)行布線。
上面8組,1)和2)為1片DDR2的管腳;3)和4)為1片DDR2的管腳,分配在FPGA Bottom邊的bank3和bank4中;5)和6)為1片DDR2的管腳;7)和8)為1片DDR2的管腳,分配在FPGA Top邊的bank7和bank8中,接口電路如圖3所示。PCB設(shè)計(jì)時(shí)需要注意如下要求:1)在組內(nèi),要求線與線之間的誤差控制在10 mil(1 mil=10-3in=2.54×10-3cm)以內(nèi),組與組之間的要求誤差控制在20 mil以內(nèi)。2)布線時(shí)FPGA里的DQS和DM這2個(gè)管腳不可以替換,DQS專屬DQ可以相互換動(dòng)。3)布線時(shí)先布重要的線,對(duì)DDR2的布線順序一般先布數(shù)據(jù)線(數(shù)據(jù)線盡量短),即上面8組(每組10根線),再布地址和控制線,然后布時(shí)鐘線,最后布電源線。4)所有信號(hào)走線都應(yīng)有完整的參考平面,一般重要信號(hào)線放在鄰近地平面那層,以地平面作為參考平面,不要跨越平面進(jìn)行布線,要確保信號(hào)回流時(shí)完整。該設(shè)計(jì)用5 mil大小的線布信號(hào)線、時(shí)鐘線和數(shù)據(jù)線,組內(nèi)線與線之間的間距為10 mil,與其他DDR2數(shù)據(jù)線間距為15 mil,地址控制線的要求與數(shù)據(jù)一樣。
MUC主要用來做485或者232通信,以及與FPGA之間的通信[7]。其工作原理是通過上位機(jī)(PC機(jī))發(fā)出的命令首先給下位機(jī)(MUC),下位機(jī)再根據(jù)此命令解釋成相應(yīng)時(shí)序信號(hào)直接控制相應(yīng)設(shè)備。即通過上位機(jī)發(fā)出存儲(chǔ)時(shí)間的命令給單片機(jī),然后單片機(jī)通過SPI接口把相應(yīng)時(shí)序傳輸給FPGA,從而達(dá)到定時(shí)存儲(chǔ)的目的。下位機(jī)不時(shí)讀取設(shè)備狀態(tài)數(shù)據(jù),反饋給上位機(jī)。MUC接口電路如圖4所示。
圖4 MUC接口電路
本文詳細(xì)介紹了一種基于EP3C40F484I7為核心的超大容量存儲(chǔ)系統(tǒng)的設(shè)計(jì)思想,以及設(shè)計(jì)中需要注意的問題。系統(tǒng)電路板現(xiàn)已成功配置和運(yùn)行。系統(tǒng)測(cè)試時(shí)輸入帶寬為8 MHz的QAM信號(hào),AD/DA采樣時(shí)鐘選擇為125 MS/s,DDR2能存儲(chǔ)信息最長(zhǎng)時(shí)間達(dá)到了1.14 s,結(jié)果證明系統(tǒng)完全能達(dá)到設(shè)計(jì)要求的1 s存儲(chǔ)時(shí)間。在工程應(yīng)用中輸入帶肩比為50 dB、帶寬為48 MHz的基帶QAM信號(hào)時(shí),在沒有對(duì)信號(hào)進(jìn)行信號(hào)處理的情況下,存儲(chǔ)器對(duì)信號(hào)進(jìn)行存儲(chǔ)后輸出,信號(hào)帶肩比還能大于42 dB,完全符合該工程的要求。該存儲(chǔ)系統(tǒng)在數(shù)字電視、雷達(dá)等方面有較為廣闊的應(yīng)用前景。
[1]霍強(qiáng),夏宇聞.基于FPGA的數(shù)字射頻存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)[C]//全國(guó)第十二屆信號(hào)與信息處理、第六屆DSP應(yīng)用技術(shù)聯(lián)合學(xué)術(shù)會(huì)議論文集.[S.l.]:中國(guó)航空學(xué)會(huì),中國(guó)電子學(xué)會(huì),2008:243-245.
[2]AnalogDevice.AD9640Datasheet[EB/OL].[2011-08-22].http://www.analog.com/static/imported-files/data_sheets/AD9640.pdf.
[3]TEXASINSTRUMETS.DAC5682ZDatasheet[EB/OL].[2011-08-22].http://focus.ti.com.cn/cn/lit/ds/symlink/dac5682z.p-df.
[4]ExternalMemoryInterfaceHandbook[EB/OL].[2011-08-22].http://www.altera.com.
[5]基于Cyclone III FPGA的DDR2接口設(shè)計(jì)分析[EB/OL].[2011-08-22].http://www.21ic.com/app/eda/201104/81815.htm.
[6]吳繼華,蔡海寧,王誠(chéng).AlteraFPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版社,2011:85-99.
[7]華清遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.