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

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

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

從硬件角度討論FPGA開發(fā)框架

FPGA設(shè)計(jì)論壇 ? 來(lái)源:未知 ? 2023-06-08 19:10 ? 次閱讀


點(diǎn)擊上方藍(lán)字關(guān)注我們

FPGA采用了邏輯單元陣列概念,內(nèi)部包括可配置邏輯模塊、輸出輸入模塊和內(nèi)部連線三個(gè)部分。每一塊FPGA芯片都是由有限多個(gè)帶有可編程連接的預(yù)定義源組成來(lái)實(shí)現(xiàn)一種可重構(gòu)數(shù)字電路

長(zhǎng)久以來(lái)新型FPGA的功能和性能已經(jīng)為它們贏得系統(tǒng)中的位置,成為許多產(chǎn)品的主要數(shù)據(jù)處理引擎。

鑒于FPGA在如此多應(yīng)用中的重要地位,采取正式且注重方法的開發(fā)流程來(lái)處理FPGA設(shè)計(jì)比以往更加重要。該流程旨在避免開發(fā)周期后期因發(fā)現(xiàn)設(shè)計(jì)缺陷而不得不進(jìn)行費(fèi)時(shí)費(fèi)錢的設(shè)計(jì)修改,而且該缺陷還可能對(duì)項(xiàng)目進(jìn)度計(jì)劃、成本和質(zhì)量造成災(zāi)難性影響。

本文所介紹的的框架覆蓋從系統(tǒng)架構(gòu)考量到FPGA開發(fā)與測(cè)試規(guī)劃等各個(gè)環(huán)節(jié)。我們從FPGA硬件的角度重點(diǎn)詳細(xì)介紹該框架,通過(guò)介紹希望其他工程團(tuán)隊(duì)能夠發(fā)現(xiàn)該框架在復(fù)雜的FPGA設(shè)計(jì)項(xiàng)目里面的優(yōu)點(diǎn)。

該框架是一種在FPGA中設(shè)計(jì)硬件的自上而下的迭代設(shè)計(jì)方法。首先規(guī)劃從系統(tǒng)架構(gòu)層面出發(fā)決策FPGA功能。隨后我們根據(jù)FPGA器件的已知功能和性能逐步優(yōu)化FPGA設(shè)計(jì)的特性。

另外,大型FPGA設(shè)計(jì)的實(shí)現(xiàn)需要制定完備的開發(fā)、仿真和驗(yàn)證規(guī)劃。該框架的作用就是幫助我們制定這些規(guī)劃。簡(jiǎn)而言之,該框架可歸納為圖1所示的流程圖。本文的討論將集中在規(guī)劃和技術(shù)文檔部分(頂部)。

系統(tǒng)架構(gòu)

就本討論范圍而言,系統(tǒng)架構(gòu)指在系統(tǒng)軟件和硬件之間的功能劃分。尤其,重點(diǎn)是將硬件功能細(xì)分到FPGA以及其它微芯片組件上(假設(shè)已經(jīng)明確產(chǎn)品層面需求),例如市場(chǎng)營(yíng)銷或產(chǎn)品定義部門可能已經(jīng)參與進(jìn)來(lái)并明確產(chǎn)品需求。

在系統(tǒng)架構(gòu)階段,思路是如何明確地讓這些產(chǎn)品需求在真實(shí)產(chǎn)品中得以實(shí)現(xiàn)。就FPGA來(lái)說(shuō),主要的決策圍繞著應(yīng)將哪些特性和功能在FPGA中實(shí)現(xiàn),以及進(jìn)一步,哪些特性和功能適合在FPGA中實(shí)現(xiàn)。

通過(guò)提前定義FPGA的要求,就能避免開發(fā)流程已接近尾聲時(shí)進(jìn)行成本不菲的設(shè)計(jì)及需求修改。在設(shè)計(jì)早期階段明確系統(tǒng)架構(gòu)有助于指導(dǎo)用戶做出對(duì)開發(fā)時(shí)間和產(chǎn)品成本至關(guān)重要的多項(xiàng)重大決策。

在這個(gè)層面上探討,只需要一般性地概略介紹FPGA特性。詳細(xì)特性和實(shí)現(xiàn)需求將在FPGA需求定義過(guò)程的后續(xù)階段進(jìn)行定義。本次探討的參與者應(yīng)包括熟悉系統(tǒng)級(jí)要求的、了解系統(tǒng)級(jí)架構(gòu)設(shè)計(jì)的,以及熟悉FPGA特性與功能的等不同人員。

