Altera SoC FPGA:體系結(jié)構(gòu)的重要性
SoC FPGA器件在一個(gè)器件中同時(shí)集成了處理器和FPGA體系結(jié)構(gòu)。將兩種技術(shù)合并起來(lái)具有很多優(yōu)點(diǎn),包括更高的集成度、更低的功耗、更小的電路板面積,以及處理器和FPGA之間帶寬更大的通信等等。這一同類最佳的器件發(fā)揮了處理器與FPGA系統(tǒng)融合的優(yōu)勢(shì),同時(shí)還保留了獨(dú)立處理器和FPGA方法的優(yōu)點(diǎn)。
本文引用地址:http://m.butianyuan.cn/article/201610/308548.htm目前,市場(chǎng)上主要有三種SoC FPGA,它們的處理器都是完全專用的“硬核”處理器子系統(tǒng),而不是FPGA架構(gòu)中的軟核知識(shí)產(chǎn)權(quán)(IP)。所有這三種器件都采用了全功能ARM處理器,具有完整的存儲(chǔ)器層次結(jié)構(gòu),以及專用外設(shè),啟動(dòng)、運(yùn)行和工作都與“普通”的ARM處理器一樣。
Microsemi SmartFusion2 SoC FPGA基于ARM Cortex-M3嵌入式處理器,主要面向微控制器應(yīng)用。Altera SoC和Xilinx Zynq-7000器件使用了雙核ARM Cortex-A9應(yīng)用處理器。除了處理器,SoC FPGA還有豐富的外設(shè)、片內(nèi)存儲(chǔ)器、FPGA類型的邏輯陣列,以及大量的I/O。
這幾種可編程SoC產(chǎn)品表面上看來(lái)來(lái)都一樣。它們都在一個(gè)器件中集成了ARM處理器、各種外設(shè)和FPGA。而實(shí)際上,仔細(xì)的評(píng)估這些器件,更深入的了解數(shù)據(jù)資料是非常關(guān)鍵的。應(yīng)針對(duì)具體應(yīng)用來(lái)評(píng)估底層體系結(jié)構(gòu)及其內(nèi)涵。SoC FPGA體系結(jié)構(gòu)非常重要。仔細(xì)的檢查和思考會(huì)發(fā)現(xiàn)在體系結(jié)構(gòu)上有很多明顯的不同。
設(shè)計(jì)人員應(yīng)如何選擇?本文介紹了在為應(yīng)用選擇最佳可編程SoC時(shí)應(yīng)進(jìn)行的設(shè)計(jì)考慮,綜合考慮后作出工程決定。選擇標(biāo)準(zhǔn)主要集中在六個(gè)方面:系統(tǒng)性能、系統(tǒng)可靠性和靈活性、系統(tǒng)成本、功耗、未來(lái)發(fā)展路線圖、開(kāi)發(fā)工具。
1.系統(tǒng)性能
SoC FPGA體系結(jié)構(gòu)的兩方面最終決定在不同的單元之間能否高效的傳送數(shù)據(jù):互聯(lián),以及片內(nèi)和片外存儲(chǔ)器帶寬。
SoC體系結(jié)構(gòu)要考慮的第一項(xiàng)是Level-3 (L3)互聯(lián)。顧名思義,L3是L1和L2 Cache之下的一級(jí)數(shù)據(jù)傳輸層。L3互聯(lián)的重要性體現(xiàn)在,它是提高性能的交換中心。
不同SoC FPGA供應(yīng)商在L3系統(tǒng)互聯(lián)上的特性有所不同。Altera SoC FPGA提供由三種交換架構(gòu)構(gòu)成的L3系統(tǒng)互聯(lián)——L3主交換、L3主機(jī)外設(shè)交換、L3從機(jī)外設(shè)交換,使用ARM的AMBA NIC-301網(wǎng)絡(luò)互聯(lián)基礎(chǔ)結(jié)構(gòu)來(lái)實(shí)現(xiàn),如圖1所示。
圖1.Altera SoC FPGA互聯(lián)體系結(jié)構(gòu)
Altera SoC使用精簡(jiǎn)分層總線,無(wú)阻塞交換體系結(jié)構(gòu)減小了延時(shí)?;ヂ?lián)設(shè)計(jì)支持來(lái)自多個(gè)主機(jī)的同時(shí)多路會(huì)話,提供足夠的帶寬,因此,每一主機(jī)能夠連續(xù)運(yùn)行(“無(wú)阻塞”)。對(duì)于仲裁,能夠?yàn)槊恳恢鳈C(jī)分配優(yōu)先級(jí),指導(dǎo)總線仲裁。使用最近使用(LRU)算法對(duì)優(yōu)先級(jí)相同的主機(jī)進(jìn)行仲裁。其他廠家的SoC FPGA體系結(jié)構(gòu)可能使用多級(jí)層次,這需要分布式仲裁,但這會(huì)帶來(lái)延時(shí)。分布式仲裁類似于有多個(gè)數(shù)據(jù)流仲裁。這種方法要求使用中心服務(wù)質(zhì)量(QoS)模塊以確保主機(jī)不會(huì)擁塞。分布式仲裁也有調(diào)整問(wèn)題,會(huì)與DDR存儲(chǔ)器控制器端口仲裁沖突。
SoC FPGA體系結(jié)構(gòu)最顯著的優(yōu)勢(shì)是處理器與FPGA的片內(nèi)緊密耦合。為實(shí)現(xiàn)這種性能優(yōu)勢(shì),處理器至FPGA互聯(lián)應(yīng)有足夠的帶寬(寬度和速度),選擇類型合適的互聯(lián)也非常重要,這不能成為系統(tǒng)數(shù)據(jù)傳輸?shù)钠款i。
在結(jié)構(gòu)方面,在其他廠家SoC FPGA器件中,數(shù)據(jù)通路和控制通路會(huì)競(jìng)爭(zhēng)并占用帶寬。處理器需要訪問(wèn)FPGA邏輯中硬件加速器并對(duì)其進(jìn)行設(shè)置。如果這些控制會(huì)話過(guò)程與數(shù)據(jù)流出現(xiàn)競(jìng)爭(zhēng),那將會(huì)阻塞大吞吐量數(shù)據(jù)流,輸入數(shù)據(jù)連續(xù)處理的過(guò)程會(huì)出現(xiàn)中斷。相似的,寬帶數(shù)據(jù)流會(huì)延時(shí)控制信號(hào),增加了控制延時(shí)。
為防止出現(xiàn)這種情況,Altera SoC FPGA采用了第二個(gè)低延時(shí)、無(wú)阻塞“輕量”互聯(lián)橋接。處理器通過(guò)這一簡(jiǎn)單的32位ARM Advanced eXtensible Interface (AXI)接口來(lái)訪問(wèn)FPGA中的控制寄存器,不會(huì)阻塞或者影響大吞吐量數(shù)據(jù)流,如圖2中的藍(lán)色部分所示。同時(shí),處理器和FPGA之間的寬帶數(shù)據(jù)連接支持32位、64位以及128位寬度會(huì)話,如圖2中的紅色部分所示。
圖2.Altera SoC FPGA含有大吞吐量數(shù)據(jù)通路和無(wú)阻塞低延時(shí)控制通路
2.系統(tǒng)可靠性和靈活性
高度集成的SoC FPGA還有助于建立更可靠的系統(tǒng)。兩個(gè)重要的方面體現(xiàn)了SoC FPGA器件的不同之處:系統(tǒng)中有多少存儲(chǔ)器保護(hù)? SoC FPGA怎樣應(yīng)對(duì)軟件缺陷?
對(duì)錯(cuò)誤探測(cè)、糾正和監(jiān)視的需求已經(jīng)成為當(dāng)今設(shè)計(jì)的發(fā)展趨勢(shì)。隨著存儲(chǔ)器容量和密度的不斷增長(zhǎng),對(duì)錯(cuò)誤檢查和糾正的需求也在增長(zhǎng),也越來(lái)越重要。大部分現(xiàn)代系統(tǒng)包括專用硬件來(lái)幫助實(shí)現(xiàn)數(shù)據(jù)完整性。
從SoC FPGA角度看,這包括糾錯(cuò)碼,即ECC保護(hù)——它不僅僅是存儲(chǔ)器控制器保護(hù)的一部分,而且還集成在處理器的片內(nèi)存儲(chǔ)器、高速緩存,以及外設(shè)緩沖中。ECC電路使系統(tǒng)更可靠,系統(tǒng)不受意外數(shù)據(jù)錯(cuò)誤或者數(shù)據(jù)損壞的影響。
表1總結(jié)了Altera SoC的硬件ECC與其它廠家的對(duì)比
表1.SoC FPGA中的ECC
值得重點(diǎn)介紹的另一方面是NAND閃存。NAND閃存適用于文件系統(tǒng)存儲(chǔ),但有時(shí)候可靠性不如NOR閃存。因此,NAND閃存的ECC被用于消除錯(cuò)誤。早期版本的NAND閃存控制器包括單比特ECC保護(hù)。這雖然有一些優(yōu)點(diǎn),但是CPU必須參與其中,CPU必須通過(guò)軟件管理ECC,導(dǎo)致對(duì)性能有明顯的影響。大部分現(xiàn)代NAND閃存控制器都包括多比特ECC保護(hù)。特別是,在Altera SoC FPGA中實(shí)現(xiàn)的NAND閃存控制器包括對(duì)512字節(jié)段的4比特、8比特和16比特硬件糾錯(cuò),以及對(duì)1,024字節(jié)段的24比特硬件糾錯(cuò)。這實(shí)現(xiàn)了功能更強(qiáng)更需要的保護(hù)功能,而且不會(huì)降低性能。
存儲(chǔ)器保護(hù)通常是先進(jìn)的處理器具有的一種特性。不論是被稱為存儲(chǔ)器管理單元(MMU)還是存儲(chǔ)器保護(hù)單元(MPU),處理器的存儲(chǔ)器保護(hù)單元都能夠防止錯(cuò)誤或者非法的處理器會(huì)話讀取或者損害其他的存儲(chǔ)器區(qū)域。在Cortex-A9處理器中,ARM的TrustZone技術(shù)擴(kuò)展了這一保護(hù)概念,為安全敏感的系統(tǒng)提供了系統(tǒng)級(jí)方法。
某些SoC FPGA將存儲(chǔ)器保護(hù)擴(kuò)展到了FPGA。為什么這一存儲(chǔ)器保護(hù)來(lái)自FPGA,又用于FPGA呢?處理器和FPGA可以共享一個(gè)外部DDR存儲(chǔ)器接口,以便降低成本,減小電路板空間,節(jié)省功耗。假設(shè)定制FPGA邏輯恰好覆寫(xiě)了一段屬于處理器數(shù)據(jù)、應(yīng)用程序代碼,或者操作系統(tǒng)(OS)內(nèi)核的存儲(chǔ)器,那么會(huì)怎樣呢?這會(huì)導(dǎo)致系統(tǒng)故障或者將處理器指向錯(cuò)誤的方向。
為防止出現(xiàn)這種情況,為操作系統(tǒng)和嵌入式應(yīng)用軟件指定了特定的存儲(chǔ)器區(qū)域,而其他存儲(chǔ)器區(qū)域可以專門(mén)用于基于FPGA的功能,如圖3所示。通過(guò)存儲(chǔ)器保護(hù),基于FPGA的功能不會(huì)損壞操作系統(tǒng)或者嵌入式軟件區(qū)域。
圖3.DDR存儲(chǔ)器保護(hù),處理器和FPGA共享公共的存儲(chǔ)器。
看門(mén)狗定時(shí)器可以防止出錯(cuò)的軟件將系統(tǒng)阻塞。在以前的雙芯片分立方案,即處理器加FPGA的解決方案中,如果處理器運(yùn)行出錯(cuò)導(dǎo)致看門(mén)狗復(fù)位,F(xiàn)PGA仍然能夠運(yùn)行。體系結(jié)構(gòu)設(shè)計(jì)良好的SoC FPGA必須支持同樣的“獨(dú)立”行為,而且還提供選擇給系統(tǒng)設(shè)計(jì)人員來(lái)決定是否重新配置FPGA。在很多情況下,很關(guān)鍵的是當(dāng)處理器自己復(fù)位時(shí),F(xiàn)PGA邏輯需要繼續(xù)監(jiān)視并響應(yīng)外部激勵(lì)。因此,在這種條件下,檢查FPGA怎樣重新配置非常重要。
如表2所示,Altera SoC支持處理器和FPGA的復(fù)位電路單獨(dú)工作。由系統(tǒng)設(shè)計(jì)人員決定是否在CPU復(fù)位時(shí)重新配置FPGA。而其他SoC FPGA則在處理器復(fù)位時(shí)必須重新配置。
表2.SoC FPGA中的CPU復(fù)位
靈活性是很多設(shè)計(jì)人員選擇使用FPGA的主要原因之一??扇婢幊痰腟oC將設(shè)計(jì)靈活性擴(kuò)展到了系統(tǒng)級(jí)。選擇SoC FPGA時(shí)要考慮的三種體系結(jié)構(gòu):處理器啟動(dòng)和FPGA配置優(yōu)先級(jí)可選、片內(nèi)FPGA接口、封裝引腳兼容。
處理器啟動(dòng)和FPGA配置的多種選擇——對(duì)靈活性的需求首先從啟動(dòng)開(kāi)始。SoC FPGA中有三種:“CPU最先啟動(dòng)”方式;或者先配置FPGA,再通過(guò)FPGA邏輯啟動(dòng)CPU方式;以及完全獨(dú)立的處理器啟動(dòng)和FPGA配置機(jī)制的方式。目前,Altera SoC FPGA是唯一設(shè)計(jì)支持所有這三種選擇的ARM Cortex-A9處理器SoC FPGA。
靈活性也擴(kuò)展到片內(nèi)FPGA接口上。有時(shí)候應(yīng)用程序需要特性豐富的標(biāo)準(zhǔn)接口;有時(shí)候則要求簡(jiǎn)單或者可定制接口。對(duì)于需要高級(jí)功能的應(yīng)用,SoC FPGA使用了ARM的AXI接口來(lái)連接處理器、硬核外設(shè)和FPGA邏輯。AXI標(biāo)準(zhǔn)使用成熟的業(yè)界標(biāo)準(zhǔn),提供高速寬帶接口。但是,對(duì)于不需要AXI所有特性的IP內(nèi)核應(yīng)該怎樣呢?可擴(kuò)展特性更重要,又會(huì)怎樣呢?需求的一個(gè)極端可能是用戶定制的1000線接口;而另一個(gè)極端則只需要一條線來(lái)點(diǎn)亮LED或者讀取一個(gè)開(kāi)關(guān)。
為滿足這種變化的需求,除了AXI接口,Altera SoC FPGA還支持Avalon存儲(chǔ)器映射(Avalon-MM)接口,以及Avalon流(Avalon-ST)接口。這些可擴(kuò)展的Altera接口標(biāo)準(zhǔn)非常適合要求較低或者其他的特殊功能需求。這樣,IP設(shè)計(jì)人員可以為每一功能選擇最優(yōu)接口。這也支持現(xiàn)有Altera FPGA客戶繼續(xù)使用現(xiàn)有的IP,不一定要移植到AXI。
封裝引腳兼容布局進(jìn)一步提高了設(shè)計(jì)、開(kāi)發(fā)和實(shí)施階段的靈活性。開(kāi)發(fā)人員很容易在具有不同邏輯密度的器件之間移植設(shè)計(jì),這些Altera SoC器件有相同的封裝引腳布局。此外,開(kāi)發(fā)人員可以在封裝引腳兼容布局范圍內(nèi),在具有收發(fā)器和不具有收發(fā)器的器件之間進(jìn)行移植。為進(jìn)一步降低成本,提供無(wú)收發(fā)器版本,它支持雙核或者單核處理器。這些選擇使得一個(gè)印刷電路板平臺(tái)滿足了不同的成本和特性應(yīng)用。
3. 系統(tǒng)成本
目前發(fā)售的每一系統(tǒng)幾乎都面臨越來(lái)越高的成本壓力。而SoC FPGA是具有先進(jìn)特性的創(chuàng)新產(chǎn)品,Altera設(shè)計(jì)其SoC FPGA時(shí)同時(shí)考慮了組件和系統(tǒng)成本。一片SoC FPGA的成本要比其替代的組件低50%,同時(shí)也能夠降低系統(tǒng)成本。
當(dāng)考慮SoC FPGA成本時(shí),應(yīng)重視三個(gè)關(guān)鍵方面:SoC中已經(jīng)集成了多少等效功能? 應(yīng)用需要高速收發(fā)器嗎?如果需要,需要多少? 相關(guān)的電源供電成本有多大?
SoC FPGA解決方案的集成度有多高? 取決于應(yīng)用,一片SoC FPGA會(huì)含有系統(tǒng)等效的處理器、所有外設(shè)、多個(gè)DSP、大量的片內(nèi)存儲(chǔ)器、高速收發(fā)器、時(shí)鐘管理以及豐富的定制邏輯。不管怎樣,都會(huì)有很多問(wèn)題,如是否同時(shí)提供單核和雙核處理器版本;除了ARM處理器內(nèi)核,是否還集成了其他外設(shè);硬核存儲(chǔ)器控制器的數(shù)量;是否有集成鎖相環(huán)(PLL);是否可以通過(guò)配置選項(xiàng)來(lái)降低成本;是否需要為控制器分配其他的FPGA邏輯;是否有公共封裝引腳布局來(lái)優(yōu)化平臺(tái)成本等。
高速收發(fā)器是對(duì)設(shè)計(jì)成本有顯著影響的另一關(guān)鍵特性。Altera SoC FPGA在全系列產(chǎn)品線上提供高速收發(fā)器選擇。特別是,低端入門(mén)級(jí)器件以及容量最大的全功能器件都有高速收發(fā)器。高速收發(fā)器是PCIe等應(yīng)用的關(guān)鍵因素。否則,會(huì)需要外部接口元器件,這增加了系統(tǒng)材料成本(BOM)。另一方面,某些嵌入式設(shè)計(jì)不一定需要高速收發(fā)器,Altera提供不含有高速收發(fā)器的SoC FPGA型號(hào),從而降低了SoC FPGA元器件成本。
電源電壓軌數(shù)量和容量對(duì)設(shè)計(jì)的成本和復(fù)雜度有非常明顯的影響。所有SoC FPGA都需要多個(gè)電壓軌,但是有的要比其他少很多。而且,某些SoC FPGA有嚴(yán)格的上電和關(guān)電順序控制,要采用更復(fù)雜——而且昂貴的電源供電。特別是,由于可能會(huì)出現(xiàn)各種掉電條件,導(dǎo)致很難進(jìn)行關(guān)電順序。理想情況是,最好能夠避免上電或者關(guān)電要求,特別是這些要求影響器件長(zhǎng)期可靠性的時(shí)候。Altera SoC FPGA沒(méi)有任何上電或者關(guān)電順序要求。
4.電源
即使不是推動(dòng)因素,低功耗也成為很多設(shè)計(jì)中越來(lái)越重要的因素。在SoC FPGA器件之間進(jìn)行選擇時(shí),與功耗相關(guān)的重要因素有三個(gè):集成、低功耗模式、上電/關(guān)電順序要求。
通過(guò)集成降低功耗。如圖4所示,在一片SoC FPGA中集成處理器和FPGA元器件能夠把系統(tǒng)功耗降低10%到30%。I/O在器件之間傳送信號(hào),通常需要較高的電壓,是應(yīng)用中最耗能的組件。
圖4.在一片SoC FPGA中集成處理器和FPGA減少了高功耗的芯片間I/O連接
低功耗模式。SoC FPGA具有各種低功耗和低成本特性。由于功耗的主要來(lái)源是器件的FPGA部分,因此,處理器系統(tǒng)和FPGA有分開(kāi)獨(dú)立的電源平面非常重要。為降低功耗,處理器可以通過(guò)軟件控制將FPGA置于低功耗模式。
上電/關(guān)電順序要求。為保證器件的可靠性,或者確保某種上電狀態(tài),硅片供應(yīng)商會(huì)提出特殊的上電和關(guān)電順序要求。上電順序要求是很常見(jiàn)的,而通過(guò)關(guān)電規(guī)范來(lái)保護(hù)器件卻很少見(jiàn)。這意味著,必須在電源上增加額外的電路,否則系統(tǒng)生產(chǎn)商會(huì)面臨長(zhǎng)期可靠性問(wèn)題。
對(duì)于有關(guān)電順序要求的器件,必須要非常小心,以避免每一電源軌失效,導(dǎo)致違反規(guī)范。這就要求采用比較模擬電路來(lái)監(jiān)視電壓軌,必須增加相應(yīng)的保護(hù)電路。為保證正確的關(guān)電順序,還需要有足夠的功率存儲(chǔ)。
Altera SoC FPGA內(nèi)置了內(nèi)部器件保護(hù)功能,因此,可以接受任意順序的上電或者關(guān)電。Altera的確推薦了上電順序,但只是作為系統(tǒng)電源供電設(shè)計(jì)人員的指南,幫助他們降低成本,并沒(méi)有任何可靠性含義。其他SoC FPGA供應(yīng)商的確有上電和關(guān)電順序要求,如果經(jīng)常違反,會(huì)導(dǎo)致器件的長(zhǎng)期可靠性問(wèn)題。
Altera SoC FPGA保證使I/O進(jìn)入三態(tài),避免了電路板級(jí)驅(qū)動(dòng)競(jìng)爭(zhēng)問(wèn)題。如果違反了上電順序要求,其他SoC FPGA供應(yīng)商器件不能保證這些。
而且,Altera SoC FPGA支持“熱插拔”,器件可以插入到已經(jīng)上電的電路板中。其他SoC FPGA供應(yīng)商并不提供這一功能。
5.未來(lái)發(fā)展路線圖
選擇新處理器體系結(jié)構(gòu)是關(guān)鍵的決定。供應(yīng)商的產(chǎn)品路線圖能否滿足未來(lái)應(yīng)用需求,突出系統(tǒng)優(yōu)勢(shì),長(zhǎng)期看系統(tǒng)是否具有競(jìng)爭(zhēng)優(yōu)勢(shì),對(duì)此進(jìn)行評(píng)估非常重要??紤]到較大的軟件投入,基本軟件能夠輕松移植到未來(lái)產(chǎn)品上也非常重要。因此,不僅要知道SoC供應(yīng)商在下一代產(chǎn)品上有哪些承諾,而且還要提出以下問(wèn)題:
●在這一產(chǎn)品線上打算有多大規(guī)模的投入?
●今后對(duì)提高系統(tǒng)設(shè)計(jì)的競(jìng)爭(zhēng)力會(huì)有多大幫助?
●工具有沒(méi)有發(fā)展路線圖?
為滿足SoC FPGA的目標(biāo)應(yīng)用需求(通信基礎(chǔ)設(shè)施、工業(yè)、汽車、高性能計(jì)算、軍事、航空航天、醫(yī)療、多功能打印機(jī),等等),Altera制定了三代處理器發(fā)展路線圖,如圖5所示。
圖5.Altera SoC FPGA系列產(chǎn)品發(fā)展路線圖
發(fā)展路線圖從28 nm Cyclone V和Arria V SoC FPGA開(kāi)始。在20 nm第二代,Arria 10 SoC FPGA處理器子系統(tǒng)仍然一樣,含有雙核ARM Cortex-A9 MPCore處理器。雙核ARM A9保持了軟件的兼容性,很容易進(jìn)行軟件移植,由于采用了20 nm工藝技術(shù),處理器性能比第一代提高了87%。第二代還增強(qiáng)了安全特性和存儲(chǔ)器支持。Stratix 10 SoC FPGA中集成了四核ARM Cortex-A53處理器,第三代SoC FPGA處理器子系統(tǒng)進(jìn)一步提高了高端器件的性能。64位A53有效的提高了性能,同時(shí)仍然是低功耗器件。如果需要,四個(gè)內(nèi)核中的兩個(gè)可以運(yùn)行在32位模式下,以維持與第二代軟件的兼容性,而其他兩個(gè)內(nèi)核可以運(yùn)行在64位模式下,以支持新應(yīng)用。
所有硅片元器件發(fā)展路線圖的基礎(chǔ)都是硅片工藝技術(shù)。今天,大部分SoC FPGA都采用了28 nm硅片工藝進(jìn)行制造。工藝技術(shù)的下一主要發(fā)展方向是FinFET技術(shù)。
FinFET晶體管將溝道翻轉(zhuǎn)至側(cè)面,二維設(shè)計(jì)轉(zhuǎn)變?yōu)槿S設(shè)計(jì),推動(dòng)了半導(dǎo)體行業(yè)的革命。這種新結(jié)構(gòu)的優(yōu)點(diǎn)在于密度更高、泄漏更小,有源功耗更低。Intel真正的引領(lǐng)了FinFET技術(shù)。Intel的第一代采用了22 nm,他們現(xiàn)在的第二代“三柵極”技術(shù)則在14 nm上實(shí)現(xiàn)。Altera SoC FPGA將在14 nm工藝節(jié)點(diǎn)上采用三柵極技術(shù)。
對(duì)于調(diào)試和開(kāi)發(fā)工具,Altera與ARM達(dá)成了長(zhǎng)期戰(zhàn)略合作關(guān)系。2012年12月,兩家公司宣布了獨(dú)家協(xié)議,共同開(kāi)發(fā)ARM DS-5嵌入式軟件開(kāi)發(fā)工具包,為Altera SoC FPGA提供FPGA自適應(yīng)調(diào)試功能。
與此同時(shí),Altera在FPGA上采用了OpenCL標(biāo)準(zhǔn),與目前的其他硬件體系結(jié)構(gòu)(CPU、GPU,等)相比,能夠大幅度提高性能,同時(shí)降低了功耗。OpenCL采用了擴(kuò)展ANSI C,與使用Verilog或者VHDL等底層硬件描述語(yǔ)言(HDL)的傳統(tǒng)FPGA開(kāi)發(fā)方法相比,使用OpenCL標(biāo)準(zhǔn)、基于FPGA的異構(gòu)系統(tǒng)(CPU + FPGA)具有明顯的產(chǎn)品及時(shí)面市優(yōu)勢(shì)。
6.開(kāi)發(fā)工具
SoC FPGA為實(shí)現(xiàn)更快、更便宜、能效更高的電子產(chǎn)品開(kāi)辟了新途徑。但是,伴隨著硬件創(chuàng)新,開(kāi)發(fā)和調(diào)試工具也應(yīng)該不斷創(chuàng)新。軟件最終決定了設(shè)計(jì)人員能否成功的使用這些器件。為實(shí)現(xiàn)更廣泛的應(yīng)用,軟件開(kāi)發(fā)人員必須找到合適的SoC FPGA,掌握其特性,就像獨(dú)立處理器那樣輕松高效的使用它們。Altera SoC嵌入式設(shè)計(jì)套裝(EDS)開(kāi)發(fā)環(huán)境,使用了ARM DS-5 Altera版工具,與市場(chǎng)上其他調(diào)試工具不同。其特點(diǎn)包括FPGA自適應(yīng)調(diào)試、ARM處理器與FPGA工具采用同一條USB電纜、外設(shè)寄存器自動(dòng)顯示、VFP和Neon寄存器顯等方面均擁有突出優(yōu)勢(shì)。
軟件開(kāi)發(fā)一直是工程規(guī)劃的主要部分。同一器件上處理器組合FPGA的這種混合特性增加了新的開(kāi)發(fā)方向。必須仔細(xì)考慮這種新方向會(huì)怎樣影響工程規(guī)劃、工程團(tuán)隊(duì)的學(xué)習(xí)曲線,以及過(guò)去在軟件工具上的投入。
首先也是最重要的,這些新器件的工具應(yīng)兼容ARM,利用了ARM輔助支持系統(tǒng),這一點(diǎn)非常關(guān)鍵。目前市場(chǎng)上的所有SoC FPGA都采用了ARM處理器IP,通常包括了來(lái)自ARM處理器軟件開(kāi)發(fā)工具廣大的輔助支持系統(tǒng)的支持。但是,每一家供應(yīng)商針對(duì)器件增加的FPGA部分有不同的處理方法。這些不同對(duì)以下方面的影響較大:
全芯片調(diào)試:在獨(dú)立處理器上調(diào)試應(yīng)用程序是很好理解的問(wèn)題,有成熟的軟件輔助支持系統(tǒng)提供成熟的解決方案。采用SoC FPGA,SoC不再是預(yù)定義的,相應(yīng)的,調(diào)試工具必須支持很多新結(jié)構(gòu),如在FPGA中實(shí)現(xiàn)的其他的用戶定義外設(shè),在FPGA中實(shí)現(xiàn)的含有硬件加速模塊的軟件功能,F(xiàn)PGA中實(shí)現(xiàn)專用算法的定制邏輯模塊。
分析CPU和FPGA。系統(tǒng)分析是任何好調(diào)試器都具備的功能,能夠幫助開(kāi)發(fā)人員解決常見(jiàn)問(wèn)題,如系統(tǒng)中的熱點(diǎn)在哪里?CPU內(nèi)核的時(shí)間都花在了哪里?所使用的高速緩存效率有多高?為能夠讓分析功能在具有集成FPGA的處理器系統(tǒng)中真正發(fā)揮作用,F(xiàn)PGA事件也必須是分析的一部分。否則,沒(méi)有FPGA自適應(yīng)調(diào)試功能,開(kāi)發(fā)人員只能看到并控制部分芯片
多核調(diào)試。在多核調(diào)試中,能夠同時(shí)獨(dú)立控制并監(jiān)視處理器內(nèi)核是非常有必要的。在某些情況下,需要在一個(gè)斷點(diǎn)上停止所有內(nèi)核。但是,在其他情況下,只需要在斷點(diǎn)處停止一個(gè)處理器,而另一個(gè)內(nèi)核繼續(xù)執(zhí)行代碼。最好還能查看每一內(nèi)核上運(yùn)行的軟件。調(diào)試器和分析工具應(yīng)能夠設(shè)計(jì)支持多核應(yīng)用。作為對(duì)比,GNU基于GDB的調(diào)試工具最初只是設(shè)計(jì)滿足單核需求?;贕DB的調(diào)試器工作起來(lái)非常好,但是一次只能處理一個(gè)內(nèi)核。在多核系統(tǒng)中使用基于GDB的調(diào)試器時(shí),可以在多個(gè)內(nèi)核上設(shè)置斷點(diǎn)。但是,當(dāng)應(yīng)用軟件最終遇到一個(gè)斷點(diǎn)時(shí),只能觀察觸發(fā)斷點(diǎn)的內(nèi)核。實(shí)際上,每次只能調(diào)試一個(gè)內(nèi)核。在調(diào)試階段無(wú)法看到其他內(nèi)核,這對(duì)于多核調(diào)試而言是很大的局限。ARM及其輔助支持系統(tǒng)合作伙伴積極應(yīng)對(duì)這一多核難題,開(kāi)發(fā)了功能強(qiáng)大的高質(zhì)量多核調(diào)試工具。當(dāng)選擇一款SoC FPGA時(shí),重要的一點(diǎn)是所選擇的SoC FPGA系列比較容易使用真正的多核調(diào)試器。
標(biāo)準(zhǔn)工具和流程。軟件工程師使用熟悉而又成熟的工具效率會(huì)更高。在熟悉的工具中可以使用新的硬件特性。大部分工程師希望使用有很多支持的“標(biāo)準(zhǔn)”工具來(lái)編輯、編譯、下載、調(diào)試他們的應(yīng)用程序,而不是采用新的專用流程。Altera與ARM合作開(kāi)發(fā)了特殊版本的業(yè)界標(biāo)準(zhǔn)ARM DS-5工具包,以支持實(shí)現(xiàn)Altera SoC FPGA的特性,發(fā)揮其優(yōu)勢(shì)。通過(guò)這一業(yè)界領(lǐng)先的協(xié)議,ARM DS-5 Altera版工具包使用熟悉的業(yè)界標(biāo)準(zhǔn)接口,提供了FPGA自適應(yīng)調(diào)試和其他關(guān)鍵多核特性。這一工具包還支持在硬件和軟件調(diào)試中只使用一條Altera USB-Blaster II電纜。
結(jié)論
SoC FPGA是功能強(qiáng)大的新一類可編程器件,適用于多種電子設(shè)計(jì)。商用器件集成了標(biāo)準(zhǔn)ARM處理器——Cortex-M3或者功能更強(qiáng)大的雙核Cortex-A9,以及豐富的外設(shè)、片內(nèi)存儲(chǔ)器、高速內(nèi)部互聯(lián)體系結(jié)構(gòu)、分層片內(nèi)存儲(chǔ)器,還有前沿的FPGA架構(gòu)。這些器件表面上看起來(lái)非常相似,但是底層體系結(jié)構(gòu)卻不盡相同。
為不同應(yīng)用選擇最佳SoC FPGA需要充分考慮六大標(biāo)準(zhǔn),即系統(tǒng)性能、設(shè)計(jì)可靠性和靈活性、系統(tǒng)成本、功耗、未來(lái)產(chǎn)品發(fā)展路線圖,以及開(kāi)發(fā)工具在幫助這些SoC FPGA取得成功方面扮演的重要角色。
評(píng)論