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

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

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

FPGA開發(fā)從邏輯設(shè)計做起,結(jié)合軟+硬+系統(tǒng)很重要

DuaO_fpga234 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-02-05 10:49 ? 次閱讀

大多數(shù)FPGA設(shè)計者從邏輯設(shè)計做起,對軟件級設(shè)計接觸不多,但目前的項目中都少不了處理器軟件C的設(shè)計,下面接著看下《UltraFast 嵌入式設(shè)計方法指南》中關(guān)于軟件設(shè)計方面的內(nèi)容,主要分3部分:軟件設(shè)計需要考慮的事項、設(shè)計流程及調(diào)試等。

1. 軟件設(shè)計考慮事項

軟件設(shè)計時,需要先搭建一個處理器到系統(tǒng)中,處理器可以是硬核(如ZYNQ的ARM),也可以是軟核(如NIOS II),所有的內(nèi)容均圍繞處理器方面設(shè)計展開:處理器配置,操作系統(tǒng)選擇,庫和中間件,啟動加載器,軟件開發(fā)工具(SDK)。

  • 處理器配置:配置核心頻率、多處理單元協(xié)調(diào)和數(shù)據(jù)程序存儲空間分配、中斷等;

  • 操作系統(tǒng)選擇:選擇操作系統(tǒng)活著裸跑;

  • 庫和中間件:方便設(shè)計者高效的使用底層硬件的過渡層接口

  • 啟動加載器:方便操作系統(tǒng)的BOOT設(shè)計;

  • 軟件開發(fā)工具:C開發(fā)環(huán)境,類似NIOS IDE開發(fā)環(huán)境。

當(dāng)我們自己在邏輯部分設(shè)計了一個底層邏輯后通過接口(一般是總線接口)連接到處理器后,也可以自定義自己的操作接口,通過SDK來操作底層邏輯。如三角函數(shù)處理器運算太慢,可以在邏輯中設(shè)計一個三角函數(shù)后SDK中只需將運算的數(shù)據(jù)寫入對應(yīng)reg中后得到運算結(jié)果,這就實現(xiàn)了硬軟件協(xié)調(diào)處理功能。

2. 軟件設(shè)計流程

軟件設(shè)計流程如下圖:

其中:

  • 板啟動開發(fā)工作包括開發(fā)低級固件、設(shè)置啟動次序、針對接口和外設(shè)的基本測試,劃分了下列階段:PS 初始化 ,PL 配置 ,儲存器和外設(shè)測試,軟件和硬件調(diào)試;

  • 驅(qū)動開發(fā)為 SoC 和板載外設(shè)開發(fā)軟件驅(qū)動,用于為OS或裸機(jī)應(yīng)用等更高軟件層建立接口;

  • 針對裸機(jī)或 LinuxFreeRTOS 等操作系統(tǒng)開發(fā)出了相關(guān)可運行應(yīng)用。

設(shè)計中要注重層次,多學(xué)習(xí)C++等高級語言設(shè)計技巧,這樣可以保證設(shè)計的簡潔和可維護(hù)性,一般FPGA對C設(shè)計接觸比較少從業(yè)者寫的C代碼一團(tuán)亂麻。

3. 調(diào)試

系統(tǒng)調(diào)試中,PL部分就是我們常用的Modelsim仿真+在線邏輯分析儀等,PS部分就是斷點、單步,查看內(nèi)存等。關(guān)于調(diào)試的經(jīng)驗技巧下次搞篇文章分享。

軟件調(diào)試中,需要在處理器配置配置合適的的選項,SDK中靈活使用,同時需要注意:調(diào)試完成得到最終發(fā)行版本時,記得去掉在線邏輯分析儀和處理器JTAG配置,因為這樣會省掉不少資源,時序和功耗當(dāng)然會更好。

4. 其它

理解啟動加載器的流程對理解軟硬件協(xié)同+Linux有很大幫助:

在為SoC 加電時,啟動過程從BootROM 開始。啟動過程先從片上儲存器 (OCM) 加載然后啟動執(zhí)行第一階段啟動加載器 (FSBL)。FSBL負(fù)責(zé)配置具體的初始化。

然后根據(jù)軟件架構(gòu),第二階段啟動加載器,如使用嵌入式 Linux 時的 U-Boot進(jìn)行初始化并執(zhí)行。 FSBL 和/或 SSBL 啟動 RTOS 或嵌入式 Linux 以及應(yīng)用代碼。如果沒有操作系統(tǒng),則是裸跑,好多步都沒有。簡單說裸跑就是51單片機(jī)C程序開發(fā),而跑系統(tǒng)則是ARM高端應(yīng)用程序開發(fā),原理性相差不大,可以自己查閱資料了解,不需要馬上都懂,因為隨著時間和經(jīng)驗的積累,這些你會慢慢要了解并使用鞏固。

5. 總結(jié)

FPGA大多是邏輯開發(fā)者,但只做邏輯的話局限性太大,而且現(xiàn)在的趨勢也是FPGA軟件話了,SDSOC就是證明。所以,我們應(yīng)該提前擴(kuò)充知識面,而且你會發(fā)現(xiàn)復(fù)雜軟件設(shè)計和操作系統(tǒng)經(jīng)驗上有很多技巧也可以借鑒,更好地借鑒能幫助我們軟+硬+系統(tǒng)結(jié)合,設(shè)計出更有成就感的架構(gòu)應(yīng)用于項目中。

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

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600475
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300739
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208468

原文標(biāo)題:《UltraFast 嵌入式設(shè)計方法指南》(3)——軟件級