具體就FPGA而言,需要回答十大問(wèn)題:

1. 要在FPGA中實(shí)現(xiàn)的特性列表是什么樣的?

2. 在FPGA中實(shí)現(xiàn)特性與使用非FPGA組件實(shí)現(xiàn)特性相比,需在技術(shù)上做怎樣的權(quán)衡取舍?

3. 在FPGA中實(shí)現(xiàn)與使用非FPGA組件實(shí)現(xiàn)相比,設(shè)計(jì)工作量/成本分別如何?

4. 需要什么樣的定制特性或處理?

5. FPGA的靈活性對(duì)功能有什么好處?

6. 您應(yīng)該考慮的未來(lái)風(fēng)險(xiǎn)緩解措施是什么?

7. 能否把多個(gè)非FPGA組件的特性集中到FPGA中?

8. 根據(jù)準(zhǔn)備實(shí)現(xiàn)的設(shè)計(jì)特性,如何選擇FPGA器件?

9. 特性是否能在FPGA中實(shí)現(xiàn)?

10. 需要什么樣的非FPGA器件,如何讓這些非FPGA器件與FPGA接口相連?

FPGA架構(gòu)

FPGA架構(gòu)屬于FPGA器件上物理層的微架構(gòu)級(jí)和芯片級(jí)數(shù)據(jù)流設(shè)計(jì)。您的團(tuán)隊(duì)?wèi)?yīng)與系統(tǒng)級(jí)架構(gòu)同步設(shè)計(jì)該架構(gòu),以確定器件尺寸、選擇器件和可行性。

定義FPGA架構(gòu)的目的,是確保系統(tǒng)架構(gòu)需求是準(zhǔn)確、現(xiàn)實(shí)、切實(shí)可行的設(shè)計(jì)要求,能夠在FPGA中實(shí)現(xiàn)。

圖1 - FPGA開發(fā)框架

這個(gè)層面的探討需要對(duì)FPGA架構(gòu)和資源的特性與功能有深入的認(rèn)識(shí)。因此應(yīng)該由經(jīng)驗(yàn)豐富的FPGA設(shè)計(jì)人員參與完成。在這個(gè)階段,您必須考慮與FPGA性能目標(biāo)、潛在風(fēng)險(xiǎn)因素和FPGA資源利用率。

在FPGA架構(gòu)定義階段,您有可能會(huì)發(fā)現(xiàn)系統(tǒng)級(jí)需求和架構(gòu)無(wú)法實(shí)現(xiàn),或是對(duì)實(shí)現(xiàn)在FPGA中而言存在高風(fēng)險(xiǎn)。在這種情況下您必須重新評(píng)估和更新系統(tǒng)架構(gòu),以創(chuàng)建在FPGA中可實(shí)現(xiàn)的需求列表。

您應(yīng)問(wèn)問(wèn)自己現(xiàn)有IP哪些可供使用,還必須創(chuàng)建哪些IP.此外,您還需要檢查I/O需求,以及把時(shí)鐘域和時(shí)鐘特性映射到FPGA時(shí)鐘資源的方法。其他關(guān)鍵問(wèn)題包括:如何在FPGA上布局千兆位收發(fā)器(GT)資源;在SSI器件中是否已考慮到交叉SLR數(shù)據(jù)流;目標(biāo)時(shí)鐘頻率對(duì)設(shè)計(jì)功能而言是否實(shí)際。,您還必須評(píng)估您設(shè)計(jì)的目標(biāo)性能對(duì)選擇的FPGA而言是否實(shí)際。

FPGA需求定義與劃分

FPGA需求定義和劃分階段與系統(tǒng)和FPGA架構(gòu)定義緊密關(guān)聯(lián)并受這兩個(gè)階段的決策左右。FPGA需求定義指定義準(zhǔn)備在FPGA中實(shí)現(xiàn)的詳細(xì)需求,并用作明確的特性清單以供設(shè)計(jì)和測(cè)試工程團(tuán)隊(duì)設(shè)計(jì)、測(cè)試和實(shí)現(xiàn)。FPGA需求定義與系統(tǒng)和FPGA架構(gòu)需求定義的不同之處在于FPGA需求是的。該清單定義了FPGA的細(xì)致要求,而不僅僅是系統(tǒng)的不同組件之間的功能劃分,或是穿越FPGA的數(shù)據(jù)流之間的功能劃分。

