傳統(tǒng)的、基于通用DSP處理器并運(yùn)行由C語言開發(fā)的算法的高性能DSP平臺,正在朝著使用FPGA預(yù)處理器和/或協(xié)處理器的方向發(fā)展。這一最新發(fā)展能夠?yàn)楫a(chǎn)品提供巨大的性能、功耗和成本優(yōu)勢。
盡管優(yōu)勢如此明顯,但習(xí)慣于使用基于處理器的系統(tǒng)進(jìn)行設(shè)計的團(tuán)隊(duì),仍會避免使用FPGA,因?yàn)樗麄內(nèi)狈Ρ匾挠布寄?,來將FPGA用作協(xié)處理器(圖1)。不熟悉像VHDL和Verilog這樣傳統(tǒng)的硬件設(shè)計方法,限制或阻止了FPGA的使用,這通常會導(dǎo)致設(shè)計成本過高,且功耗過大。ESL,一套全新推出的設(shè)計工具,能夠解決這一設(shè)計難題。它在保留常規(guī)軟硬件設(shè)計方式的同時,幫助基于處理器的設(shè)計者使用可編程邏輯加速自己的設(shè)計。
借助FPGA協(xié)處理提升性能
設(shè)計人員能夠利用由FPGA架構(gòu)的并行性所帶來的使用靈活的特點(diǎn),大幅提升DSP系統(tǒng)的性能。通常的設(shè)計示例包括(并不局限于)FIR濾波、FFT、數(shù)字下變頻和前向糾錯(FEC)模塊等。
Xilinx? VirtexTM-4和Virtex-5架構(gòu)提供了多達(dá)512個并行乘法器,它們能夠以超過500MHz的速度運(yùn)行,提供256GMAC的DSP峰值性能。通過在FPGA上實(shí)現(xiàn)高速并行處理,而在DSP上實(shí)現(xiàn)高速串行處理,可以使整個DSP系統(tǒng)的性能得到優(yōu)化,同時降低系統(tǒng)的功率需求。
借助FPGA嵌入式處理降低成本
帶有FPGA協(xié)處理器的DSP硬件系統(tǒng),為C算法范疇之內(nèi)的運(yùn)算(例如DSP處理器、FPGA可配置邏輯塊(CLB)和FPGA嵌入式處理器之間的算法劃分)提供了許多實(shí)現(xiàn)方法。Virtex-4器件提供了兩種嵌入式處理器——通常被用作系統(tǒng)控制的MicroBlazeTM軟核處理器和性能更高的PowerPCTM硬核處理器。由FPGA架構(gòu)實(shí)現(xiàn)的并行操作,能夠被直接用于DSP的數(shù)據(jù)路徑,或被配置為一個嵌入式處理器的硬件加速器。
設(shè)計者所面對的挑戰(zhàn)是如何在所提供的硬件資源之間劃分DSP的系統(tǒng)操作,才能做到最為有效和最節(jié)省成本。使用FPGA嵌入式處理器的最大好處并不總是顯而易見的,但這一硬件資源的確能夠極大地降低系統(tǒng)的整體成本。FPGA嵌入式處理器提供了這樣一個機(jī)會:將所有非關(guān)鍵性操作集中于嵌入式處理器上所運(yùn)行的軟件,從而最大限度降低系統(tǒng)所需硬件資源的總量。
C程序到系統(tǒng)門
在FPGA的應(yīng)用中,術(shù)語“C程序到系統(tǒng)門”特指如下兩種實(shí)現(xiàn)方法之一——在FPGA架構(gòu)上直接實(shí)現(xiàn)一個DSP模塊或?yàn)镸icroBlaze或PowerPC 405嵌入式處理器創(chuàng)建一個硬件加速器(圖2)。
當(dāng)操作直接在DSP數(shù)據(jù)路徑中進(jìn)行時,將FPGA作為一個DSP模塊來實(shí)現(xiàn)操作,能夠獲得最高的性能。這一方法先將C代碼直接綜合成RTL代碼,然后在DSP的數(shù)據(jù)通路中對模塊進(jìn)行實(shí)體化。你可以使用傳統(tǒng)的HDL設(shè)計方法,或通過像Xilinx System Generator for DSP這樣的系統(tǒng)工具,來進(jìn)行實(shí)體化。這種直接實(shí)體化方式,能夠讓開發(fā)人員以最小的開銷達(dá)到最高的性能。
主流的C綜合工具可實(shí)現(xiàn)的性能,能夠與手寫RTL相媲美——但要做到這一點(diǎn),需要對C綜合工具的工作原理和代碼風(fēng)格有詳盡的了解。為了達(dá)到所要求的性能,通常需要對代碼進(jìn)行修改,并且添加內(nèi)聯(lián)綜合指令,以插入并行和流水線級。雖然要進(jìn)行這些改進(jìn),但是設(shè)計效率還是能夠大大提高。C系統(tǒng)模型仍然是驅(qū)動設(shè)計流程的主要因素。
作為一種替代方案,為Xilinx嵌入式處理器創(chuàng)建一個硬件加速器通常是一個更為簡單的方法。在該方法中,仍然主要使用處理器來運(yùn)行C程序,只是將對性能有重大影響的操作以硬件加速器的形式放置到FPGA邏輯中執(zhí)行。這是一種更偏向于以軟件為中心的設(shè)計方法。然而,這一方法會犧牲一些性能。與DSP模塊的方法相似,C程序被綜合成RTL代碼,所不同的是頂層實(shí)體被接口邏輯包圍,以便能與Xilinx嵌入式處理器的總線相連。這就創(chuàng)建了一個硬件加速器,它能夠被調(diào)入到Xilinx EDK環(huán)境中,并且被軟件友好的C程序調(diào)用。
對將C程序映射到硬件加速器的性能要求,通常不是那么苛刻。這里的目標(biāo)是使性能比使用純軟件實(shí)現(xiàn)的方法得到提高,同時保持軟件友好的設(shè)計流程。雖然仍有編碼技術(shù)和內(nèi)聯(lián)綜合指令,但通??梢圆皇褂盟鼈兙瓦_(dá)到所要求的性能提升。
設(shè)計方法——采用FPGA協(xié)處理的障礙
正確劃分和實(shí)現(xiàn)一個復(fù)雜DSP系統(tǒng),需要花費(fèi)大量時間和精力掌握所需的技能。Forward Concepts市場調(diào)查公司為了確定在DSP設(shè)計中選用FPGA最重要的標(biāo)準(zhǔn),開展了一項(xiàng)調(diào)查。調(diào)查的結(jié)果表明開發(fā)工具是最重要的選擇標(biāo)準(zhǔn),如圖3所示。
調(diào)查結(jié)果顯示,使用FPGA協(xié)處理器實(shí)現(xiàn)DSP硬件系統(tǒng)的優(yōu)勢,已經(jīng)得到用戶的充分認(rèn)可,但對于傳統(tǒng)的DSP設(shè)計者來說,開發(fā)工具現(xiàn)有的狀況,成為他們采用這一設(shè)計方法的障礙。
Xilinx ESL計劃
ESL設(shè)計工具將數(shù)字設(shè)計的抽象度在RTL的基礎(chǔ)上又提高了一步。其中部分工具專門用來將由C/C++開發(fā)的系統(tǒng)模型映射到包含F(xiàn)PGA和DSP處理器的DSP系統(tǒng)中。此舉的目的是使硬件平臺對軟件設(shè)計者變得透明(圖4)。
今年,為了全面解決上述障礙,Xilinx公司和主要的ESL工具廠商攜手啟動了一個被稱為ESL計劃的合作項(xiàng)目。這一合作計劃的主要目標(biāo)是賦予設(shè)計者軟件編程的能力,使他們能夠在可編程硬件中輕松地實(shí)現(xiàn)自己的想法,而無需學(xué)習(xí)傳統(tǒng)的硬件設(shè)計技巧。該計劃融合了ESL成員機(jī)構(gòu)的創(chuàng)新,能夠加速產(chǎn)品開發(fā)進(jìn)程,推動設(shè)計人員采用世界上最先進(jìn)的設(shè)計方法。
結(jié)論
將Xilinx ESL合作伙伴的工具結(jié)合在一起,能夠提供廣泛的互補(bǔ)性解決方案,這些解決方案已針對一系列產(chǎn)品、平臺和最終用戶進(jìn)行了優(yōu)化。Xilinx公司也在集中力量研究互補(bǔ)技術(shù)。例如,AccelDSP綜合為在浮點(diǎn)MATLAB中開發(fā)的算法提供了硬件實(shí)現(xiàn)的方法,而Xilinx System Generator for DSP使得用ESL設(shè)計開發(fā)的模塊,能夠輕松地與Xilinx IP和嵌入式處理器結(jié)合起來。借助多個極富創(chuàng)新精神的合作伙伴的工作,是實(shí)現(xiàn)程序員期望的FPGA設(shè)計流程最快捷的途徑。
-
FPGA
+關(guān)注
關(guān)注
1638文章
21881瀏覽量
610723 -
Xilinx
+關(guān)注
關(guān)注
73文章
2175瀏覽量
123699 -
Verilog
+關(guān)注
關(guān)注
28文章
1361瀏覽量
111273 -
C語言
+關(guān)注
關(guān)注
180文章
7623瀏覽量
139422 -
vhdl
+關(guān)注
關(guān)注
30文章
819瀏覽量
129215
原文標(biāo)題:FPGA協(xié)處理的優(yōu)勢有哪些?如何去使用FPGA協(xié)處理?
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
FPGA協(xié)處理器的優(yōu)勢
【FPGA干貨分享六】基于FPGA協(xié)處理器的算法加速的實(shí)現(xiàn)
采用FPGA的協(xié)處理器來簡化ASIC仿真
舉例說明FPGA作為協(xié)處理器在實(shí)時系統(tǒng)中有哪些應(yīng)用?
為什么FPGA協(xié)處理器可以實(shí)現(xiàn)算法加速?
FPGA協(xié)處理的優(yōu)勢有哪些?如何去使用FPGA協(xié)處理?
如何利用串行RapidIO去實(shí)現(xiàn)FPGA協(xié)處理?
簡述協(xié)處理器發(fā)展歷程及前景展望
利用串行RapidIO實(shí)現(xiàn)FPGA協(xié)處理

利用串行RapidIO實(shí)現(xiàn)FPGA協(xié)處理

FPGA協(xié)處理技術(shù)介紹及進(jìn)展

采用FPGA協(xié)處理的無線子系統(tǒng)

評論