文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA培訓(xùn)--FPGA高級邏輯設(shè)計研修班

    使用 ? 系統(tǒng)仿真與仿真平臺的建立2. 高級狀態(tài)機(jī)設(shè)計方法與實例 狀態(tài)機(jī)作為邏輯設(shè)計重要組成部分,其設(shè)計技巧也成為邏輯設(shè)計研究的重點。不論是算法的實現(xiàn)還是接口電路的設(shè)計都離不
    發(fā)表于 07-24 13:13

    FPGA高級邏輯設(shè)計培訓(xùn)

    ;nbsp;   同時隨著FPGA在整個系統(tǒng)中開始扮演越來越重要的角色,FPGA的接口技術(shù),以及與外部處理器、功能芯片之間甚至是其他
    發(fā)表于 03-10 17:52

    FPGA高級邏輯設(shè)計培訓(xùn)

    ;nbsp;   同時隨著FPGA在整個系統(tǒng)中開始扮演越來越重要的角色,FPGA的接口技術(shù),以及與外部處理器、功能芯片之間甚至是其他
    發(fā)表于 03-10 17:58

    急聘!FPGA邏輯設(shè)計部門經(jīng)理

    本帖最后由 daworencai 于 2016-1-21 14:46 編輯 崗位職責(zé):1.負(fù)責(zé)部門存儲系列產(chǎn)品的邏輯設(shè)計開發(fā)工作;2.負(fù)責(zé)存儲系列產(chǎn)品的BCH算法優(yōu)化、高速存儲技術(shù)實現(xiàn)等;負(fù)責(zé)
    發(fā)表于 01-21 14:42

    基于FPGA技術(shù)的RS 232接口的時序邏輯設(shè)計實現(xiàn)

    了如何通過FPGA實現(xiàn)RS 232接口的時序邏輯設(shè)計。關(guān)鍵詞:FPGA;時序電路;RS 232;串行通信
    發(fā)表于 06-19 07:42

    要使用哪種方法去驗證 FPGA邏輯設(shè)計?

    要使用哪種方法去驗證 FPGA邏輯設(shè)計?FPGA的優(yōu)缺點是什么?
    發(fā)表于 04-08 06:57

    FPGA邏輯設(shè)計中的常見問題有哪些

    圖像采集系統(tǒng)的結(jié)構(gòu)及工作原理是什么FPGA邏輯設(shè)計中的常見問題有哪些
    發(fā)表于 04-29 06:18

    FPGA邏輯設(shè)計中有哪些注意事項?

    請教各位,FPGA邏輯設(shè)計中有哪些注意事項?
    發(fā)表于 05-07 07:21

    如何利用FPGA芯片進(jìn)行簡化的PCI接口邏輯設(shè)計?

    本文使用符合PCI電氣特性的FPGA芯片進(jìn)行簡化的PCI接口邏輯設(shè)計,實現(xiàn)了33MHz、32位數(shù)據(jù)寬度的PCI設(shè)備模塊的接口功能,節(jié)約了系統(tǒng)邏輯
    發(fā)表于 05-08 08:11

    如何去實現(xiàn)FPGA邏輯設(shè)計

    前言FPGA 可以實現(xiàn)高速硬件電路,如各種時鐘,PWM,高速接口,DSP計算等硬件功能。這是Cortex-M 處理器軟件無法比擬的。要實現(xiàn)FPGA邏輯設(shè)計,對于嵌入式系統(tǒng)工程師又是
    發(fā)表于 12-21 06:13

    基于FPGA的MDIO接口邏輯設(shè)計

    本文介紹了一種基于FPGA 的用自定義串口命令的方式實現(xiàn)MDIO 接口邏輯設(shè)計的方法,并對系統(tǒng)結(jié)構(gòu)進(jìn)行了模塊化分解以適應(yīng)自頂向下的設(shè)計方法。所有功能的實現(xiàn)全部采用VHDL 進(jìn)行描
    發(fā)表于 12-26 16:48 ?103次下載

    MPEG-2編碼復(fù)用器中的FPGA邏輯設(shè)計

        摘要:簡要介紹了現(xiàn)場可編程門陣列(FPGA)的特性,并結(jié)合MPEG-2編碼復(fù)用器開發(fā)過程中的經(jīng)驗,給出了在MAX+ PLUS II提供的設(shè)計環(huán)境下FP
    發(fā)表于 05-26 21:52 ?804次閱讀
    MPEG-2編碼復(fù)用器中的<b class='flag-5'>FPGA</b><b class='flag-5'>邏輯設(shè)計</b>

    MPEG-2編碼復(fù)用器中的FPGA邏輯設(shè)計

     摘要:簡要介紹了現(xiàn)場可編程門陣列(FPGA)的特性,并結(jié)合MPEG-2編碼復(fù)用器開發(fā)過程中的經(jīng)驗,給出了在MAX+ PLUS II提供的設(shè)計環(huán)境下FPGA
    發(fā)表于 06-20 14:40 ?619次閱讀
    MPEG-2編碼復(fù)用器中的<b class='flag-5'>FPGA</b><b class='flag-5'>邏輯設(shè)計</b>

    多分辨率圖像實時采集系統(tǒng)FPGA邏輯設(shè)計

    多分辨率圖像實時采集系統(tǒng)FPGA邏輯設(shè)計
    發(fā)表于 08-29 15:02 ?6次下載

    FPGA視頻教程之FPGA設(shè)計中時序邏輯設(shè)計要點的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA視頻教程之FPGA設(shè)計中時序邏輯設(shè)計要點的詳細(xì)資料說明免費下載。
    發(fā)表于 03-27 10:56 ?20次下載
    <b class='flag-5'>FPGA</b>視頻教程之<b class='flag-5'>FPGA</b>設(shè)計中時序<b class='flag-5'>邏輯設(shè)計</b>要點的詳細(xì)資料說明