<form id="zvbvv"></form>

<address id="zvbvv"><listing id="zvbvv"></listing></address>

    <sub id="zvbvv"></sub>

    <form id="zvbvv"><nobr id="zvbvv"><progress id="zvbvv"></progress></nobr></form>

    <noframes id="zvbvv">

        《電子技術應用》
        您所在的位置:首頁 > 可編程邏輯 > 業界動態 > SDSoC開發環境能為您帶來什么

        SDSoC開發環境能為您帶來什么

        2016-04-14
        作者:Ally Zhou,賽靈思工具與設計方法學專家

          Software Define 的概念

          近年來“Software Define ”  軟件定義這個詞持續火熱,全球知名技術研究和咨詢公司Gartner早在對2014年最有戰略意義的十大技術與趨勢做出預測時,便提出了軟件定義一切(Software Defined Anything)的概念,他們預測這類技術會在未來三年里擁有巨大潛力,并在同行業中產生重大影響。兩年后的今天回顧這一概念和技術的發展,不難看出,Software Define的確成為了行業風向標,其應用可謂無處不在。

          相信一直關注賽靈思技術動向的工程師們對SDx這個詞并不陌生,概括來講,Xilinx的SDx指的是一系列新工具,專為系統和軟件工程師而設計,可以使那些只有很少或根本沒有FPGA設計經驗的研發人員直接使用高級編程語言在強大的可編程硬件上進行設計,并且與那些嵌入芯片內部的或是在片外連接的業界標準處理器例如ARM或x86一起協同工作。 可以看到SDx系列目前有三個主要成員,包括SDSoC、SDAccel和SDNet。


          SDSoC? 開發環境允許嵌入式和應用軟件開發人員更廣泛的利用Zynq?? SoC和MPSoCs的性能,提供超過100倍的軟件性能加速。

          SDAccel? 開發環境針對的是OpenCL?,C和C ++的設計應用,與那些CPU和GPU在數據中心和醫療影像等領域的實現方案相比,利用FPGA進行加速可獲得高達25倍的性能功耗比提升。

          SDNet是“軟”定義網絡的解決方案。具體來說就是SDNet結合賽靈思的全面可編程器件,打造出了“軟”定義網絡這樣的交叉技術,從而將可編程能力和智能化功能從控制層擴展至數據層,不僅支持SDN,而且還可以突破性地支持任何軟件定義網絡架構。

          從以上簡要的介紹可以看出SDx系列的三個工具所針對的器件與市場各有側重,但總體上都是面向軟件和系統工程師的全面可編程抽象化設計工具,是賽靈思業界領先技術實力的進一步體現。

          其中,專門用作提高賽靈思異構Zynq SoC以及MPSoC的設計生產力而生的SDSoC開發環境就是這篇短文將要介紹的重點,在以下的篇幅中,我們會為大家分析SDSoC主要針對的市場和應用,SDSoC的各種創新,應用SDSoC的好處和優勢等。

          Vivao HLS

          我們今天的主要內容是介紹SDSoC,但在開始之前,需要提一下Vivado HLS這個在高級抽象語言與底層硬件描述語言之間架起了一座橋梁的高階綜合工具。

          相信大部分賽靈思的用戶對Vivado HLS已經不再陌生,甚至有可能已經是HLS的用戶。的確,經過了三四年的上市推廣,Vivado HLS早已不再是一個全新的工具,我們已經有超過1000家成功的客戶。HLS的靈活性和生產力優勢是顯而易見的,甚至賽靈思的IP開發部門在交付Vivado 2015.1版本及以后的部分視頻IP時也都是使用HLS從C/C++語言開始設計。

          Vivado HLS可以在很短的時間內生成與手工編碼質量相當的RTL代碼,并且允許用戶將同樣在C測試平臺生成的測試向量用在C仿真和RTL驗證中,從而大幅加速驗證過程。對那些使用C / C ++描述規范的算法設計類客戶來說,這是理想的解決方案,可以將其已有的各類浮點或定點算法無縫實現到FPGA硬件中,比較典型的應用就是各類視頻運算、加解密等DSP算法等等。

          使用Vivado HLS可以實現真正意義上基于C語言的IP,通過HLS,我們可以把用戶的C/C++以及System C算法以VHDL或Verilog的形式輸出,然后通過Vivado IPI或SysGen等賽靈思的工具,整合到你的FPGA設計工程中去。也就是說,使用Vivado HLS可以更便捷高效地完成從高階抽象語言C/C++到賽靈思FPGA可編程邏輯硬件的設計實現過程。

          Vivado HLS不僅是簡單的翻譯工具或是綜合工具,更為重要的是,我們可以將其產生的RTL以IP的形式導出到Vivado IPI中,或者直接調用HLS生成的RTL文件到另一個RTL項目,甚至是輸出到DSP設計的SysGen工程中。

          Zynq SoC 器件架構

          以下圖片展示了賽靈思Zynq SoC器件的架構圖。SDSoC所針對的器件就是包括Zynq SoC和下一代的MPSoC在內的多核異構可編程邏輯芯片。

        c.png

          Zynq-7000 系列是賽靈思推出的業界第一款將ARM A9雙核處理器與28nm低功耗可編程邏輯緊密集成在一起的SoC產品。從圖中可以可以看出左上角處理器所在的區域稱作Processing System即PS,而其余可編程邏輯所在的區域則稱作Programmable Logic即PL。

          位于PS側的ARM內部用硬件實現了AXI總線協議,提供GP、HP和ACP等性能各不相同的數個物理接口。而PL側則需要使用可編程邏輯來搭建相應的AXI接口。在具體設計時,可以在Vivado IPI中使用賽靈思提供的IP如AXI-Stream等等來實現。此外,軟硬件之間有數據交互的設計就牽扯到在軟硬件之間如何進行數據搬移,這種情況下,我們還需要一個或數個DataMover,這也同樣需要在PL側使用可編程邏輯來搭建。

          Zynq SoC 開發流程

          之所以要花幾頁篇幅來介紹Vivado HLS的作用與Zynq的架構,就是為了更清楚地描述全面可編程Zynq SoC的開發流程。

          對于以C/C++等高階語言為起點來進行SoC開發的用戶來說,由C/C++算法開始,首先需要對軟硬件進行分區,選擇哪些部分放入PL側進行加速,哪些部分仍然在PS側用軟件實現。對那些指定到放入可編程邏輯上用于硬件加速的部分,還需要完成C代碼到RTL IP的轉換。接下來,就是完成軟/硬件之間的連接,包括使用怎樣的DataMover、PS與PL之間的接口如何配置等,接下來還要完成配套的軟件驅動程序。所有這些往往牽扯到數個不同團隊和專業人員的通力合作,需要通過數次迭代來探索最佳的實現方案和系統架構。這個流程圖很清晰地描繪了SoC的開發流程,每一步都是耗時耗力的工作。

        d.png

          不使用SDSoC的開發流程

          具體到每一步的工作來看,傳統的Zynq設計流程大致分為五個步驟:

        e.png

          首先,系統架構師來決定將哪些部分用于軟件實現,哪些部分放入硬件加速,即所謂的軟硬件分區。劃分為硬件實現的功能將需要使用RTL代碼來開發,或是使用HLS將C/C++代碼綜合成Vivado中可實現的IP。然后,要在Vivado IPI中搭建DataMover和接口。后是應用軟件和驅動程序的開發。

          這無疑是一個十分耗時的過程,需要多個部門和團隊之間的設計切換。有時候,即便這樣完成后的設計可以正常工作,卻可能無法滿足你在吞吐量、延遲或面積等方面的設計性能要求。此時就可能需要通過修改系統連接來重新搭建硬件架構來對系統性能進一步優化。但這么做,又將導致軟件應用程序和驅動程序的變化。因此,你往往需要與多個軟件和硬件團隊緊密合作,通過多次迭代設計來試著滿足最終需求。

          在某些情況下,設計不能滿足你的性能要求的原因在于 軟件性能不夠,或是硬件的占用率太高。這時候,你就需要返回到最初的設計,重新修改軟/硬件分區方案,然后前面所說的硬件實現,系統連接,軟件驅動等所有步驟都要重新再來一邊,這勢必要求更多的團隊一起配合,改變設計來探索另一種架構,而且可能面臨更多次的設計迭代,進一步拉長設計周期。

          毫無疑問,用在系統優化上的時間對time-to-market的影響巨大。此外,我們也注意到在Zynq SoC的設計中,用戶最關注的部分往往是算法的最終實現和算法模塊的優化,包括IP或是軟件功能塊。因此,SDSoC的設計理念也致力于解決這些用戶最關注的問題。

          應用了SDSoC的開發流程

          如下圖所示,在應用了SDSoC的Zynq設計流程中,工具可以自動搭建軟硬件之間的通訊部分,包括DataMover、軟件驅動程序和硬件連接接口。工具還可以將整個開發過程抽象到C/C++的應用層面,以C/C++為起點來進行算法開發,當然,工具也可以調用以傳統的IP方法開發的算法模塊,包括已經由Vivado HLS轉換后的RTL IP,也包括那些本身就由Verilog或VHDL硬件描述語言編寫的IP。在調用這類IP時,只需將其封裝為C可調用庫的形式即可。 在SDSoC中,我們能夠輕松進行軟件/硬件的劃分,用戶僅需在圖形化界面中用鼠標單擊指定那些需要進行硬件加速的模塊即可。

        f.png

          相比較傳統SoC設計流程,SDSoC通過自動生成硬件連接和軟件驅動程序大大簡化了Zynq SoC和MPSoC的開發過程。它會自動調用Vivado HLS來將那些用C/C++開發的算法模塊轉化為Vivado可綜合的RTL IP,它也可以將那些已經優化過的HDL IP模塊通過C可調用庫的方式進行重用。用戶可以在軟件中通過簡單點擊某個功能塊將其應用到PL上進行加速來迅速修改軟/硬件的分區,因此,它也有助于系統架構設計人員運行快速假設性分析來評估系統的性能和面積。

          在應用SDSoC之后,我們可以非常迅速地將你的設計應用在Zynq系統上,即使第一遍實現后的性能不達標,也可以使用SDSoC快速選擇不同的用于硬件加速的功能塊,探索不同的硬件/軟件分區方案,或是通過pragma等手段來指導工具產生不同的系統配置等方法來進一步優化設計。統計顯示,使用SDSoC開開發Zynq系統,可以將整體開發時間從原本的數周縮短至數日甚至數個小時。

          現在我們稍作總結就會發現,SDSoC開發環境提供了一個大大簡化的C / C ++編程體驗,用戶現在可以在嵌入式開發人員所熟悉的基于Eclipse?的IDE上完成整個Zynq SoC的開發。SDSoC帶來了業界首個C / C ++的全系統優化編譯器,提供系統級的Profiling特征分析,自動將軟件代碼放入可編程邏輯中加速,自動產生系統連接,和相關的庫以加速開發。SDSoC也為用戶和第三方平臺開發者提供了流程支持,通過提供平臺描述文件的的手段,可以使他們自己設計的包含有Zynq SoC的開發板在SDSoC開發環境中使用。

          應用SDSoC,開發人員可以從整個設計的C / C ++代碼開始系統級特征分析,從而找出系統設計的瓶頸。然后用戶只需選擇將那些性能瓶頸的功能塊放入PL中加速。 SDSoC的全系統優化編譯器會使用Vivado HLS自動創建RTL IP,生成最優的系統連接,配置軟件驅動程序。最終的結果是一個可運行的FPGA配置比特流文件和軟件的引導映像。所有這些,完全由一個基于Eclipse的嵌入式開發環境生成。

          SDSoC開發環境的優勢

          SDSoC提供給用戶的是一個可以用來完成整個Zynq SoC和MPSoC開發的基于Eclipse的軟件環境,這個環境對那些已經在使用DSP芯片、視頻SoC 和CPU處理器的嵌入式開發人員來說是在熟悉不過的。

          在IDE中,用戶可以簡單地選擇用來放入PL中加速的功能塊,無需手動創建用于硬件實現的Vivado工程或是軟件驅動程序。另外,已經有很多針對FPGA硬件優化過的IP庫可以經由Vivado HLS導出,除了賽靈思和ARM,我們也有很多合作伙伴提供更多特定的算法庫,包括視頻類,加解密,OpenCV等等。幫助用戶進一步提高生產力。

          關于操作系統,目前的SDSoC版本中已經支持的目標平臺Platform大都支持多種OS,包括Linux,FreeRTOS和Standalone,如果用戶需要其他操作系統的支持,只要將所需OS打包到所用的目標平臺中即可。具體做法涉及SDSoC目標平臺的創建,我們稍后會在另外的文章中做詳細介紹。

        g.png

          SDSoC提供系統級特征分析功能。包括快速的性能估算,允許用戶通過快速的性能反饋來調整和優化軟硬件代碼分區、調整系統構建,從而達到系統要求的性能和面積,同時為整個開發過程節省了大量時間。這個估算是對整個系統的性能估算,包括可編程邏輯、數據通信和處理器系統等,SDSoC還可以報告出部分功能塊加速后的軟件/硬件的周期性能、可編程邏輯部分的硬件占用率。SDSoC也可以通過在ARM上的快速運行反饋來報告出全軟件實現方案的周期性能,同時跟硬件加速方案性能估算進行對比,快速報告出性能提升比例。幫助用戶在最短的時間內探索出最佳的設計實現方案。

          在目標平臺上運行時,SDSoC還可以通過使用ARM 處理器提供的性能計數器和自動插入到可編程邏輯的AXI總線性能監視器即APM來收集包括自動化高速緩存,內存和總線利用率等等的硬件性能數據,報告系統性能測量數據。

          SDSoC的核心技術可謂業界首創的全系統優化編譯器,這個編譯器是一個統一的界面,不僅可以針對基于ARM的處理器系統,也可以針對片內的可編程邏輯。SDSoC開發環境旨在為系統架構師以及軟件開發團隊提供一個可以使用唯一的“黃金C / C ++代碼”來快速配置,并同步生成構建系統所需的各類軟硬件架構的可能。軟硬件統一的編譯器,可以從系統視角出發,帶來最佳的系統構建與連接,優化的存儲器接口和軟件驅動等。全系統優化編譯器的另一大優勢是支持快速的設計空間探索,允許開發者在性能和吞吐量,延遲及面積之間作出權衡,同時保持較短的設計迭代次數。

        h.png

          具體到提升設計生產力這一點來說,我們就以一個32乘32 的浮點矩陣乘法設計來舉例,如上圖所示,正因為SDSoC開發環境特有的全系統優化編譯器和系統級特征分析等功能,使得使用SDSoC進行設計后,用戶可以在很短的時間內迅速生成系統配置和各種宏觀、微觀架構,探索最佳的互聯和存儲器接口,從而使得用戶可以在最短的時間內探索出使用Zynq SoC設計的十幾種可能的配置,并找到其中性能最佳的組合(圖中用綠色圈出),繼而繼續使用SDSoC來具體進行設計實現和調試。

          配合使用ARM 處理器提供的性能計數器和自動插入到可編程邏輯的AXI總線性能監視器收集到的各種性能數據,SDSoC還可以幫助系統架構師在最短的時間內探索出針對自己的應用平臺和設計應用來說性能最佳的系統設計方案。與傳統的軟件硬件分別開發的流程相比可以節約大量的開發時間和成本。

          SDSoC應用示例

          介紹了這么多SDSoC的優勢,相信不難看出,SDSoC提供的是一個真正的端到端流程。對用戶來說,從C/C++代碼入手,經過SDSoC,可以完成軟硬件分區,生成RTL IP功能塊,完成PS和PL之間的功能連接,包括硬件接口和軟件驅動,最后針對目標設計平臺產生出可以用來加載FPGA的比特流文件和可以用來啟動操作系統的軟件引導映像。所有這些在以往需要多個部門通力合作的工序如今都已經簡化到SDSoC這一個開發環境中。

          這里我們要強調一下,雖然對用戶來說,整個圖形化操作界面是軟件和嵌入式開發人員非常熟悉的,所有的工序也都是在SDSoC這一個開發環境中執行和實現。但SDSoC并不是完全獨立完成了包括估算、編譯、調試和配置等等的過程,真正完成這些工序的仍然是在后臺被SDSoC自動調用的各種賽靈思已經成熟商用的軟件,包括Vivado、HLS、IPI和SDK等等。

          換句話說,SDSoC的問世并不是為了替代在它之前已經用于Zynq SoC開發的各個獨立的工具,而是將其整合在一起,并提供全系統編譯和特征分析。是提升SoC開發的設計效率和生產力的一大利器。

          下面我們來看一個簡單的示例:

        i.png

          首先,所有算法輸入可以都是由C/C++寫成,或是有部分為Vivado HLS生成的IP,甚至可以就是由HDL寫成的IP,只要將其設為C語言可調用IP即可。 主函數下面包含一個矩陣乘法,和一個矩陣加法。SDSoC讀入設計的源代碼,我們選擇將矩陣乘法和加法在PL中加速,而主函數仍然留在PS中運行。要實現這樣的軟硬件分區,用戶僅需在SDSoC中選擇需要硬件加速的功能函數并指定即可。SDSoC會根據用戶的劃分來生成PS和PL之間的DataMover、配置硬件接口和軟件驅動,輸出成Vivado IPI工程,同時提供全系統性能分析和估算。用戶可以根據需要對系統實現方式進行干預和改動。最后,SDSoC可以輸出整個設計的FPGA比特流文件和可以用來啟動操作系統的軟件引導映像。

          這一過程全部都在SDSoC的界面中完成,并且可以在短短數個小時內探索多個系統配置方案,找到相對最佳性能的實現方案,并加載到目標板上進行調試和驗證。放在以往軟硬件分別設計的傳統流程上簡直不可想象。

          SDSoC 目標平臺

          賽靈思在2015年七月宣布開放正式版SDSoC開發環境,現在我們的官網可以下載這一軟件,正式支持的開發板也在逐步增加中,除了在目前版本上打開SDSoC可以看到的包括賽靈思ZC702、706等開發平臺,還有很多已經認證的第三方開發平臺,更多的平臺正在逐步加入。

          打開SDSoC創建一個新的工程,就可以看到可選的Platform,下拉菜單顯示的是目前版本上已經支持的所有內置平臺。有些特定應用平臺可能需要額外下載和安裝,具體所有支持的平臺列表可以在官網鏈接上查看。

          此外賽靈思及其函數庫合作伙伴還提供包括OpenCV、線性代數和信號處理在內的庫函數。我們還新增了八家認證設計服務聯盟成員以擴展生態系統,從而使世界各地的設計團隊能夠充分發揮全面可編程 Zynq SoC和MPSoC的性能進行自己的設計開發。

          如果上面所列這些開發平臺都不能滿足您的設計需要,也沒有問題,因為SDSoC同樣支持您自己開發的含有Zynq SoC或MPSoC的開發板。當然,在使用SDSoC在您的開發板上進行設計之前,還需要把您的開發板轉換成相應的設計平臺描述文件,導入到SDSoC中,這樣,在啟動SDSoC并開始一個新的設計時,便可以在目標開發平臺的下拉菜單中找到您自己的開發板。

          要在SDSoC中創建客戶定制平臺并不復雜,只需要從現有的Vivado IPI工程和軟件項目工程中導出工具所需的硬件平臺和軟件平臺元數據,最后將數據以SDSoC要求的形式打包放入指定的路徑即可。更具體的操作方法和流程,歡迎查看SDSoC安裝目錄下的UG1146文檔以及相關快速入門視頻,具體做法在本文不做深入討論。

          小結

          這篇短文旨在幫助大家了解賽靈思針對提升異構Zynq SoC以及MPSoC的設計生產力而推出的SDSoC開發環境,通過對賽靈思軟件定義相關解決方案的介紹,以及對使用SDSoC前后Zynq SoC開發流程的比較,希望讓大家有個更直觀的認識,選用更先進高效的設計工具,提升SoC設計生產力。

          衷心祝愿大家在全面可編程邏輯設計之路上收獲更多喜悅,讓Xilinx和SDSoC為您的成功助力。


        本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306116;郵箱:aet@chinaaet.com。
        日本一级婬片免费看
        <form id="zvbvv"></form>

        <address id="zvbvv"><listing id="zvbvv"></listing></address>

          <sub id="zvbvv"></sub>

          <form id="zvbvv"><nobr id="zvbvv"><progress id="zvbvv"></progress></nobr></form>

          <noframes id="zvbvv">