大俠好,歡迎來到FPGA技術江湖,江湖偌大,相見即是緣分。大俠可以關注FPGA技術江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。
今天給大俠帶來簡談Xilinx Zynq-7000嵌入式系統(tǒng)設計與實現,話不多說,上貨。
Xilinx的ZYNQ系列FPGA是二種看上去對立面的思想的融合,ARM處理器的串行執(zhí)行+FPGA的并行執(zhí)行,著力于解決大數據處理、人工智能等復雜高性能算法處理。新的設計工具的推出,vivado HLS,更加注重嵌入式系統(tǒng)的系統(tǒng)級建模,通過HLS工具,用戶只需要編寫C語言代碼,就可以讓工具自動轉換和生成HDL代碼。
隨著異構架構和片上系統(tǒng)技術的不斷發(fā)展,協(xié)同設計、協(xié)同仿真和協(xié)同調試將成為未來嵌入式系統(tǒng)開發(fā)者必備的素質。所謂的協(xié)同,就是要求設計者同時掌握軟件和硬件知識,這與傳統(tǒng)上軟件和硬件分離的設計方法有著本質的區(qū)別。由于半導體技術的不斷發(fā)展,使得電子系統(tǒng)從傳統(tǒng)的PCB板級進化到芯片級,對于嵌入式系統(tǒng)的小型化、低功耗和可靠性的改善都提供了強大的保證。
1、全可編程片上系統(tǒng)基礎知識
以傳統(tǒng)的現場可編程門陣列結構(Field Programmable Gate Array,FPGA)為基礎,將專用的中央處理器單元(Central Processing Uint,CPU)和可編程邏輯資源集成在單個芯片中,產生了一種全新的設計平臺,我們稱之為全可編程片上系統(tǒng)(ALL Programmable System-on-chip,APSoC).
SoC的架構如下:(固化、靈活性差、專用性強、設計復雜)
SoC、CPU、MCU的比較
SoC:可以集成多個功能強大的處理器內核、可以集成存儲塊、IO資源及其他外設、可以集成GPUDSP音頻視頻解碼器等、可以運行不同的操作系統(tǒng)、用于高級應用如智能手機平板電腦等;
CPU:單個處理器核,需要外部額外的存儲器核外設支持,應用絕大多數場合;
MCU:典型的只有一個處理器內核、內部包含了存儲器、IO及其他外設、用于工業(yè)控制領域如嵌入式應用。
AP SoC的誕生背景:
在全可編程平臺設計階段,設計已經從傳統(tǒng)上以硬件描述語言HDL為中心的硬件邏輯設計,轉換到以C語言為代表的軟件為中心的功能描述,所以就形成了以C語言描述嵌入式系統(tǒng)結構的功能,而用HDL語言描述硬件的具體實現的設計方法,這也是基于全可編程SoC和傳統(tǒng)上基于SoC器件實現嵌入式系統(tǒng)設計的最大區(qū)別,即真正實現了軟件和硬件的協(xié)同設計。
最大優(yōu)點可實現硬件加速:
設計者可以根據需求在硬件實現和軟件實現之間進行權衡,使所設計的嵌入式系統(tǒng)滿足最好的性價比要求,例如,在實現一個嵌入式系統(tǒng)設計時,當使用軟件實現算法成為整個系統(tǒng)性能的瓶頸時,設計人員可以選全可編程SoC內使用硬件邏輯定制協(xié)處理器引擎來高效的實現該算法,這個使用硬件邏輯實現的協(xié)處理器,可以通過AMBA接口與全可編程SoC內的ARM Cortex A9嵌入式處理器連接,此外,通過XilinX所提供的最新高級綜合工具HLS,設計者很容易將軟件瓶頸轉換為由硬件處理。
2、全可編程片上系統(tǒng)中的處理器類型
根據不同的需求,全可編程片上系統(tǒng)的處理器可以分為軟核和硬核處理器。
硬核處理器:早期Xilinx將IBM公司的PowerPC硬核集成在V5系列的FPGA中,后來將ARM公司的雙核Cortex-A9硬核集成在ZYNQ 7000系列的SoC芯片中
軟核處理器:對于一些對處理器性能要求不是很高的需求,沒有必要在硅片上專門劃分一定的區(qū)域來實現專用的處理器,而是通過使用FPGA芯片內所提供的設計資源,包括LUTbram、觸發(fā)器和互聯資源,實現一個處理器的功能,這就是軟核處理器,對于軟核處理器,他通過HDL語言或者網表進行描述 ,通過通過綜合后才能被使用。
3、ZYNQ-7000 SoC功能與結構
在該全可編程SoC中,雙核ARM-Cortex-A9多核CPU是PS的心臟,它包含片上存儲器、外部存儲器接口和豐富功能的外設。與傳統(tǒng)的FPGA和SoC相比,ZYNQ7000不但提供了FPGA靈活性和可擴展性,也提供了專用集成電路的相關性能、功耗和易用性。
ZYNQ 7000的結構便于將定制邏輯和軟件分別映射到PL和PS中,這樣就可實現獨一無二和差異化的系統(tǒng)功能。
與傳統(tǒng)的FPGA方法不同的是,ZYNQ 7000 SoC總是最先啟動PS內的處理器,這樣允許PS上運行的基于軟件程序用于啟動系統(tǒng)并且配置PL,這樣可以將配置PL設置成啟動過程的一部分或者在將來的某個時間再單獨的配置PL,此外可以實現PL的完全重配置或者使用部分可重配置(PR,Partional Reconfihuration,允許動態(tài)的重新配置PL中的某一個部分,這樣能夠對設計進行動態(tài)的修改)。
本次簡談到此結束,后續(xù)會帶來PS構成、PL構成、互聯結構、供電引腳、MIO到EMIO的鏈接等內容。大俠,有緣再見!