這個(gè)階段的目的是清楚地定義FPGA工程團(tuán)隊(duì)確切能實(shí)現(xiàn)和測(cè)試的內(nèi)容。在這個(gè)階段,用戶將把系統(tǒng)和FPGA架構(gòu)需求轉(zhuǎn)換成用于實(shí)現(xiàn)的具體需求。這樣做能夠帶來(lái)雙重好處。首先,單獨(dú)定義FPGA需求能突出強(qiáng)調(diào)系統(tǒng)和FPGA架構(gòu)的任何局限以及之前未曾考慮到或未曾預(yù)見到的狀況。其次,該步驟將為FPGA設(shè)計(jì)的開發(fā)和測(cè)試的順利執(zhí)行鋪平道路。

為適當(dāng)?shù)孛枋鯢PGA需求,您必須建立清晰且簡(jiǎn)明扼要的定義,以便提煉成單獨(dú)的需求。我們建議為各項(xiàng)需求添加標(biāo)簽或序號(hào),使用易于判斷其能否實(shí)現(xiàn)的簡(jiǎn)短描述來(lái)定義各項(xiàng)需求,避免用含糊的需求用語(yǔ)。只要足夠清晰扼要,您可以使用任何行業(yè)標(biāo)準(zhǔn)格式或?qū)S懈袷健?/span>

避免使用含混或界定不清的用語(yǔ),例如“快速”或“小型”.應(yīng)堅(jiān)持使用有明確目標(biāo)的用語(yǔ),如“400MHz”或“4.2K觸發(fā)器”.這樣定義的目的旨在確保將文檔分配給之前不了解系統(tǒng)或FPGA架構(gòu)的開發(fā)工程團(tuán)隊(duì)進(jìn)行實(shí)施時(shí)不再需要反復(fù)澄清。您需要檢查每個(gè)需求是否表述清楚、簡(jiǎn)潔、明確且是否包含了所有必需的信息以避免反復(fù)澄清的必要。此外,還應(yīng)該注意需求中是否包括管腳和I/O定義?是否所有的需求都已經(jīng)分解為基本設(shè)計(jì)要素?未參與早期系統(tǒng)架構(gòu)定義的設(shè)計(jì)團(tuán)隊(duì)是否能夠使用這些需求開發(fā)FPGA以及測(cè)試與驗(yàn)證團(tuán)隊(duì)是否能使用該文檔開發(fā)測(cè)試平臺(tái)和制定測(cè)試方案,明確驗(yàn)證每一項(xiàng)需求是否通過(guò)。

FPGA設(shè)計(jì)規(guī)劃

該框架的這個(gè)階段用于為FPGA硬件的實(shí)際開發(fā)制定規(guī)劃,確保各項(xiàng)特性及開發(fā)工作的完成與整個(gè)產(chǎn)品開發(fā)的其他部分協(xié)調(diào)一致。

這個(gè)階段的目標(biāo)是適當(dāng)?shù)匕旬?dāng)前的系統(tǒng)級(jí)需求、FPGA級(jí)需求和架構(gòu)體現(xiàn)到開發(fā)規(guī)劃中。在通過(guò)前面介紹的規(guī)劃階段之后,現(xiàn)在開發(fā)團(tuán)隊(duì)一般會(huì)面臨兩種情況。

種情況是系統(tǒng)與FPGA架構(gòu)以及需求理解良好,描述詳盡,終,F(xiàn)PGA設(shè)計(jì)開發(fā)階段(即HDL編碼)和測(cè)試開發(fā)階段(仿真、測(cè)試臺(tái))基本無(wú)需修改設(shè)計(jì)需求,順利執(zhí)行。

第二種情況是系統(tǒng)架構(gòu)和FPGA需求仍然處在變動(dòng)中。這樣的設(shè)計(jì)會(huì)在設(shè)計(jì)開發(fā)周期和測(cè)試開發(fā)階段面臨眾多變數(shù)和修改。

雖然人人都想得到種情況的結(jié)果,但往往卻不能成功,終落入第二種情況的境地。很明顯,這種情況更加難于管理。

設(shè)計(jì)規(guī)劃的總體目標(biāo)應(yīng)是在開發(fā)周期的這個(gè)階段實(shí)現(xiàn)種情況。在種情況中,F(xiàn)PGA的開發(fā)簡(jiǎn)單直觀,只需為實(shí)現(xiàn)和測(cè)試設(shè)計(jì)特性安排進(jìn)度計(jì)劃。

