FPGA芯片選擇策略和原則
由于FPGA具備設(shè)計(jì)靈活、可以重復(fù)編程的優(yōu)點(diǎn),因此在電子產(chǎn)品設(shè)計(jì)領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用。在工程項(xiàng)目或者產(chǎn)品設(shè)計(jì)中,選擇FPGA芯片可以參考以下的幾點(diǎn)策略和原則。
盡量選擇成熟的產(chǎn)品系列
FPGA芯片的工藝一直走在芯片設(shè)計(jì)領(lǐng)域的前列,產(chǎn)品更新?lián)Q代速度非常快。穩(wěn)定性和可靠性是產(chǎn)品設(shè)計(jì)需要考慮的關(guān)鍵因素。廠家最新推出的FPGA系列產(chǎn)品一般都沒有經(jīng)過(guò)大批量應(yīng)用的驗(yàn)證。選擇這樣的芯片會(huì)增加設(shè)計(jì)的風(fēng)險(xiǎn)。
而且,最新推出的FPGA芯片因?yàn)楫a(chǎn)量比較小,一般供貨情況都不會(huì)很理想,價(jià)格也會(huì)偏高一些。如果成熟的產(chǎn)品能滿足設(shè)計(jì)指標(biāo)要求,那么最好選這樣的芯片來(lái)完成設(shè)計(jì)。
例如,要用FPGA設(shè)計(jì)一塊數(shù)據(jù)采集卡。采用Altera公司的Cyclone、CyloneII和CycloneIII等3個(gè)系列的芯片都可以完成這個(gè)功能。考慮到Cyclone和CyloneII是成熟產(chǎn)品,同時(shí)CyloneII又是Cyclone的升級(jí)產(chǎn)品,因此選擇CyloneII是比較理想的方案。
盡量選擇兼容性好的封裝
FPGA系統(tǒng)設(shè)計(jì)一般采用硬件描述語(yǔ)言(HDL)來(lái)完成設(shè)計(jì)。這與基于CPU的軟件開發(fā)又有很大不同。特別是算法實(shí)現(xiàn)的時(shí)候,在設(shè)計(jì)之前,很難估算這個(gè)算法需要占多少FPGA的邏輯資源。
作為代碼設(shè)計(jì)者,希望算法實(shí)現(xiàn)之后再選擇FPGA的型號(hào)。但是,現(xiàn)在的設(shè)計(jì)流程一般都是軟件和硬件并行開始設(shè)計(jì)。也就是說(shuō),在HDL代碼設(shè)計(jì)之前,就開始硬件板卡的設(shè)計(jì)。這就要求硬件板卡具備一定的兼容性,可以兼容不同規(guī)模的FPGA芯片。
幸運(yùn)的是,F(xiàn)PGA芯片廠家考慮到了這一點(diǎn)。目前,同系列的FPGA芯片一般可以做到相同物理封裝兼容不同規(guī)模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封裝下,可以選擇3S200、2S400、3S1000、3S1500這4種型號(hào)的FPGA。
正是因?yàn)檫@一點(diǎn),將來(lái)的產(chǎn)品就具備非常好的擴(kuò)展性,可以不斷地增加新的功能或者提高性能,而不需要修改電路板的設(shè)計(jì)文件。
盡量選擇一個(gè)公司的產(chǎn)品
如果在整個(gè)電子系統(tǒng)中需要多個(gè)FPGA器件,那么盡量選擇一個(gè)公司的產(chǎn)品。這樣的好處不僅可以降低成本,而且降低開發(fā)難度。因?yàn)殚_發(fā)環(huán)境和工具是一致的,芯片接口電平和特性也一致,便于互聯(lián)互通。
很多第一次接觸FPGA的設(shè)計(jì)師在芯片選型的時(shí)候都有過(guò)這個(gè)疑問。其實(shí)這兩個(gè)最大的FPGA廠家位于美國(guó)的同一座城市,人員和技術(shù)交流都很頻繁,因此產(chǎn)品各有的優(yōu)勢(shì)和特色,很難說(shuō)清楚誰(shuí)好誰(shuí)壞。
在全球不同的地區(qū),這兩家公司的FPGA芯片產(chǎn)品的市場(chǎng)表現(xiàn)會(huì)有所差別。在中國(guó)市場(chǎng),兩家公司可以說(shuō)是平分秋色,在高校里面Altera的客戶會(huì)略多一些。針對(duì)特定的應(yīng)用,兩個(gè)廠家的產(chǎn)品目錄里面都可以找到適合的系列或者型號(hào)。
比如,針對(duì)低成本應(yīng)用,Altera公司的Cyclone系列和Xilinx公司的Spartan3系列是對(duì)應(yīng)的。針對(duì)高性能應(yīng)用,Altera公司的Stratix系列和Xilinx公司的Virtex系列是對(duì)應(yīng)的。所以,最終選擇那個(gè)公司的產(chǎn)品還是看開發(fā)者的使用習(xí)慣。