0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Zynq開發(fā)的四種方式和步驟

汽車玩家 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:默宸 ? 2020-03-15 17:13 ? 次閱讀

Zynq的開發(fā)四種方式

ZYNQ中包含了兩個(gè)部分,雙核的armFPGA。根據(jù)XILINX提供的手冊(cè),arm模塊被稱為PS,而FPGA模塊被稱為PL。

ZYNQ內(nèi)部包含PS和PL兩部分,ZYNQ開發(fā)有一下四種方式:

A:純PS開發(fā)

PS中包含2個(gè)ARM Cortex-9的內(nèi)核,一些基本的外設(shè)擴(kuò)展口以及Memory接口。PS中包含以下4個(gè)主要功能模塊:

Application processor unit (APU)

Memory interfaces

I/O peripherals (IOP)

Interconnect

PS開發(fā)有兩種方式:即傳統(tǒng)的arm的方式和xilinx方法(這個(gè)是生成一個(gè)elf文件,這個(gè)elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件))。

B:純PL開發(fā)

PL即FPGA,這個(gè)和一般的xilinx的FPGA沒有很大的區(qū)別。

C:PS+PL(不跑操作系統(tǒng))開發(fā)

生成elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件),還有一個(gè).bit文件。

D:PS+PL(跑操作系統(tǒng))開發(fā)

這個(gè)就需要BOOT.BIN,設(shè)備樹,linux內(nèi)核鏡像,文件系統(tǒng)了。

其中BOOT.BIN是由3部分組成的(boot.elf, .bit, fsbl.elf),boot.elf這個(gè)是由交叉編譯環(huán)境產(chǎn)生的,相當(dāng)于ssbl,.bit文件是PL使用文件,fsbl.elf這個(gè)是fsbl。

開發(fā)工具

2.1 獨(dú)立開發(fā)環(huán)境

PL—》 Vivado

PS(ARM)–》 SDK(Xilinx)或者第三方ARM開發(fā)工具

2.2 集成開發(fā)環(huán)境

SDSoC

2.3 獨(dú)立開發(fā)環(huán)境的四個(gè)步驟

(1) 系統(tǒng)架構(gòu)師確定硬件、軟件分區(qū)方案;

(2) 硬件工程師處理被分配到硬件中的功能,并將其轉(zhuǎn)換或設(shè)計(jì)成IP核(Verilog/VHDL,也可用Vivado HLS實(shí)現(xiàn)C/C++高層次綜合);

(3) 利用Vivado IP Integrator 創(chuàng)建整個(gè)嵌入式系統(tǒng)的模塊化設(shè)計(jì)。包括開發(fā)需要的數(shù)據(jù)移動(dòng)工具(AXI-DMA、AXI Memory Master、AXI-FIFO 等),以及連接 PL IP 與 PS 的 AXI 接口(GP、HP 和 ACP),之后將此項(xiàng)目導(dǎo)入到SDK中;

(4) 軟件工程師使用SDK,開發(fā)PS中ARM處理器的驅(qū)動(dòng)程序和應(yīng)用。

對(duì)于以硬件為中心的優(yōu)化流程,矛盾往往出現(xiàn)在不同的數(shù)據(jù)移動(dòng)工具和PL-PS接口以及寫入和調(diào)試驅(qū)動(dòng)程序與應(yīng)用,為避免重構(gòu)硬件造成軟件的變化,使得PS-PL開發(fā)更加緊密,賽靈思推出了SDSoC開發(fā)環(huán)境。將上述步驟(2)、(3)和(4)實(shí)現(xiàn)高度自動(dòng)化,以縮短開發(fā)時(shí)間。該開發(fā)環(huán)境會(huì)生成必要的硬件和軟件組件,用以同步硬件和軟件并保存源程序語義,同時(shí)支持任務(wù)級(jí)并行處理和流水線化的通信與計(jì)算,從而實(shí)現(xiàn)高性能。SDSoC 環(huán)境會(huì)自動(dòng)安排所有必要的賽靈思工具(Vivado、IP Integrator、HLS 和 SDK),以生成針對(duì) Zynq SoC 的完整軟硬件系統(tǒng),而且所需的用戶介入程度很小。

一個(gè)SDSoC設(shè)計(jì)項(xiàng)目是建立在一個(gè)“平臺(tái)”之上的。所謂“平臺(tái)”,包含硬件平臺(tái)和軟件平臺(tái)兩個(gè)部分,是一個(gè)設(shè)計(jì)開發(fā)可以復(fù)用的基礎(chǔ)性系統(tǒng)。

