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

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

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

對(duì)比ARM、DSP,深入了解FPGA

FPGA學(xué)習(xí)交流 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-18 11:07 ? 次閱讀

自1985年首款FPGA誕生以來(lái),F(xiàn)PGA已經(jīng)是一名在電子信息領(lǐng)域征戰(zhàn)了30年的老兵,這名戰(zhàn)功赫赫的老兵如今已經(jīng)正式開(kāi)赴了一個(gè)新的戰(zhàn)場(chǎng)。但是FPGA并不是萬(wàn)能的。相對(duì)于串行結(jié)構(gòu)處理器,其設(shè)計(jì)的靈活性是以工作量的增加為代價(jià)的。FPGA與ARM、DSP(如下圖所示)的比較如下。



一、從語(yǔ)言本身的差異來(lái)看,基于Verilog HDL和VHDL的硬件語(yǔ)言與C/C++相比,在代碼靈活性、開(kāi)發(fā)效率等方面還有較大差距。通常一段十幾行的C語(yǔ)言代碼使用硬件語(yǔ)言實(shí)現(xiàn)后,代碼量會(huì)增加到幾十行之多。同時(shí),在進(jìn)行硬件語(yǔ)言描述時(shí),一個(gè)合格的FPGA工程師不僅要實(shí)現(xiàn)相應(yīng)的邏輯功能,還要在頭腦里浮現(xiàn)編寫(xiě)的代碼所生成的邏輯結(jié)構(gòu),并考慮到門延時(shí)對(duì)系統(tǒng)時(shí)序的影響。這樣才能夠設(shè)計(jì)出穩(wěn)定高效的邏輯結(jié)構(gòu),減少后期時(shí)序調(diào)整的工作。

二、從語(yǔ)言本身的差異來(lái)看,基于Verilog HDL和VHDL的硬件語(yǔ)言與C/C++相比,在代碼靈活性、開(kāi)發(fā)效率等方面還有較大差距。通常一段十幾行的C語(yǔ)言代碼使用硬件語(yǔ)言實(shí)現(xiàn)后,代碼量會(huì)增加到幾十行之多。同時(shí),在進(jìn)行硬件語(yǔ)言描述時(shí),一個(gè)合格的FPGA工程師不僅要實(shí)現(xiàn)相應(yīng)的邏輯功能,還要在頭腦里浮現(xiàn)編寫(xiě)的代碼所生成的邏輯結(jié)構(gòu),并考慮到門延時(shí)對(duì)系統(tǒng)時(shí)序的影響。這樣才能夠設(shè)計(jì)出穩(wěn)定高效的邏輯結(jié)構(gòu),減少后期時(shí)序調(diào)整的工作。

三、從工作頻率來(lái)看,ARM、DSP等處理器采用的是成熟的內(nèi)核結(jié)構(gòu),具有較好的時(shí)序特性,其最高頻率通常為600MHz~1.25GHz。為提高處理能力,TI芯片廠商采用多核的設(shè)計(jì)方式,設(shè)計(jì)了具有8核DSP、8核ARM的處理器,每個(gè)核心的最大工作頻率可 達(dá)1.25GHz,通過(guò)設(shè)置可以開(kāi)啟和關(guān)閉其中的內(nèi)核來(lái)靈活地協(xié)調(diào)功耗與處理能力之間的矛盾。目前TI公司正在設(shè)計(jì)具有8核ARM+8核DSP的處理器,來(lái)滿足高速系統(tǒng)中集中運(yùn)算的需求。而在FPGA的設(shè)計(jì)中,不同的系統(tǒng)具有不同的最高工作頻率,該頻率可以在編譯報(bào)告中獲得。對(duì)于Altera公司的FPGA,通過(guò)TimeQuest工具調(diào)整時(shí)序,可以提升設(shè)計(jì)工程的最高頻率。一個(gè)具有良好設(shè)計(jì)的FPGA工程的最高頻率可達(dá)150MHz以上。

四、從執(zhí)行方式來(lái)看,基于嵌入式平臺(tái)的C/C++語(yǔ)言在已有的硬件結(jié)構(gòu)中執(zhí)行,只需正確配置相關(guān)寄存器即可。而使用硬件語(yǔ)言的設(shè)計(jì)需自行設(shè)計(jì)硬件結(jié)構(gòu),在生成結(jié)構(gòu)前還要經(jīng)過(guò)前仿真、綜合、布局布線、后仿真等步驟,開(kāi)發(fā)周期較長(zhǎng)。這一情況在較為復(fù)雜的FPGA工程設(shè)計(jì)中尤為嚴(yán)重。例如,一個(gè)添加了4個(gè)DDR2的IP的工程在i5處理器、4G內(nèi)存的計(jì)算機(jī)上,編譯時(shí)間甚至在20min以上。