在第二種情況中,重要的管理工作是確保落實(shí)充分理解的流程,以便評(píng)估和決定應(yīng)該進(jìn)行哪些修改以及每種修改為總體開發(fā)進(jìn)度計(jì)劃帶來(lái)的影響如何。這里可以運(yùn)用多種項(xiàng)目管理理念和技巧。重要的一點(diǎn)是完成上述修改評(píng)估和影響評(píng)估。

就專門的FPGA規(guī)劃和開發(fā)而言,F(xiàn)PGA的優(yōu)勢(shì)之一在于能夠多次修訂硬件平臺(tái)和多次把硬件平臺(tái)到原型PCB上。設(shè)計(jì)團(tuán)隊(duì)?wèi)?yīng)充分發(fā)揮這一功能的優(yōu)勢(shì)。因此建議的開發(fā)規(guī)劃是逐漸把特性添加到能夠工作的設(shè)計(jì)中。其思路是從能夠?qū)崿F(xiàn)主要通信接口的基本設(shè)計(jì)出發(fā),無(wú)需實(shí)現(xiàn)全部需求就能工作。

這樣做能夠帶來(lái)雙重好處。首先可以確保隨時(shí)有一個(gè)可工作的設(shè)計(jì),您可用來(lái)調(diào)試PCB和更大型系統(tǒng)。其次,調(diào)試實(shí)際的FPGA設(shè)計(jì)會(huì)簡(jiǎn)單得多,因?yàn)榭梢詸z查新添加的特性,確保新添加的特性不會(huì)干擾或中斷當(dāng)前可工作的設(shè)計(jì)。

與FPGA設(shè)計(jì)開發(fā)同步,同樣重要的是為實(shí)現(xiàn)的FPGA設(shè)計(jì)準(zhǔn)備良好的仿真環(huán)境規(guī)劃。投資開發(fā)穩(wěn)健可靠的仿真環(huán)境,就可以復(fù)制現(xiàn)實(shí)數(shù)據(jù)流,在仿真中重現(xiàn)出錯(cuò)條件,迅速隔離和判斷根本原因,從而不僅能減少設(shè)計(jì)缺陷,還能顯著縮短實(shí)驗(yàn)室調(diào)試時(shí)間。

開發(fā)穩(wěn)健可靠的測(cè)試仿真環(huán)境和開發(fā)FPGA本身一樣復(fù)雜,需要視同開發(fā)FPGA一樣規(guī)劃和考量。





有你想看的精彩




至芯科技-FPGA就業(yè)培訓(xùn)來(lái)襲!你的選擇開啟你的高薪之路!5月30號(hào)西安中心課、歡迎咨詢!
基于FPGA的無(wú)線通信安全協(xié)議
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理系統(tǒng)設(shè)計(jì)





掃碼加微信邀請(qǐng)您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!


點(diǎn)個(gè)在看你最好看






原文標(biāo)題:從硬件角度討論FPGA開發(fā)框架

文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598961

