利用Spartan-3 FPGA實現(xiàn)高性能DSP功能
Spartan-3FPGA能以突破性的價位點實現(xiàn)嵌入式DSP功能。本文闡述了Spartan-3 FPGA針對DSP而優(yōu)化的特性,并通過實現(xiàn)示例分析了它們在性能和成本上的優(yōu)勢。
所有低成本的FPGA都以頗具吸引力的價格提供基本的邏輯性能,并能滿足廣泛的多用途設(shè)計需求。然而,當考慮在FPGA構(gòu)造中嵌入DSP功能時,必須選擇高端FPGA以獲得諸如嵌入式乘法器和分布式存儲器等平臺特性。
Spartan-3 FPGA的面世改變了嵌入式DSP的應(yīng)用前景。雖然Spartan-3系列器件的價位可能較低,但它們同樣具有DSP設(shè)計所需的平臺特性。這些平臺特性能夠以較高的面積利用率實現(xiàn)信號處理功能,使設(shè)計達到更低價位點。
Spartan-3器件用作協(xié)處理器或預(yù)/后處理器是非常理想的,它們將運算密集型功能從可編程DSP上卸載下來以增強系統(tǒng)性能。
1 針對DSP而優(yōu)化
賽靈思公司的Spartan-3器件采用90nm工藝技術(shù)以及300mm晶圓,大大降低了FPGA的成本。與此同時,這些器件還包括諸如嵌入式18×18位乘法器、大塊存儲器(18kb)、分布式RAM以及移位寄存器等關(guān)鍵DSP資源。這些高級特性意味著采用Spartan-3 FPGA,能以比其它競爭FPGA低得多的價位實現(xiàn)DSP算法。
圖1:增強型架構(gòu)允許用
單個LUT代替16個寄存器。除增加系統(tǒng)的基本性能之外,這些嵌入式特性還能提高器件的利用率。例如,如果在邏輯結(jié)構(gòu)中實現(xiàn)Spartan-3嵌入式乘法器,需要占用300~400個邏輯單元(LE)。此外,因為嵌入式乘法器緊鄰邏輯結(jié)構(gòu),所以拓展其功能(比如創(chuàng)建加法器或者級聯(lián)多個乘法器來支持復(fù)雜的算法功能)是非常簡單的。
為提高效率,許多DSP功能以時分復(fù)用的形式在管道中得以很好實現(xiàn)。這樣做雖然能創(chuàng)建帶寬更高、速度更快的系統(tǒng),但同時也將面臨更多臨時存儲單元需求而帶來的成本增加。譬如,時分復(fù)用濾波器需要將各個乘法-累加單元的結(jié)果存儲在移位寄存器里。這種設(shè)計將在用完FPGA的邏輯資源之前就可能耗盡寄存器或存儲器資源。Spartan-3 FPGA系列的獨特之處在于它們可提供這樣一種模式:一個查找表(LUT)能夠執(zhí)行邏輯功能或配置成一個16位移位寄存器。
如圖1所示,這種增強型的架構(gòu)允許用單個LUT來代替16個寄存器,在實現(xiàn)時分復(fù)用DSP功能時能使面積利用率最大化。
許多DSP功能也需占用大量的存儲器資源,它們需要便箋存儲器來保存系數(shù)、執(zhí)行FIFO以及獲得較大的緩沖區(qū)。與目前使用的其它低成本FPGA相比,Spartan-3器件可提供更多的存儲位數(shù)。對于許多DSP設(shè)計而言,最重要的資源是FPGA內(nèi)的嵌入式存儲器,而不是邏輯電路或者乘法器。因為存儲資源不足,采用競爭的低成本器件的設(shè)計工程師不得不選用更大規(guī)模的器件或采用外部存儲器來構(gòu)建系統(tǒng),而這些系統(tǒng)只需一片體積很小的Spartan-3 FPGA就可以得到實現(xiàn)。
2 常見的DSP功能實現(xiàn)
下面通過分析有限沖擊響應(yīng)(FIR)濾波器的兩個實現(xiàn)示例來說明這些特性是如何影響器件的利用率。一個是基于乘法累加器(MAC)的實現(xiàn),另一個是基于多通道分布式算法(DA)的實現(xiàn)。
FIR濾波器通常應(yīng)用于基站、數(shù)字視頻、無線局域網(wǎng)、xDSL以及有線調(diào)制解調(diào)器。測試基準是在Spartan-3 XC3S400 FPGA中實現(xiàn)頻率為130MHz、數(shù)據(jù)和系數(shù)均為16位的64抽頭MAC FIR濾波器。第一個實現(xiàn)僅用了一個MAC,第二個實現(xiàn)則用了四個MAC。
從采用單個MAC的實現(xiàn)到采用四個MAC的實現(xiàn)可顯著增加FIR濾波器的性能,而LUT數(shù)量只增加一倍并仍僅占總可用邏輯資源的4%。四個MAC的實現(xiàn)使用了四塊RAM和四個MAC,以最少的器件邏輯資源高效地實現(xiàn)了FIR濾波器。
另一個有趣的實現(xiàn)是多通道FIR功能的實現(xiàn),在這里可以看到從單通道FIR濾波器到8通道FIR濾波器,器件利用率是如何變化的。
實現(xiàn)單通道分布式算法FIR濾波器使用了XC3S1000 Spartan-3器件29%的邏輯資源和39%的寄存器資源。當實現(xiàn)同樣的8通道濾波器時,通常將不同通道進行時分復(fù)用來保存邏輯,但這將占用很多寄存器或者大量的片內(nèi)存儲器來存放中間結(jié)果。
如果使用Spartan-3 FPGA,中間結(jié)果將被存放在由LUT配置成的16位移位寄存器(SRL-16)中。這樣,實現(xiàn)同樣的8通道濾波器只多使用10%的可用邏輯資源和7%的可用寄存器資源,也就是說,構(gòu)建8個通道僅多占用25%的器件資源。
這種顯著的資源節(jié)約與Spartan-3器件中SRL-16的使用有直接關(guān)系,在8通道實現(xiàn)中還有另外1,343個LUT被用作SRL-16模式。
如果在不支持SRL-16性能的FPGA中實現(xiàn)這種設(shè)計,將需要額外的10,744(1343×8)個觸發(fā)器用作存儲單元,這就必須選用大規(guī)模器件以提供數(shù)量龐大的寄存器,同時將也會消耗相關(guān)的組合邏輯資源。