平臺(tái)是利用標(biāo)準(zhǔn)的Vivado、SDK和OS工具創(chuàng)建的。硬件平臺(tái)(HPFM)定義了諸如處理系統(tǒng)(PS,Processing System)、I/O子系統(tǒng)、存儲(chǔ)器接口等,這些工作都基于一個(gè)定義明確的端口接口(AXI、AXI-S,、時(shí)鐘、復(fù)位、中斷)。軟件平臺(tái)(SPFM)定義了OS、設(shè)備驅(qū)動(dòng)、啟動(dòng)加載程序(boot loaders)、文件系統(tǒng)、庫等。

基于C/C++源代碼的定制和專用硬件和軟件,用戶可以擴(kuò)展平臺(tái)。

SDSoC將平臺(tái)作為獨(dú)立的解決方案空間,基于平臺(tái)提供的資源去生成用于解決方案的IP。每個(gè)解決方案都是為一個(gè)平臺(tái)裁剪而成的。

一個(gè)擴(kuò)展名為xpfm的文件包含了硬件描述符XML文件(HPFM)和軟件描述符XML文件(SPFM)位置的參考。

2.4 Vivado

Vivado是基于IP的設(shè)計(jì),稱為block design(BD),調(diào)用已有的IP,用戶自己編寫的邏輯模塊也可以封裝成IP,然后在模塊blcok中連線。邏輯開發(fā)完畢,再轉(zhuǎn)到SDK,SDK會(huì)根據(jù)Vivado的硬件設(shè)計(jì)設(shè)置調(diào)用相應(yīng)的內(nèi)部驅(qū)動(dòng)代碼。(PL部分就如同ARM的總線AXI等掛的外設(shè))

2.5 SDK

SDK根據(jù)生成的.hdf文件匹配FSBL,只需添加main.c文件即可。

類似嵌入式 C/C++/OpenCL 應(yīng)用開發(fā)的體驗(yàn)–SDSoC

SDSoC? 開發(fā)環(huán)境可為異構(gòu) Zynq? AllProgrammable SoC 及 MPSoC 部署提供類似嵌入式 C/C++/OpenCL 應(yīng)用的開發(fā)體驗(yàn),其中包括簡(jiǎn)單易用的 Eclipse IDE 和綜合設(shè)計(jì)環(huán)境。SDSoC 提供業(yè)界首款 C/C++/OpenCL 全系統(tǒng)優(yōu)化編譯器,可實(shí)現(xiàn)系統(tǒng)級(jí)的特性描述、可編程邏輯中的自動(dòng)軟件加速、自動(dòng)系統(tǒng)連接生成以及可加速編程的各種庫。此外,它還可幫助最終用戶及第三方平臺(tái)開發(fā)人員快速定義、集成和驗(yàn)證系統(tǒng)級(jí)解決方案,為其最終用戶實(shí)現(xiàn)定制化編程環(huán)境。(軟件工程師能夠?qū)?Zynq SoC 中的可編程邏輯和 ARM 處理系統(tǒng)進(jìn)行編程)

? 簡(jiǎn)單易用的 EclipseIDE 可用于開發(fā)支持嵌入式 C/C++/OpenCL 應(yīng)用的全面 Zynq All Programmable SoC 和 MPSoC 系統(tǒng)。

? 只需一點(diǎn)按鈕,就可對(duì)可編程邏輯 (PL) 中的功能進(jìn)行加速。

? 支持作為目標(biāo) OS 的裸機(jī)、Linux 與 FreeRTOS。

? Xilinx 庫作為 Vivado HLS 的一部分,由聯(lián)盟成員提供,是可選硬件優(yōu)化的庫。

? OpenCL 在 2016.3 版中為早期的測(cè)試版。請(qǐng)聯(lián)系您的當(dāng)?shù)劁N售代表提出申請(qǐng)。

下圖展示的是一個(gè)基于基礎(chǔ)平臺(tái)的完整SDSoC設(shè)計(jì)的整體結(jié)構(gòu)。需要加速的C/C++/SystemC功能成為了FPGA可編程邏輯(PL)中的IP,而其他功能保留在處理器系統(tǒng)(PS)中。同時(shí),SDSoC會(huì)在那些IP和PS系統(tǒng)間自動(dòng)生成互連。

3.1 系統(tǒng)級(jí)的特性描述