原文標(biāo)題:從硬件角度討論FPGA開發(fā)框架

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    服務(wù)器數(shù)據(jù)恢復(fù)—數(shù)據(jù)恢復(fù)的角度討論RAID磁盤陣列的存儲(chǔ)安全問(wèn)題

    出于盡可能避免數(shù)據(jù)災(zāi)難的設(shè)計(jì)初衷,RAID解決了3個(gè)問(wèn)題:容量問(wèn)題、IO性能問(wèn)題、存儲(chǔ)安全(冗余)問(wèn)題。數(shù)據(jù)恢復(fù)的角度討論RAID的存儲(chǔ)安全問(wèn)題。
    的頭像 發(fā)表于 09-07 10:21 ?126次閱讀

    萊迪思Propel工具套件加速FPGA應(yīng)用開發(fā)

    許多嵌入式系統(tǒng)的開發(fā)者都對(duì)使用基于FPGA的SoC系統(tǒng)感興趣,但是基于傳統(tǒng)HDL硬件描述語(yǔ)言的FPGA開發(fā)工具和復(fù)雜流程往往會(huì)令他們望而卻步
    的頭像 發(fā)表于 08-30 17:23 ?902次閱讀

    是否可以硬件角度修改ESP8266僅用作發(fā)射器?

    我不確定這是否是提出這個(gè)問(wèn)題的正確論壇。 我們需要ESP8266僅用作發(fā)射器。我們?cè)?ESP 系列中是否有任何具有相同足跡的類似產(chǎn)品。 是否可以硬件角度修改ESP8266僅用作發(fā)射器? 如果上述要求可能,定價(jià)是否會(huì)有任何變化?
    發(fā)表于 07-19 14:48

    bootstrap框架用什么軟件開發(fā)

    Bootstrap是一個(gè)流行的前端框架,用于快速開發(fā)響應(yīng)式和移動(dòng)優(yōu)先的Web應(yīng)用程序。它提供了一套預(yù)定義的CSS和JavaScript組件,使得開發(fā)者可以快速構(gòu)建出漂亮的用戶界面
    的頭像 發(fā)表于 07-11 09:50 ?255次閱讀

    FPGA的高階應(yīng)用與發(fā)展方向討論

    FPGA可編程器件做高階應(yīng)用如圖像處理、語(yǔ)音識(shí)別等需要具備哪些能力,需要怎樣更有效入門到精通 ? FPGA與當(dāng)下的AI發(fā)展結(jié)合的怎樣?大家可以交流討論
    發(fā)表于 03-30 18:09

    fpga硬件還是軟件

    FPGA(現(xiàn)場(chǎng)可編程門陣列)本質(zhì)上是一種硬件設(shè)備,但它在功能實(shí)現(xiàn)上結(jié)合了硬件和軟件的特性。
    的頭像 發(fā)表于 03-27 14:14 ?775次閱讀

    fpga開發(fā)是什么意思

    FPGA開發(fā)是指利用現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,簡(jiǎn)稱FPGA)進(jìn)行硬件設(shè)計(jì)和實(shí)現(xiàn)的過(guò)程。FPG
    的頭像 發(fā)表于 03-15 14:28 ?845次閱讀

    fpga開發(fā)板是什么?fpga開發(fā)板有哪些?

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)的開發(fā)平臺(tái),它允許工程師通過(guò)編程來(lái)定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字
    的頭像 發(fā)表于 03-14 18:20 ?1497次閱讀

    fpga用的是什么編程語(yǔ)言 fpga用什么語(yǔ)言開發(fā)

    和VHDL都是用于邏輯設(shè)計(jì)的硬件描述語(yǔ)言,并且都已成為IEEE標(biāo)準(zhǔn)。它們能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性,并便于文檔管理和設(shè)計(jì)重用。 fpga用什么語(yǔ)言開發(fā)
    的頭像 發(fā)表于 03-14 17:09 ?2824次閱讀

    fpga與嵌入式的區(qū)別 嵌入式和fpga開發(fā)有什么關(guān)系

    的,無(wú)法進(jìn)行大規(guī)模的硬件級(jí)別的修改。這意味著FPGA能更靈活地適應(yīng)不同的應(yīng)用場(chǎng)景和變化的需求。 開發(fā)周期:FPGA開發(fā)周期相對(duì)較短,因?yàn)樗?/div>
    的頭像 發(fā)表于 03-14 17:04 ?6144次閱讀

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我將詳細(xì)介紹
    的頭像 發(fā)表于 02-01 17:09 ?1683次閱讀

    如何能夠?qū)崿F(xiàn)通用FPGA問(wèn)題?

    FPGA 是一種偽通用計(jì)算加速器,與 GPGPU(通用 GPU)類似,FPGA 可以很好地卸載特定類型的計(jì)算。編程角度上講,FPGA
    發(fā)表于 12-29 10:29 ?358次閱讀

    LabVIEW編程開發(fā)NI-USRP

    XilinxZynqSOC器件,而另一些則配備了傳統(tǒng)的架構(gòu)FPGA,如Kintex7??赏ㄟ^(guò)兩種方式訪問(wèn)USRP上的FPGA:LabVIEW FPGA和RF片上網(wǎng)絡(luò)(RFNoC)框架。
    發(fā)表于 11-17 19:35

    OpenHarmony技術(shù)大會(huì) | 編程語(yǔ)言及開發(fā)框架分論壇圓滿舉辦:更新迭代中找尋發(fā)展

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 眾所周知,編程語(yǔ)言和開發(fā)框架是影響應(yīng)用體驗(yàn)和應(yīng)用生態(tài)的關(guān)鍵要素,持續(xù)更新與發(fā)展至關(guān)重要。編程語(yǔ)言
    的頭像 發(fā)表于 11-11 21:15 ?941次閱讀

    可綜合的RTL代碼的角度聊聊interface

    SystemVerilog引入了interface,這里我們可綜合的RTL代碼的角度聊聊interface。
    的頭像 發(fā)表于 10-12 09:06 ?1500次閱讀
    <b class='flag-5'>從</b>可綜合的RTL代碼的<b class='flag-5'>角度</b>聊聊interface