演示ASIC IP性能與質(zhì)量需要有FPGA中立的設(shè)計(jì)流程
事實(shí)上,市面上的IP核都具有多樣化的功能和可選產(chǎn)品。并且,即便用戶已經(jīng)查閱了有關(guān)潛在供應(yīng)商和產(chǎn)品的目錄,但在IP質(zhì)量上也仍然有很大的差別。將真正可靠且勝任的IP與有缺陷、未經(jīng)過充分測試且缺乏真實(shí)性能的IP區(qū)分開來的訣竅,是參照活躍的成功用戶經(jīng)驗(yàn)。
本文引用地址:http://m.butianyuan.cn/article/201612/326345.htm嵌入式視覺是一個(gè)使用案例仍在開發(fā)的、且許多團(tuán)隊(duì)在設(shè)計(jì)項(xiàng)目還未得到充分推進(jìn)之前都不知道其真實(shí)需求的領(lǐng)域。當(dāng)開始進(jìn)行視覺處理時(shí),CogniVue公司關(guān)注的不僅是有最高質(zhì)量的IP可提供,而且還包括是否能夠確保滿足當(dāng)前和未來對最廣泛應(yīng)用的需求。這些應(yīng)用包括能夠?qū)χ苓吺澜邕M(jìn)行觀察并做出反應(yīng)的小型智能攝像頭、能夠觀測并避免發(fā)生事故的汽車、裝在電視上能夠進(jìn)行臉部和手勢識別的攝像頭,以及能夠?qū)χ車澜邕M(jìn)行觀察并給出增強(qiáng)視野的智能手機(jī)。要使這種嵌入式視覺技術(shù)的新天地成為可能,就需要有一種選擇和集成IP的新方法。
圖1:采用一個(gè)CogniVue APEX2-642內(nèi)核的、支持視覺的SoC架構(gòu)實(shí)例。
為了有效地實(shí)現(xiàn)嵌入式圖像的流水線處理和視覺處理算法,CogniVue設(shè)計(jì)了如圖1所示APEX圖像識別處理內(nèi)核。圖像識別處理器(ICP)已經(jīng)在量產(chǎn)之中,并且能夠用于包括汽車攝像頭(例如Zorg Industries公司為AudioVox公司提供的攝像頭)以及一些新型可穿戴式消費(fèi)類產(chǎn)品(例如NeoLAB Convergence公司的Neo. 1智能簽字筆,如圖2所示)在內(nèi)的許多應(yīng)用。使用專為圖像處理所設(shè)計(jì)的處理器所帶來的優(yōu)勢,是推動(dòng)這些IP不斷地集成到這些消費(fèi)類應(yīng)用中的動(dòng)力。例如,一個(gè)APEC這樣的內(nèi)核與傳統(tǒng)的處理器架構(gòu)相比,能夠在單位面積、單位功耗內(nèi)為視覺處理提供好100倍的性能。對于NEO.1產(chǎn)品,它能夠在維持非常低功耗的同時(shí),提供120fps速率的處理能力,使得這款電池供電的設(shè)備能夠在一次充電后持續(xù)工作數(shù)天。
圖2:CogniVue APEC內(nèi)核為NeoLABCovergence公司的NEO.1智能簽字筆提供了強(qiáng)大的處理能力。
要實(shí)現(xiàn)這種性能,需要了解有關(guān)圖像處理需求的基本知識,并采用一種面向客戶產(chǎn)業(yè)領(lǐng)域需求的詳盡的測試和演示方法。任何內(nèi)核在交付之前,都需要進(jìn)行廣泛的認(rèn)證,尤其是在諸如汽車等需要符合行業(yè)安全標(biāo)準(zhǔn)(如ISO 26262 "Road vehicles – Functional safety")的市場中。
評估IP
雖然這些需求要求進(jìn)行測試,但對于IP公司還有附加的動(dòng)力來提供驗(yàn)證和評估平臺——這些平臺不僅能夠顯示出功能性和符合性,還能夠在不同的等級上執(zhí)行,以能夠凸顯其對潛在客戶的真實(shí)價(jià)值。
作為這種動(dòng)力的一個(gè)案例,如果為目前已知的有限且特定的應(yīng)用創(chuàng)建能夠很好執(zhí)行的視覺IP并不那么困難,這是事實(shí)。而我們是要從頭開始構(gòu)建視覺有效性和靈活性的技術(shù),重點(diǎn)是怎樣才能確保IP能在多種應(yīng)用中都以最高的水平執(zhí)行。并且我們知道多說無用,如果沒有真實(shí)世界“可觀測(eyes-on)”的演示來證明IP的質(zhì)量和性能,IP的質(zhì)量及應(yīng)用適應(yīng)性可能并不那么顯而易見。
對于那些希望對其合作伙伴或客戶實(shí)現(xiàn)授權(quán)的無晶圓廠IP供應(yīng)商,其挑戰(zhàn)是演示在真實(shí)世界中運(yùn)行的真實(shí)的IP應(yīng)用。慶幸的是,FPGA平臺與技術(shù)世界的其它部分?jǐn)y手實(shí)現(xiàn)了不斷的飛躍發(fā)展,為這種演示活動(dòng)提供了一種工具。換言之,F(xiàn)PGA能夠提供必要的容量和性能來演示:如果IP在下一代定制ASIC中被選用,將會實(shí)現(xiàn)何種可能。盡管如此,我們似乎總是處在最前沿,推動(dòng)著FPGA的容量和性能極限不斷前進(jìn),并且總是期望達(dá)到更多。
FPGA供應(yīng)商正變得非常擅長軟件工具開發(fā),但這些工具將IP的使用和個(gè)別FPGA公司緊密聯(lián)系在一起?,F(xiàn)今基于某家FPGA供應(yīng)商平臺上的演示,應(yīng)該要準(zhǔn)備好能夠遷移到日后完全不同的FPGA供應(yīng)商平臺上,并能很好地工作。這能夠通過內(nèi)部團(tuán)隊(duì)或終端客戶推動(dòng),并且可能是因?yàn)槭盏桨ㄆ?熟悉度、傳統(tǒng)的基礎(chǔ)設(shè)施(硬軟件組件),以及有時(shí)能夠提供更快、更少成本、更佳尺寸的新平臺等各種因素的組合的推動(dòng)。此外,公共的RTL代碼庫必須同時(shí)工作在最終的ASIC設(shè)計(jì)流程和FPGA “IP演示”設(shè)計(jì)流程中,如圖3所示。
圖3:IP需要在來自多家供應(yīng)商的多種ASIC和FPGA原型演示平臺上實(shí)現(xiàn)。
該工作模型的一個(gè)絕佳實(shí)例是,CogniVue為實(shí)現(xiàn)復(fù)雜的IP開發(fā)與演示,充分利用Synopsys Synplify工具以及相伴的Synopsys DesignWare IP。Synplify為我們用于交付IP的硅器件提供了卓越的映射能力和邏輯性能。對于初入行的FPGA開發(fā)人員來說,這有些違反直覺:確實(shí),供應(yīng)商應(yīng)當(dāng)知道如何最好地將邏輯功能映射到其產(chǎn)品之中。供應(yīng)商工具正變得非常擅長于為基本開發(fā)人員提供他們可能需要的任何東西。在許多案例中,他們?nèi)绻軌蛱峁┳顑?yōu)結(jié)果,并不會讓我們感到吃驚;但實(shí)際上,在一片F(xiàn)PGA中實(shí)現(xiàn)一款RTL設(shè)計(jì)的最初階段是包括時(shí)序和面積優(yōu)化的邏輯綜合。在我們的案例中,我們已經(jīng)找到Synopsys來幫助解決硬件實(shí)現(xiàn)的基本綜合問題,它獨(dú)立于最終的技術(shù)映射(無論是FPGA還是ASIC芯片)。
結(jié)果證明
對我們來說,與他們在克服這個(gè)挑戰(zhàn)中所采用方法的價(jià)值相關(guān)的證明可以在一個(gè)事實(shí)中找到,即我們常規(guī)地致力于代碼庫,它們總是在推展著可以提供的FPGA器件的極限,而這在僅使用FPGA供應(yīng)商的工具時(shí)并不適合。在這些案例中,在綜合之后甚至無需進(jìn)行布局布線嘗試。利用Synplify,通常憑借在目標(biāo)FPGA器件中減少所需的綜合后占位面積和相應(yīng)的空間,使這些處在邊界線的設(shè)計(jì)得以實(shí)現(xiàn)。表1揭示了在一項(xiàng)近期設(shè)計(jì)中獲得的資源利用率數(shù)據(jù),它將使用供應(yīng)商提供的綜合和布局布線工具進(jìn)行的設(shè)計(jì),與在相同設(shè)計(jì)上使用Synplify進(jìn)行綜合、并接著采用供應(yīng)商工具進(jìn)行布局布線所獲得的資源利用率結(jié)果進(jìn)行了對比。
表1:僅用供應(yīng)商工具與同時(shí)利用Synplify和供應(yīng)商工具的結(jié)果對比。
表1中的一個(gè)關(guān)鍵指標(biāo)是,基于供應(yīng)商工具綜合的設(shè)計(jì)的利用率為116.91%,不適合該平臺上可提供的FPGA器件。這是我們的IP和我們需要持續(xù)將設(shè)計(jì)映射到FPGA上的一個(gè)真實(shí)案例。從系統(tǒng)和軟件開發(fā)的角度來看,我們能夠重新利用這些FPGA平臺是至關(guān)重要。
我們也可以為設(shè)計(jì)創(chuàng)建一個(gè)FPGA變體來減少功能并實(shí)現(xiàn)契合,但這將與理想情況相距甚遠(yuǎn),因?yàn)樵贔PGA中所驗(yàn)證的RTL設(shè)計(jì)與為集成到ASIC SoC項(xiàng)目中而交付的RTL設(shè)計(jì)兩者之間存在差異。
許多老練的FPGA用戶可能會評論說,即便在使用Synplify綜合后,在利用率為94.92%的情況下也非常危險(xiǎn),因?yàn)樵贔PGA設(shè)計(jì)中即便是有較小改動(dòng)(例如增加幾個(gè)邏輯門),也可能對總體面積和可實(shí)現(xiàn)的時(shí)鐘速率產(chǎn)生很大影響。然而,我們的經(jīng)驗(yàn)顯示出這個(gè)結(jié)果已經(jīng)能夠很可靠地予以實(shí)現(xiàn)了,并且實(shí)現(xiàn)的時(shí)鐘速率處在我們期望值范圍的上端。這當(dāng)然是提升供應(yīng)商實(shí)現(xiàn)工具質(zhì)量的一項(xiàng)有力證明。
然后將它們放在一起,該工作模型的結(jié)果將為自己來代言。從Synplify到供應(yīng)商布局布線的流程也工作良好,它不僅提供了更好的結(jié)果,還以更少的總運(yùn)行時(shí)間實(shí)現(xiàn)了這些結(jié)果。由于FPGA供應(yīng)商的工具在綜合階段有時(shí)比Synplify實(shí)現(xiàn)相同階段要快,所以這個(gè)優(yōu)勢并不總是立竿見影。然而我們不斷看到,在僅采用供應(yīng)商工具進(jìn)行綜合之后的實(shí)現(xiàn)階段,比用經(jīng)Synplify優(yōu)化的網(wǎng)表來完成實(shí)現(xiàn)所花的時(shí)間要長得多。
由于在僅有供應(yīng)商工具的環(huán)境中上述案例不可能實(shí)現(xiàn),因而該案例不具有代表性。相反,讓我們來看另一個(gè)常見(大得多的)的案例,CogniVue用這個(gè)案例來演示其IP的能力和可擴(kuò)展性,這個(gè)CogniVue IP相當(dāng)于約2.6M個(gè)NAND2 ASIC門。采用Synplify流程來構(gòu)建該配置及其相關(guān)的系統(tǒng)組件(處理器、存儲器和互連等),花費(fèi)了大約4小時(shí)20分鐘;而僅用供應(yīng)商工具來實(shí)現(xiàn)相同的架構(gòu),據(jù)我們觀察需要大約5個(gè)小時(shí)45分鐘。在時(shí)間上長了33%,而得到的結(jié)果優(yōu)化較差。
重定時(shí)序和流水線處理
Synplify綜合的時(shí)間開銷會更多的部分原因是,為提升性能,它在后臺能提供強(qiáng)大的QOR能力。我們通常用Synplify的兩個(gè)功能來是顯示我們的FPGA平臺獲得最佳的性能,這兩個(gè)功能是re-timing和pipelining.
Retiming是對時(shí)序元件(例如FLOPS)進(jìn)行重分配,以更好地平衡邏輯電平和/或它們之間布線距離的過程。在這種方法中,它能夠通過縮短可能會降低可實(shí)現(xiàn)性能的長路徑、并延長會有未使用額外裕量的較短路徑,從而改善總體時(shí)序。所有這些都沒有任何RTL改變,并且從設(shè)計(jì)的主要輸入輸出來觀測,設(shè)計(jì)的行為沒有任何改變;時(shí)序原件的延遲總數(shù)維持在相同水平,并且功能操作沒有改變。
Pipelining是一個(gè)相關(guān)過程,它把復(fù)雜功能(例如乘法)分解成若干階段,以至于輸入級能夠在每個(gè)周期都接受新的輸入,同時(shí)輸出級和中間級持續(xù)處理之前的輸入。通過這種分級,時(shí)鐘速率和吞吐率能夠在不對延遲產(chǎn)生任何重要影響的情況下得以增加。按照Synplify應(yīng)用到乘法等計(jì)算上的綜合功能,這意味著FLOPS布置在乘法操作之前和/或之后,能被識別和標(biāo)記為流水線候選,因此能通過工具自動(dòng)地轉(zhuǎn)移到乘法器中。這與上面描述的retiming功能實(shí)現(xiàn)了類似種類的時(shí)序平衡,并能夠得到更高的時(shí)鐘速率和復(fù)雜RTL功能的優(yōu)化效率。
當(dāng)你考慮選用這些QoR功能來自動(dòng)分析和改善給定設(shè)計(jì)時(shí),你可以看到它們能夠幫助工程師真正實(shí)現(xiàn)更快、更好的設(shè)計(jì)工作。同樣,高級語言如Verilog和VHDL(廢除集成電路設(shè)計(jì)的原理圖捕獲)的邏輯實(shí)現(xiàn),已經(jīng)基本依賴綜合工具,綜合工具的這種功能,至少根據(jù)我們的涉及到Synopsys的案例的情況,它們可以可靠的從復(fù)雜的時(shí)序元件和組合邏輯汪洋大海中尋找到最優(yōu)的時(shí)序配置。這意味著,使用諸如Synplify等工具的工程師能夠以一種自然、明晰的方式捕獲他們的設(shè)計(jì),然后依賴軟件工具進(jìn)行優(yōu)化,否則就會搞亂和混淆他們的代碼。
這些優(yōu)化確實(shí)能夠幫助我們改善測試平臺可實(shí)現(xiàn)的時(shí)鐘速率,并且在這個(gè)案例中,它們獲得了進(jìn)一步的幫助,Synplify極大地降低了我們的邏輯占位面積(如表1所示)。使用較少的邏輯(較少的FPGA資源)意味著相應(yīng)較短的路徑,這通常能使可實(shí)現(xiàn)的時(shí)鐘速率變高并使時(shí)序收斂所花費(fèi)的時(shí)間/努力變小。單看這幾點(diǎn),這種方法由于其能夠使我們針對自己的演示平臺實(shí)現(xiàn)最佳的映射和性能而成為最佳之選。我們能夠針對多家供應(yīng)商采用相同的綜合操作來實(shí)現(xiàn),從而直接鎖定了生意。
系統(tǒng)環(huán)境
獨(dú)立于供應(yīng)商的綜合只是等式的一部分。CogniVue IP追求的是在系統(tǒng)環(huán)境(或者SoC)中對最多樣化的應(yīng)用提供最佳的視覺處理性能。并且這意味著,我們需要有附加的IP(例如主處理器接口、DDR RAM控制器和互連等)來構(gòu)建一個(gè)有用的演示平臺。FPGA供應(yīng)商在該領(lǐng)域也有很多IP可以提供,同時(shí)為了獲得最優(yōu)實(shí)現(xiàn)也必須用到他們的一些組件。例如,由于存在著諸如I/O速度和內(nèi)部布線的物理接口考慮因素,高速DDR RAM控制器最好是從那些供應(yīng)商已經(jīng)匹配到其器件的IP中進(jìn)行挑選。
在我們的案例中,我們選擇使用了Synopsys的DesignWare IP——不僅是基于面積和時(shí)鐘速率的考慮,還考慮到了接口效率以及靈活性等其他至關(guān)重要的條件。在選擇IP時(shí),將所有這些標(biāo)準(zhǔn)牢記于心非常重要。
圖4:在ASIC和FPGA兩種原型演示平臺中,Synopsys AMBA DesignWare IP與CogniVue Vision IP子系統(tǒng)一起工作。
如圖4中的案例所示,現(xiàn)今最常見的一個(gè)SoC互連IP是ARM公司提供的AMBA AXI。FPGA供應(yīng)商意識到此點(diǎn),并通常為提供可能需要的所有AXI組件以拼接在一起成為IP陣列。但是為AMBA選擇Synopsys DesignWare IP解決方案的決定,是基于我們以一種供應(yīng)商獨(dú)立、且不僅能應(yīng)用到FPGA還能應(yīng)用到可能最終實(shí)現(xiàn)的ASIC中的方式,來尋找業(yè)界領(lǐng)先的靈活性、效率、面積和速率。因?yàn)榛诓粌H限于功耗和面積的、而是更廣泛的標(biāo)準(zhǔn)來選擇IP,我們尋求的是超越我們自己的領(lǐng)域來演示可交互性,并為客戶加大我們能提供的指導(dǎo)。
總而言之,無論你的IP產(chǎn)品質(zhì)量有多好,如果圍繞它、驅(qū)動(dòng)它和支持它的邏輯未能理想地搭配,那么質(zhì)量也會缺失。你能為構(gòu)建一個(gè)最優(yōu)的、高性能演示平臺提供什么,就意味著將凸顯其什么價(jià)值,并說服客戶不斷向你尋求更多。我們在視覺處理領(lǐng)域有著悠久的歷史,并且我們一路走來所學(xué)到的知識形成了產(chǎn)品的堅(jiān)實(shí)基礎(chǔ),其不僅是能在單位面積、單位功耗內(nèi)提供一流的性能,而且能在本質(zhì)上滿足現(xiàn)今和將來對靈活性和可應(yīng)用性的需求。同時(shí)擁有能使用任何供應(yīng)商的FPGA且面向ASIC能自動(dòng)提供IP核的綜合工具和IP,以及能實(shí)現(xiàn)最佳的QoR和運(yùn)行時(shí)間,是我們設(shè)計(jì)獲得成功的重要因素。
評論