? 快速性能估算與面積估算可在幾分鐘內(nèi)完成,包括 PS、數(shù)據(jù)通信以及 PL

? 高速緩存、存儲(chǔ)器以及總線利用率的自動(dòng)運(yùn)行時(shí)儀表

? 可實(shí)現(xiàn)最佳總體系統(tǒng)架構(gòu)的便捷生成與探索

3.2 全系統(tǒng)優(yōu)化編譯器

? 可將C/C++/OpenCL 應(yīng)用編譯成全功能 Zynq SoC 與 MPSoC 系統(tǒng)。

? 可在生成 ARM 軟件與 FPGA 比特流的可編程邏輯中實(shí)現(xiàn)自動(dòng)功能加速。

? 不僅可優(yōu)化系統(tǒng)連接,而且還支持吞吐量、時(shí)延以及面積權(quán)衡的快速系統(tǒng)探索。

3.3 SDSoC開發(fā)流程

① SDSoC 環(huán)境使用快速估算流程(通過調(diào)用內(nèi)含的Vivado HLS)構(gòu)建應(yīng)用項(xiàng)目。這樣在數(shù)分鐘內(nèi)就能大致估算出性能和資源情況。

② 如果有必要,用適當(dāng)?shù)闹噶顑?yōu)化 C/C++ 應(yīng)用和硬件功能,并重新運(yùn)行估算直到實(shí)現(xiàn)所需的性能和占位面積。