五、從算法應(yīng)用來(lái)看,ARM、DSP等處理器中集成了加法器、乘法器等運(yùn)算單元,尤其是在DSP中,可以在一個(gè)周期內(nèi)進(jìn)行8×8位甚至16×16位的乘法運(yùn)算。同時(shí),這些處理器還支持浮點(diǎn)運(yùn)算能力。而FPGA對(duì)這部分運(yùn)算并不擅長(zhǎng),即使在較為簡(jiǎn)單的加法運(yùn)算中,若進(jìn)行加法的兩個(gè)數(shù)據(jù)具有較高的位寬,由于傳統(tǒng)的加法中的進(jìn)位方式是串行結(jié)構(gòu),所以在其生成的結(jié)構(gòu)中會(huì)產(chǎn)生較長(zhǎng)的門延時(shí),從而會(huì)降低時(shí)序的余量,甚至?xí)档拖到y(tǒng)編譯后的最高工作頻率。

六、從算法設(shè)計(jì)來(lái)看,在ARM、DSP等處理器中設(shè)計(jì)算法前,需要提前構(gòu)思算法的流程圖,然后進(jìn)行代碼的編寫(xiě)。而在FPGA設(shè)計(jì)中,主要包含三種設(shè)計(jì)方式:面向狀態(tài)的設(shè)計(jì),面向活動(dòng)的設(shè)計(jì)和面向結(jié)構(gòu)的設(shè)計(jì)。

(1)面向狀態(tài)的設(shè)計(jì)是以狀態(tài)機(jī)為代表的設(shè)計(jì)方式,即通過(guò)控制信號(hào)和時(shí)序信號(hào)觸發(fā)狀態(tài)機(jī)進(jìn)行狀態(tài)的遷移。狀態(tài)機(jī)的設(shè)計(jì)是FPGA開(kāi)發(fā)中必不可少的環(huán)節(jié),這部分內(nèi)容將 在7.2.2節(jié)中詳細(xì)敘述。

(2)面向活動(dòng)的設(shè)計(jì)是以數(shù)據(jù)流和流程圖為代表的設(shè)計(jì)方式。尤其是在傳輸系統(tǒng)、實(shí)時(shí)算法設(shè)計(jì)中,常使用基于數(shù)據(jù)流的設(shè)計(jì)方式。常見(jiàn)的數(shù)據(jù)流的操作方式包括數(shù)據(jù)的寄存器同步緩沖、數(shù)據(jù)傳遞、數(shù)據(jù)運(yùn)算與流水設(shè)計(jì)、數(shù)據(jù)的存取等。

(3)面向結(jié)構(gòu)的設(shè)計(jì)常用于較大的系統(tǒng)設(shè)計(jì)中,用于描述模塊與模塊、單元與單元之間的互聯(lián)關(guān)系,主要包括數(shù)據(jù)信號(hào)與控制信號(hào)。根據(jù)不同的層次描述,主要可以分為系統(tǒng)級(jí)結(jié)構(gòu)描述、寄存器級(jí)結(jié)構(gòu)描述、門級(jí)結(jié)構(gòu)描述等。




為了解決這些硬件工程師所面臨的問(wèn)題,Altera Xilinx等FPGA公司不遺余力地對(duì)開(kāi)發(fā)平臺(tái)進(jìn)行了完善,如下以Altera的解決方案為例。

對(duì)于第一點(diǎn)提及的設(shè)計(jì)語(yǔ)言的問(wèn)題,Altera推出了Qsys(SOPC)等片上軟核,使工程師在FPGA中同樣可以使用更為靈活的C語(yǔ)言進(jìn)行編程。Qsys(SOPC)中包含了片內(nèi)、片外存儲(chǔ)器、定時(shí)器及各種接口等IP,使工程師可以按需定制自己的片內(nèi)處理器。使用這種方式,在一定程度上緩解了硬件描述語(yǔ)言開(kāi)發(fā)周期過(guò)長(zhǎng)的缺點(diǎn),也成為一種對(duì)FPGA系統(tǒng)進(jìn)行前期功能驗(yàn)證的有效手段。

