新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Board從入門(mén)到精通(五):軟硬件協(xié)同設(shè)計(jì)

Board從入門(mén)到精通(五):軟硬件協(xié)同設(shè)計(jì)

作者: 時(shí)間:2017-10-11 來(lái)源:網(wǎng)絡(luò) 收藏

最大的優(yōu)勢(shì)在于,同時(shí)具備軟件、硬件、IO可編程,即All Programmable。在設(shè)計(jì)過(guò)程中,同樣要建立一種意識(shí),就是從原來(lái)單純的軟件思維(或單純的硬件思維)中解脫,轉(zhuǎn)向軟硬件協(xié)同設(shè)計(jì)的開(kāi)發(fā)方法。

本文引用地址:http://2s4d.com/article/201710/365599.htm

軟件設(shè)計(jì),即基于ARM的軟件開(kāi)發(fā),我們第三節(jié)里面已經(jīng)做過(guò)例子了,基本就是通過(guò)某一硬件地址映射寄存器與相應(yīng)的硬件進(jìn)行交互,這類(lèi)硬件包括ARM外設(shè)如GPIO,EMIO,SPI,TImer等,也包括掛載到AXI總線上的PL。除此之外,軟件還要處理好諸如操作系統(tǒng)、網(wǎng)絡(luò)等高層任務(wù)。

硬件設(shè)計(jì),即基于的邏輯開(kāi)發(fā),主要通過(guò)實(shí)例化一些現(xiàn)成的IP,利用狀態(tài)機(jī)實(shí)現(xiàn)自身邏輯功能,然后實(shí)現(xiàn)AXI接口與ARM進(jìn)行通信。

將軟硬件結(jié)合進(jìn)行設(shè)計(jì),需要AXI總線。我們反復(fù)強(qiáng)調(diào)了AXI的重要性,可以說(shuō)它決定了軟硬件協(xié)同設(shè)計(jì)的成敗。

關(guān)于的網(wǎng)絡(luò)教程也有很多了,像懶兔子的 ,筆者初學(xué)Zynq時(shí)是按照他的教程一步步做實(shí)驗(yàn)的。本教程不會(huì)重復(fù)這些步驟,而是幫助初學(xué)者建立一個(gè)框架,剩下的就是自己通過(guò)查文檔、做實(shí)驗(yàn)去填充這些具體內(nèi)容。

我們大體劃分一下Zynq開(kāi)發(fā)的框架:
首先是需求分析,確定要做什么;之后將任務(wù)進(jìn)行細(xì)分,一般可以看哪些適合在上實(shí)現(xiàn),單獨(dú)提出;剩下的則用PS。接著選擇通信接口,物理鏈路選擇GP或HP或ACP,協(xié)議選AXI-Lite,AXI-FIFO或AXI-Stream。劃分完畢,則邏輯工程師與ARM工程師從這里分道揚(yáng)鑣,按照各自任務(wù)進(jìn)行實(shí)現(xiàn)。

邏輯工程師需要集中精力做IP設(shè)計(jì),將功能集成到一個(gè)用戶IP中,并留出通信接口與AXI通信。

ARM工程師則根據(jù)需求建立ARM裸機(jī)軟件工程或基于嵌入式Linux的工程,前者開(kāi)發(fā)周期較短,后者功能較強(qiáng)但需要為L(zhǎng)inux做很多準(zhǔn)備工作(引導(dǎo),內(nèi)核,文件系統(tǒng),驅(qū)動(dòng),圖形界面開(kāi)發(fā)等)。雖然基于嵌入式Linux的開(kāi)發(fā)看上去很“酷”,但我們要把握好分寸,能用裸機(jī)實(shí)現(xiàn)的堅(jiān)決不用操作系統(tǒng),否則只會(huì)勞民傷財(cái)。

各自開(kāi)發(fā)工作完成后,進(jìn)入聯(lián)調(diào),ARM通過(guò)讀寫(xiě)PL映射寄存器來(lái)查看相應(yīng)功能是否正常,如果不正常則需要返工修改,反復(fù)測(cè)試,直到解決問(wèn)題為止。



關(guān)鍵詞: Board Zynq FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