③ 然后,SDSoC 環(huán)境構(gòu)建整個(gè)系統(tǒng)。該過程會(huì)生成完整的 Vivado Design Suite 項(xiàng)目和比特流,以及一個(gè)針對(duì) Linux、FreeRTOS 或裸機(jī)的可引導(dǎo)的運(yùn)行時(shí)間軟件映像。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    607

    瀏覽量

    47101
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串行口的四種工作方式各有什么特點(diǎn)

    串行通信是計(jì)算機(jī)硬件和外設(shè)之間常用的通信方式之一。串行口(Serial Port)是實(shí)現(xiàn)串行通信的硬件接口。在計(jì)算機(jī)系統(tǒng)中,串行口通常用于連接鼠標(biāo)、調(diào)制解調(diào)器、打印機(jī)等設(shè)備。串行口有四種工作方式
    的頭像 發(fā)表于 08-22 17:37 ?755次閱讀

    變流電路的換流方式有哪四種

    變流電路是一將一形式的電能轉(zhuǎn)換為另一形式的電能的電路,廣泛應(yīng)用于電力電子領(lǐng)域。在變流電路中,換流方式是實(shí)現(xiàn)電能轉(zhuǎn)換的關(guān)鍵技術(shù)之一。換流方式
    的頭像 發(fā)表于 08-14 11:08 ?1405次閱讀

    負(fù)反饋的四種類型是什么

    負(fù)反饋是電子系統(tǒng)中常用的一技術(shù),它通過將系統(tǒng)輸出的一部分信號(hào)以某種方式反饋到輸入端,以減小輸出信號(hào)與期望信號(hào)之間的差異,從而提高系統(tǒng)的穩(wěn)定性和性能。負(fù)反饋主要分為四種類型:電壓串聯(lián)負(fù)反饋、電壓并聯(lián)負(fù)反饋、電流串聯(lián)負(fù)反饋和電流并
    的頭像 發(fā)表于 08-08 16:15 ?2300次閱讀

    元器件的包裝方式及常見的四種方式

    四種元件包裝方式在實(shí)際生產(chǎn)和使用中廣泛應(yīng)用,不同的包裝方式適用于不同類型和規(guī)格的元件,并且可以根據(jù)具體要求進(jìn)行定制化的包裝設(shè)計(jì)。不同的包裝方式也可以影響元件的存儲(chǔ)、運(yùn)輸和使用,選擇適合
    的頭像 發(fā)表于 06-27 12:58 ?1227次閱讀

    介紹MCUboot支持的四種升級(jí)模式(2)

    介紹MCUboot支持的四種升級(jí)模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執(zhí)行。由于FSP不支持第四種——加載到RAM中執(zhí)行,因?yàn)槲覀冎攸c(diǎn)介紹前三。
    的頭像 發(fā)表于 06-13 10:56 ?753次閱讀
    介紹MCUboot支持的<b class='flag-5'>四種</b>升級(jí)模式(2)

    HarmonyOS開發(fā)ArkUI案例:【常用布局容器對(duì)齊方式

    基于ArkTS擴(kuò)展的聲明式開發(fā)范式,實(shí)現(xiàn)Flex、Column、Row和Stack四種常用布局容器對(duì)齊方式
    的頭像 發(fā)表于 05-08 16:47 ?1497次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>ArkUI案例:【常用布局容器對(duì)齊<b class='flag-5'>方式</b>】

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態(tài)下的安全操作區(qū)域。這四種SOA是:Continuous SOA、Limited SOA、Pulse SOA
    的頭像 發(fā)表于 02-18 11:04 ?943次閱讀

    四種編程語言之間的區(qū)別和聯(lián)系

    編程語言是一人與計(jì)算機(jī)之間進(jìn)行交流的方式,不同的編程語言有著不同的特點(diǎn)和用途。本文將對(duì)四種常見的編程語言——Python、Java、C++和JavaScript進(jìn)行比較,分析它們的區(qū)別和聯(lián)系。 一
    的頭像 發(fā)表于 02-05 14:16 ?1392次閱讀

    模數(shù)轉(zhuǎn)換器結(jié)束信號(hào)的四種處理方式

    模數(shù)轉(zhuǎn)換器結(jié)束信號(hào)的四種處理方式? 模數(shù)轉(zhuǎn)換器(ADC)是將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的設(shè)備。在ADC操作過程中,結(jié)束信號(hào)非常重要,它指示了模數(shù)轉(zhuǎn)換器已經(jīng)完成轉(zhuǎn)換并準(zhǔn)備好輸出數(shù)據(jù)。下面將詳細(xì)介紹四種處理
    的頭像 發(fā)表于 02-03 16:41 ?687次閱讀

    多級(jí)放大電路的耦合方式有哪四種

    在電子電路設(shè)計(jì)中,多級(jí)放大電路常用于增強(qiáng)信號(hào)的強(qiáng)度。為了將多個(gè)放大級(jí)連接起來,需要使用特定的耦合方式。耦合方式的選擇對(duì)于電路的性能有著重要影響,包括頻率響應(yīng)、信號(hào)保真度、成本和復(fù)雜性等。以下是四種
    的頭像 發(fā)表于 02-02 15:52 ?6779次閱讀
    多級(jí)放大電路的耦合<b class='flag-5'>方式</b>有哪<b class='flag-5'>四種</b>

    電子耦合是什么意思 四種常見的耦合方式

    電子耦合是在電子設(shè)備中,信號(hào)從一個(gè)電路傳遞到另一個(gè)電路的方式。在電子設(shè)備中,每個(gè)電路都需要與其他電路進(jìn)行相互連接,以實(shí)現(xiàn)信號(hào)的傳輸和處理。這種相互連接的方式就是電子耦合。 四種常見的電子耦合
    的頭像 發(fā)表于 01-25 13:49 ?4067次閱讀

    四種霍爾元件的感應(yīng)方式分別是什么呢?

    四種霍爾元件的感應(yīng)方式分別是什么呢? 霍爾元件是一基于霍爾效應(yīng)的電子元件,常用于測(cè)量磁場(chǎng)、電流和位置等物理量。根據(jù)感應(yīng)方式的不同,霍爾元件可以分為
    的頭像 發(fā)表于 12-18 14:49 ?719次閱讀

    設(shè)備管理通道控制四種方式

    設(shè)備管理的主要任務(wù)之一是控制設(shè)備和內(nèi)存或處理機(jī)之間的數(shù)據(jù)傳送,外圍設(shè)備和內(nèi)存之間的輸入/輸出控制方式四種,下面分別介紹。
    發(fā)表于 12-08 14:05 ?933次閱讀
    設(shè)備管理通道控制<b class='flag-5'>四種</b><b class='flag-5'>方式</b>

    四種接近傳感器PK,誰能勝出?

    四種接近傳感器PK,誰能勝出?
    的頭像 發(fā)表于 12-07 09:28 ?1563次閱讀
    <b class='flag-5'>四種</b>接近傳感器PK,誰能勝出?

    Spring中依賴注入的四種方式

    詳細(xì)介紹四種常見的依賴注入方式。 第一方式是構(gòu)造函數(shù)注入。構(gòu)造函數(shù)注入是最基礎(chǔ)也是最常用的依賴注入方式之一。它通過在對(duì)象創(chuàng)建時(shí)將依賴的對(duì)象
    的頭像 發(fā)表于 12-03 15:11 ?1856次閱讀