【導(dǎo)讀】FPGA器件的選用同其它通用邏輯器件不同,除考慮器件本身的性能外,軟件下具也很重要。目前市場(chǎng)上已有的FPGA器件生產(chǎn)廠(chǎng)家有20多個(gè),而設(shè)計(jì)軟件除生產(chǎn)廠(chǎng)家自行研制的軟件外還有50多種。FPGA器件的價(jià)格已經(jīng)不菲,更不用說(shuō)設(shè)計(jì)軟件的價(jià)格,所以如何選用合適的FPGA器件,不只是一件一次性的工作,還涉及到設(shè)計(jì)軟件的選用以及今后進(jìn)一步下作的開(kāi)展。
首先,用戶(hù)應(yīng)該根據(jù)自身的技術(shù)環(huán)境、技術(shù)條件、使用習(xí)慣等選擇一種合適的軟件
工具,同時(shí)要兼顧EDA技術(shù)的發(fā)展。占據(jù)優(yōu)勢(shì)的軟件供應(yīng)商同人多數(shù)芯片制造商建立了良好的合作伙伴關(guān)系,所以,擁有一種設(shè)計(jì)軟件,再進(jìn)一步選擇不同的工具庫(kù),或增加部分配置,即可對(duì)不同廠(chǎng)家的不同種類(lèi)的FPGA產(chǎn)品進(jìn)行設(shè)計(jì)。
其次,用戶(hù)可根據(jù)設(shè)計(jì)的需要確定選擇哪一類(lèi)FPGA器件。如果用于航天、軍事領(lǐng)域,反熔絲技術(shù)的一次編程型FPGA是首選;如果要完成多種算術(shù)運(yùn)算,或是要求在較高速度下,F(xiàn)PGA/CPLD是較好的選擇;而對(duì)于功能復(fù)雜的時(shí)序邏輯電路而言,標(biāo)準(zhǔn)門(mén)陣列單元型的FPGA具有集成度高、保持靈活和功耗低的優(yōu)點(diǎn)。當(dāng)然,這只是通用準(zhǔn)則,關(guān)鍵是所選擇的器件能滿(mǎn)足設(shè)計(jì)要求的所有功能,在此基礎(chǔ)上,再利用上述準(zhǔn)則確定具體的一種器件。
第三,選定某一廠(chǎng)家的產(chǎn)品,生產(chǎn)同類(lèi)器件的廠(chǎng)家很多,一般依據(jù)以下準(zhǔn)則進(jìn)行選擇。
(1) 選擇有設(shè)計(jì)軟件支持的廠(chǎng)家的芯片,這樣可減少資本投入,降低成本。
(2) 選擇產(chǎn)品設(shè)計(jì)性能改進(jìn)有余量的。如果所選擇的芯片是某一廠(chǎng)家產(chǎn)品中容量:最大,或是速度最高的,那么,一但設(shè)計(jì)需要改進(jìn),則有可能在該廠(chǎng)家的芯片中再選不出合適的來(lái)了。
(3) 設(shè)計(jì)應(yīng)用的延續(xù)性和可擴(kuò)展性。如果所選廠(chǎng)家的產(chǎn)品具有很大的局限性,則有可能僅僅適用于很少一部分設(shè)計(jì),從而造成設(shè)計(jì)軟件投入上的浪費(fèi)。
(4) 選擇性能價(jià)格比最優(yōu)的。盡管象Xilinx 、Altera這樣的器件生產(chǎn)廠(chǎng)家都在通過(guò)降價(jià)來(lái)作市場(chǎng)宣傳,大多數(shù)FPGA芯片的價(jià)格還是比較高的,所有在滿(mǎn)足上述準(zhǔn)則的情況下適當(dāng)考慮價(jià)格也是有必要的。
FPGA器件的發(fā)展非??欤厦娴慕y(tǒng)計(jì)是從市場(chǎng)的角度出發(fā)對(duì)市場(chǎng)份額較大、行業(yè)內(nèi)目前處于領(lǐng)先地位的部分廠(chǎng)家進(jìn)行的,具有一定的代表性,但不是十分全面。只有不斷跟蹤這一領(lǐng)域的技術(shù)發(fā)展和市場(chǎng)動(dòng)態(tài)才能對(duì)FPGA產(chǎn)品有更加全面、不斷更新的認(rèn)識(shí),在今后的設(shè)計(jì)中更好地利用FPGA,以提高產(chǎn)品的設(shè)計(jì)水平。
由于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代速度非??臁7€(wěn)定性和可靠性是產(chǎn)品設(shè)計(jì)需要考慮的關(guān)鍵因素。廠(chǎng)家最新推出的FPGA系列產(chǎn)品一般都沒(méi)有經(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)品能滿(mǎ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的軟件開(kāi)發(fā)又有很大不同。特別是算法實(shí)現(xiàn)的時(shí)候,在設(shè)計(jì)之前,很難估算這個(gè)算法需要占多少FPGA的邏輯資源。作為代碼設(shè)計(jì)者,希望算法實(shí)現(xiàn)之后再選擇FPGA的型號(hào)。但是,現(xiàn)在的設(shè)計(jì)流程一般都是軟件和硬件并行開(kāi)始設(shè)計(jì)。也就是說(shuō),在HDL代碼設(shè)計(jì)之前,就開(kāi)始硬件板卡的設(shè)計(jì)。這就要求硬件板卡具備一定的兼容性,可以兼容不同規(guī)模的FPGA芯片。幸運(yùn)的是,F(xiàn)PGA芯片廠(chǎng)家考慮到了這一點(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)品。這樣的好處不僅可以降低成本,而且降低開(kāi)發(fā)難度。因?yàn)殚_(kāi)發(fā)環(huán)境和工具是一致的,芯片接口電平和特性也一致,便于互聯(lián)互通。
很多第一次接觸FPGA的設(shè)計(jì)師在芯片選型的時(shí)候都有過(guò)這個(gè)疑問(wèn)。其實(shí)這兩個(gè)最大的FPGA廠(chǎng)家位于美國(guó)的同一座城市,人員和技術(shù)交流都很頻繁,因此產(chǎn)品各有的優(yōu)勢(shì)和特色,很難說(shuō)清楚誰(shuí)好誰(shuí)壞。
在全球不同的地區(qū),這兩家公司的FPGA芯片產(chǎn)品的市場(chǎng)表現(xiàn)會(huì)有所差別。在中國(guó)市場(chǎng),兩家公司可以說(shuō)是平分秋色,在高校里面Altera的客戶(hù)會(huì)略多一些。針對(duì)特定的應(yīng)用,兩個(gè)廠(chǎng)家的產(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)品還是看開(kāi)發(fā)者的使用習(xí)慣。
選擇芯片時(shí)千萬(wàn)注意芯片實(shí)際的工作溫度
最近項(xiàng)目完成的儀器在測(cè)試時(shí)總是出現(xiàn)數(shù)據(jù)不準(zhǔn)的情況,而在以前從沒(méi)有出現(xiàn)類(lèi)似情況,而且在室內(nèi)測(cè)試時(shí)所有指標(biāo)均滿(mǎn)足要求,不過(guò)一到室外測(cè)試(儀器應(yīng)用場(chǎng)合在室外開(kāi)闊場(chǎng)地),測(cè)試數(shù)據(jù)就會(huì)不準(zhǔn),百思不得其解,最后我們判斷是實(shí)際環(huán)境的溫度超出了芯片的正常工作溫度范圍。在這個(gè)時(shí)候北京室外的溫度經(jīng)常低于0度,而我采用的FPGA芯片為商業(yè)級(jí)的,其工作溫度范圍在0°~70°,因此很有可能問(wèn)題出在這里,對(duì)設(shè)備加上保暖措施后,測(cè)試效果有明顯改進(jìn)。
順便說(shuō)一下各種等級(jí)芯片的工作溫度范圍
商業(yè)級(jí):0°~70°
工業(yè)級(jí):-40°~85°
軍用級(jí):-55°~125°
Altera的FPGA型號(hào)命名中也能看出其性質(zhì)。比如我用的FPGA是EP2C8Q208C8
2C:代表是Cyclone II系列
8:邏輯單元的數(shù)量,8表示有8000個(gè)左右的邏輯單元
Q:表示封裝,Q代表QFP封裝
208:代表引腳數(shù),有208只引腳
C:代表是商業(yè)級(jí),I代表工業(yè)級(jí)
8:表示芯片速度,一般有6,7,8三種,6最高,8最慢