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