對(duì)于第二點(diǎn)提及的通用模塊或接口占用開(kāi)發(fā)周期的問(wèn)題,Altera和供應(yīng)商設(shè)計(jì)了大量具有知識(shí)產(chǎn)權(quán)的IP(Intellectual Property,知識(shí)產(chǎn)權(quán)),包括運(yùn)算類、通信類、數(shù)字信號(hào)處理類、門類、輸入/輸出類、接口類、JTAG擴(kuò)展類、存儲(chǔ)類等多種類別。這些IP是經(jīng)過(guò)嚴(yán)格測(cè)試和優(yōu)化過(guò)的,其中部分IP免費(fèi),上面提到的SOPC中應(yīng)用的大部分IP都是免費(fèi)的。

值得注意的是,盡管大部分基本功能的IP可以在不同系列的FPGA間通用,依然有一些IP并不支持所有系列的FPGA,使用這些IP在不同系列的FPGA間進(jìn)行工程移植時(shí)需要注意。所使用的IP是否支持當(dāng)前芯片,可以在Quartus II的MegWizard管理器中查閱,也可以在官網(wǎng)中查閱。Altera支持的所有IP及其適用系列可參考以下網(wǎng)址:http://www. altera.com.cn/products/ip/ip-index.jsp。

對(duì)于第三點(diǎn)提到的工作頻率的問(wèn)題,不同的處理器具有不同的應(yīng)用領(lǐng)域。在高速數(shù)據(jù)處理過(guò)程中,ARM、DSP等固然可達(dá)到較高的工作頻率,然而相對(duì)于FPGA,其高速的優(yōu)勢(shì)僅體現(xiàn)在串行結(jié)構(gòu)的算法中。在FPGA的設(shè)計(jì)中,可利用其硬件設(shè)計(jì)的靈活性,采用并行算法或?qū)⒋兴惴ǜ脑鞛椴⑿兴惴?,然后在FPGA中實(shí)現(xiàn)。經(jīng)測(cè)試,在工作頻率為1GHz的DSP中(TMS320C6416),對(duì)SDRAM中分辨率為2048×2048的圖像進(jìn)行中值濾波后重新寫(xiě)入SDRAM,耗時(shí)為7s;而在FPGA中,完全可以在圖像輸入時(shí)進(jìn)行實(shí)時(shí)處理,僅消耗幾個(gè)時(shí)鐘周期的處理,近似可認(rèn)為0延時(shí)—實(shí)時(shí)。

對(duì)于第四點(diǎn)提及的編譯時(shí)間過(guò)長(zhǎng)的問(wèn)題,Altera致力于開(kāi)發(fā)新版本的平臺(tái),提升編譯效率的同時(shí),增加了增量編譯的功能。配合區(qū)域鎖定,可以鎖定已編譯過(guò)且在后續(xù)修改中沒(méi)有改動(dòng)過(guò)的模塊,對(duì)這部分模塊不進(jìn)行重新編譯,從而可減少編譯時(shí)間。

對(duì)于第五點(diǎn)提及的運(yùn)算能力的問(wèn)題,Altera FPGA中內(nèi)嵌了多個(gè)DSP塊。每個(gè)DSP塊中包含加法器和乘法器結(jié)構(gòu),根據(jù)系列不同,具有不同的數(shù)據(jù)位寬。多個(gè)DSP塊中的加法器和乘法器可以互相拼接,從而支持更高位寬的運(yùn)算。結(jié)合相關(guān)的運(yùn)算類IP,可以流水線的形式完成運(yùn)算,每個(gè)周期輸出一次計(jì)算結(jié)果。表1.10為Cyclone III系列FPGA的資源列表??梢钥吹剑cDSP相比,Cyclone III的乘法器資源還是比較豐富的,這使得在FPGA內(nèi)部進(jìn)行并行運(yùn)算成為可能。
102214z3sy6hy8svgtllth.png




