目錄
一、SoC FPGA簡介
二、SoC FPGA開發(fā)流程
2.1 硬件開發(fā)
2.2 軟件開發(fā)
一、SoC FPGA簡介
????????SOC FPGA是在FPGA架構中集成了基于ARM的硬核處理器系統(tǒng)(HPS),包括處理器、外設和存儲器控制器。相較于傳統(tǒng)的僅有ARM處理器或 FPGA 的嵌入式芯片,SOC FPGA既擁有ARM處理器靈活高效的數據運算和事務處理能力,又擁有FPGA的高速并行數據處理優(yōu)勢。同時,基于兩者獨特的片上互聯結構,在使用時可以將 FPGA 上的通用邏輯資源經過配置,映射為ARM處理器的一個或多個具有特定功能的外設,并通過高達128位位寬的AXI高速總線進行通信以完成控制命令和高速數據的交互。
????????HPS中的MPU子系統(tǒng)包括了兩個Cortex-A9處理器核、二級(L2)高速緩存(Cache)和緩存器子系統(tǒng)、偵測控制單元(SCU)、一致性加速端口(ACP)以及調試功能模塊。Cortex-A9處理器核中包括浮點單元(FPU)用于支持浮點運算,可以極大的提升依賴于浮點運算應用系統(tǒng)的性能,如高級控制算法、成像(縮放、三維變換)、快速傅里葉變換以及圖像中的濾波等。每個Cortex-A9處理器核都包含一個ARM NEON媒體處理引擎(Media Processing Engine,MEP),該引擎支持多數據的同時運算,而可以加速多媒體等信號處理運算的速度。
? ? ? ? HPS其他部分位于MPU子系統(tǒng)之外,處理器通過一組64位的ABMA(Advanced Microcontroller Bus Architecture)高級擴展接口(Advanced eXtensible Interface, AXI)主機訪問HPS的其他部分。
????????SOC FPGA集成芯片的HPS和FPGA能夠獨立工作,通過高性能ARM AMBA AXI總線連接。FPGA架構中的IP總線能夠通過FPGA至HPS互連訪問HPS總線從機,HPS總線主機能夠通過HPS至FPGA橋接訪問FPGA架構中的總線從機,ARMBA AXI接口均可配置為32/64/128位。
?二、SoC FPGA開發(fā)流程
2.1 硬件開發(fā)
硬件開發(fā)使用Quartus Prime和Platfom Designer。
硬件設計工作流程:?
(1) 在Platform Designer中添加HPS組件以及各外圍器件(如片內存儲器、PIO、定時器、UART、片外存儲器、DMA 等),并定制和配置它們的功能;分配外設地址及中斷號;設定復位地址:;最后生成系統(tǒng)。
(2) 使用Platform Designer生成含HPS的系統(tǒng)后,會得到一個.qsys 后綴的文件,將其集成到整個Quartus Prime工程中。可以在Quartus Prime工程中加入 qsys 系統(tǒng)以外的邏輯。用戶可以將HPS高性能處理器和具有強大并行處理能力的FPGA高度整合,以得到最佳的性能。
(3) 使用Quartus Prime選取具體的SOC FPGA器件型號;然后為系統(tǒng)分配引腳,對于 HPS,主要是設置 SDRAM的引腳電平和IO Bank電平。另外還要根據要求進行硬件編譯選項或時序約束的設置;最后編譯工程,在編譯過程中Quartus Prime將對Qsys生成系統(tǒng)的HDL設計文件進行布局布線從HDL源文件綜合生成一個適合目標器件的網表,生成FPGA配置文件(.sof)。
(4)使用Quartus Prime編程器和IntelFPGA下載電纜(如 USB Blaster),將配置文件(用戶定制的含 HPS 系統(tǒng)的硬件設計)下載到目標板上。當校驗完當前硬件設計后,可將新的配置文件下載到目標板上的非易失存儲器里(如EPCS器件)。下載完硬件配置文件后,軟件開發(fā)者就可以將此目標板作為軟件開發(fā)的初期硬件平臺進行軟件功能的開發(fā)驗證了。
2.2 軟件開發(fā)
軟件開發(fā)主要使用到兩個工具,SOC EDS和Intel FPGA 部門深度定制的DS-5軟件。
SOC EDS:類似一個Linux虛擬機,支持 Linux 系統(tǒng)中常用的各種命令如cd、ls、chmod、cat、make,也包含了一些專用的工具,如用于生成dts文件的spocdts工具、用于生成Altera專屬的 Preloader頭文件用的mkpimage工具,用以燒寫U-Boot和 Preloader文件到sd卡中用的alt-boot-disk-util工具等等。使用SOC EDS,可以針對特定的硬件工程生成相應的U-Boot 源碼并編譯得到 U-Boot鏡像文件,也可以實現對Linux 應用程序、內核和驅動的編譯。在不安裝 Linux 操作系統(tǒng)的情況下,就能完成基于HPS系統(tǒng)的軟件開發(fā)和調試。
DS-5可以用來編寫、編譯、調試 SoC 片不含操作系統(tǒng)的裸機程序,Linux 內核和驅動模塊,該軟件包含以下特性:基于易用的Eclipse編輯器、支持GCC編譯器編譯和調試Linux應用程序、支持調試Linux內核和驅動模塊、支持使用USB Blaster調試ARM處理器、支持FPGA和ARM交叉觸發(fā)聯合調試、支持優(yōu)化軟件的profile特性
硬件設計經過Quartus編譯后會產生三個文件:
Handoff文件夾:包括HPS元件配置信息,例如使能的HPS外設、復用引腳的選擇和IOSCR設置、存儲器參數設置等;
SVD文件:包括HPS寄存器描述以及FPGA部分的軟核IP寄存器描述;
SOPCINFO文件:包括整個系統(tǒng)的描述信息。
?Handoff文件夾用于SOC EDS軟件的Preloader Generator創(chuàng)建Preloader,Preloader根據Handoff文件夾中的信息配置HPS元件,初始化SDRAM,將下一階段的引導過程(boot process)加載到SDRAM中并向它傳遞控制信息。
通過SVD文件可以在DS-5調試器中對HPS外設及FPGA外設寄存器進行檢查和修改。
SOPCINFO文件用于設備樹產生器(Device Tree Generator)創(chuàng)建Linux內核所需的設備樹。設備樹是描述硬件到操作系統(tǒng)的標準方式,主要應用于Linux系統(tǒng)中,它制定了開發(fā)板硬件和FPGA的配置,使內核啟動時回家再相應的驅動程序。
參考文獻:文章來源:http://www.zghlxwxcb.cn/news/detail-606832.html
SoC FPGA 設計和開發(fā)教程
基于FPGA的嵌入式系統(tǒng)設計—Altera Soc FPGA
Cyclone V Hard Processor System Technical Reference Manual
?文章來源地址http://www.zghlxwxcb.cn/news/detail-606832.html
到了這里,關于SOC FPGA介紹及開發(fā)設計流程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!