最后,Altera又推出了嵌入了雙核28nm的ARM Cortex-A9的FPGA,同時(shí)以足夠的DSP塊和足夠的乘法器資源,完善了FPGA+DSP+ARM架構(gòu),并以單片SoC FPGA的模式,解決了過(guò)往FPGA力所不能及的缺陷,解決了未來(lái)多IC集成的前瞻性問(wèn)題,如圖1.28所示。而這卻僅僅只是一個(gè)開(kāi)始,在未來(lái)Altera FPGA的發(fā)展中,更多的以實(shí)現(xiàn)FPGA+DSP+ARM為架構(gòu),并行實(shí)現(xiàn)高速運(yùn)算,解決過(guò)去的難題,不斷地突破極限。在未來(lái)的數(shù)字系統(tǒng)設(shè)計(jì)中,這必然是一種趨勢(shì)。
102215jx6d15knvurnyndh.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    1625

    文章

    21638

    瀏覽量

    601353
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    384

    瀏覽量

    37253
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入了解示波器

    深入了解示波器
    發(fā)表于 11-14 22:32

    深入了解DSPARM的區(qū)別與聯(lián)系

    的嵌入式系統(tǒng)中。 ARMDSP的比較: 區(qū)別:由于兩大處理器在各自領(lǐng)域的飛速發(fā)展,如今兩者中的高端或比較先進(jìn)的系列產(chǎn)品中,都在彌補(bǔ)自身缺點(diǎn)、且擴(kuò)大自身優(yōu)勢(shì),從而使得兩者之間的一些明顯不同已不再那么明顯了
    發(fā)表于 01-02 17:18

    深入了解LabVIEW FPGA資料分享

    深入了解LabVIEW FPGA
    發(fā)表于 05-27 08:35

    Zigbee各版本對(duì)比,讓你深入了解

    Zigbee各版本對(duì)比,讓你深入了解ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。根據(jù)國(guó)際標(biāo)準(zhǔn)規(guī)定,ZigBee技術(shù)是一種短距離、低功耗的無(wú)線通信技術(shù)。這一名稱(又稱紫蜂協(xié)議
    發(fā)表于 02-29 11:24

    深入了解DSP

    深入了解DSPDSP(digital singnal processor)是一種獨(dú)特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號(hào)來(lái)處理大量信息的器件。一個(gè)數(shù)字信號(hào)處理器在一塊不大的芯片內(nèi)包括有控制
    發(fā)表于 05-16 17:06

    對(duì)比ARMDSP,深入了解FPGA

    發(fā)表于 06-28 15:48

    深入了解DSPARM的關(guān)系

    DSPDSP(digital singnal processor)是一種獨(dú)特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號(hào)來(lái)處理大量信息的器件。一個(gè)數(shù)字信號(hào)處理器在一塊不大的芯片內(nèi)包括有控制
    發(fā)表于 07-01 06:28

    DSP/MCU/ARM/CPLD/FPGA對(duì)比分析哪個(gè)好?

    DSP、MCU、ARM、CPLD/FPGA對(duì)比分析哪個(gè)好?
    發(fā)表于 10-22 07:17

    ARM/DSP/FPGA的區(qū)別是什么?對(duì)比分析哪個(gè)好?

    ARM/DSP/FPGA的區(qū)別是什么?對(duì)比分析哪個(gè)好?
    發(fā)表于 11-05 06:08

    深入了解示波器入門手冊(cè)

    深入了解示波器入門手冊(cè)
    發(fā)表于 03-27 17:43 ?241次下載
    <b class='flag-5'>深入了解</b>示波器入門手冊(cè)

    FPGAARM、DSP的區(qū)別

    FPGAARM、DSP的區(qū)別
    發(fā)表于 03-15 08:00 ?9次下載

    FPGAarm,stm32,dsp特點(diǎn)對(duì)比

    FPGA,arm,stm32,dsp特點(diǎn)對(duì)比
    發(fā)表于 11-19 13:21 ?24次下載
    <b class='flag-5'>FPGA</b>,<b class='flag-5'>arm</b>,stm32,<b class='flag-5'>dsp</b>特點(diǎn)<b class='flag-5'>對(duì)比</b>

    帶你深入了解示波器

    帶你深入了解示波器
    發(fā)表于 02-07 14:26 ?19次下載

    深入了解安全光柵

    深入了解安全光柵
    的頭像 發(fā)表于 06-25 13:53 ?1142次閱讀
    <b class='flag-5'>深入了解</b>安全光柵

    深入了解 GaN 技術(shù)

    深入了解 GaN 技術(shù)
    的頭像 發(fā)表于 12-06 17:28 ?6034次閱讀
    <b class='flag-5'>深入了解</b> GaN 技術(shù)