明德?lián)PFPGA連載課程第一章階段設計基礎一.FPGA簡(jiǎn)介

發(fā)布時(shí)間:2018-11-1 10:35    發(fā)布者:luckyb1
明德?lián)PFPGA連載課程 第一階段設計基礎  一.FPGA簡(jiǎn)介

第一節:什么是FPGA
      FPGA的官方解釋是 : Field-Programmable Gate Array,即現場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD(不用讀系列)等可編程器件的基礎上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數有限的缺點(diǎn)。
      可以將FPGA理解為大量的邏輯門(mén)陣列,用戶(hù)可以自由組合以實(shí)現不同的電路功能,即FPGA的可編程特性。相比于馮諾依曼結構的CPU、GPU等通用處理器,FPGA具有效率更高速度更快的優(yōu)點(diǎn);相比于專(zhuān)職專(zhuān)用的ASIC,FPGA則具有開(kāi)發(fā)難度小,開(kāi)發(fā)周期更短的優(yōu)勢,更適用于復雜多變的數據中心等應
      但是FPGA也不是萬(wàn)能的,優(yōu)勢有時(shí)候也是劣勢。雖然FPGA相比于CPU效率更高、功耗更低的特點(diǎn),但是易于開(kāi)發(fā)程度遠遠不如CPU;雖然相比ASIC開(kāi)發(fā)周期更短,但是也存在著(zhù)資源浪費,成本過(guò)高、性能較差的問(wèn)題,不能真正的替代ASIC

第二節:FPGA的工作原理
      由于FPGA需要反復燒寫(xiě),所以他實(shí)現組合邏輯的結構不能像ASIC那樣通過(guò)固定的與非門(mén)來(lái)完成,而只能采用一種抑郁反復配置的結構。查找表(LUT)可以很好地滿(mǎn)足這一要求,目前主流FPGA都采用了基于SRAM工藝的查找表結構。通過(guò)燒寫(xiě)文件改變查找表內容的方法來(lái)實(shí)現對FPGA的重復配置。
      根據數字電路的基本知識可以知道,對于一個(gè)n輸入的邏輯運算,不管是與或非運算還是異或運算等等,最多只可能存在2n種結果。所以如果事先將相應的結果存放在一個(gè)存儲單元,就相當于實(shí)現了與非門(mén)電路的功能。FPGA的原理就是如此,他通過(guò)燒寫(xiě)文件去配置查找表的內容,從而在相同的電路情況下實(shí)現了不同的邏輯功能。
       查找表(Look-Up-Table)簡(jiǎn)稱(chēng)為L(cháng)UT,LUT本質(zhì)上就是一個(gè)RAM。目前FPGA中多實(shí)用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線(xiàn)的RAM。當用戶(hù)通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路以后,FPGA開(kāi)發(fā)軟件會(huì )自動(dòng)計算邏輯電路的所有可能結果,并把真值表(即結果)事先寫(xiě)入RAM,這樣,每輸入一個(gè)信號進(jìn)行邏輯運算就等于輸入一個(gè)地址進(jìn)行查找表,找出相應的內容,然后輸出即可。以實(shí)現y=(a&b)|c的功能為例。如果是ASIC,下面就是基本的實(shí)現結構:



      而在FPGA,用戶(hù)首先寫(xiě)出“y=(a&b)|c”代碼,軟件工具(QUARTUS、ISE或VIVADO)分析這一行代碼,得出a、b、c不同值下(共8種不同值),y的值分別是多少。
a    b    c    y
0    0    0   0
0    0   1    1
0    1    0   0
0    1    1   1
1    0    0   0
1    0    1   1
1    1    0   1
1    1    1   1
      然后軟件工具將結果寫(xiě)到LUT上,從而實(shí)現了該代碼的功能。下圖就是FPGA的實(shí)現基本結構。LUT就像一個(gè)RAM,abc則相當于地址,通過(guò)abc的地址就得讀到值賦給y。





第三節:更為復雜的FPGA架構
  正如我們在前面說(shuō)的那樣,賽靈思公司在1985年推出的第一塊FPGA—XC2064包含8×8=64的邏輯塊陣列,每個(gè)邏輯塊包含一個(gè)四輸入查找表及其它一些簡(jiǎn)單功能。由于它們的容量非常有限,因此早期的FPGA只用來(lái)執行一些相對簡(jiǎn)單的任務(wù),比如集中一些膠合邏輯,或實(shí)現基本的狀態(tài)機。然而隨著(zhù)時(shí)間的推移,事情開(kāi)始改變……
  隨著(zhù)時(shí)間的推移和工藝節點(diǎn)的進(jìn)步,FPGA的容量和性能不斷得到提高,功耗卻不斷的下降。直到大約2006年以前廣泛使用的一直是四輸入查找表。事實(shí)上,在寫(xiě)這篇文章之時(shí),較小的FPGA系列器件仍在使用四輸入的查找表,但一些高端器件可能使用六、七或八輸入的查找表。這些大家伙可能被用作一個(gè)大的查找表,或分裂成許多更小的功能,比如兩個(gè)四輸入的查找表或一個(gè)三輸入一個(gè)五輸入的查找表。在實(shí)際的高端器件中,這種可編程構造可以描述相當于百萬(wàn)級(有時(shí)甚至千萬(wàn)級)的原始邏輯門(mén)。
  如果某個(gè)邏輯功能(比方說(shuō)計數器)是用FPGA的可編程構造實(shí)現的,那么這個(gè)功能可以被說(shuō)成“軟功能”。相比之下,如果某個(gè)功能是直接用芯片實(shí)現的,則被說(shuō)成“硬功能”。(隨著(zhù)這些功能變得越來(lái)越大越來(lái)越復雜,我們一般稱(chēng)它們?yōu)閮群耍。軟內核的?yōu)勢在于,你可以讓它們做你想讓它們做的任何事。硬內核的優(yōu)勢是它們占用較少的硅片面積,具有較高的性能,并且功耗較低。最優(yōu)的解決方案是混合使用軟內核(用可編程構造實(shí)現)和硬內核(直接用硅片實(shí)現)。這樣,除了基于查找表的可編程構造外,今天的FPGA可以利用以下介紹的各種硬內核進(jìn)行性能增強:


第四節:帶嵌入式處理器的FPGA
  這是真正讓人興奮的事情……你可以用FPGA中的普通可編程構造做的事情之一是,使用其中的一部分實(shí)現一個(gè)或多個(gè)軟處理器內核。當然,你可以實(shí)現不同規模的處理器。舉例來(lái)說(shuō),你可以創(chuàng )建一個(gè)或多個(gè)8位的處理器,加上一個(gè)或多個(gè)16位或32位的軟處理器—所有處理器都在同一器件中。
  如果FPGA供應商希望提供一個(gè)占用較少硅片面積、消耗較低功率但性能更高的處理器,解決方案是將它實(shí)現為硬內核。一個(gè)非常令人興奮的開(kāi)發(fā)成果是Altera和賽靈思等公司最近推出的SoC FPGA?紤]下面所示這個(gè)例子:




  圖4:一種新的SoC FPGA
  這個(gè)漂亮的小東西整合了一個(gè)完全以硬內核方式實(shí)現的雙路ARM Cortex-A9微控制器子系統(運行時(shí)鐘高達1GHz,包含浮點(diǎn)引擎,片上緩存,計數器,定時(shí)器等),以及種類(lèi)廣泛的硬內核接口功能(SPI,I2C,CAN等),還有一個(gè)硬內核的動(dòng)態(tài)內存控制器,所有這些組件都利用大量傳統的可編程構造和大量的通用輸入輸出(GPIO)引腳進(jìn)行了性能增強。(即將在16nm節點(diǎn)推出的一款SoC FPGA據稱(chēng)包含四內核的64位ARM Cortex-A53處理器,雙內核32位ARM Cortex-R5實(shí)時(shí)處理器,以及一個(gè)ARM Mali-400MP圖形處理器。這些可不是你祖母時(shí)候的FPGA哦。
  傳統的嵌入式系統架構師可能將其中一個(gè)器件放置在電路板上,并將它用作傳統的高性能雙內核ARM Cortex-A9微控制器。當電路板上電時(shí),硬微控制器內核立即啟動(dòng),并在任何可編程構造完成配置之前就可用了。這樣可以節省時(shí)間和精力,并讓軟件開(kāi)發(fā)人員和硬件設計師同時(shí)開(kāi)始開(kāi)發(fā)。
  一種情形是軟件開(kāi)發(fā)人員捕獲他們的代碼,在SoC FPGA的Cortex-A9處理器上運行這些代碼,然后通過(guò)分析識別任何可能?chē)乐赜绊懶阅懿⒊蔀槠款i的功能。這些功能隨后可能就轉交給硬件設計工程師用可編程構造來(lái)實(shí)現,它們(這些功能,不是設計工程師)將使用較低的時(shí)鐘頻率提供明顯更高的性能,而且功耗更低。
  前面我們說(shuō)過(guò),硬內核實(shí)現的功能(圖4所示的ARM Cortex-A9就是一種硬內核)與等效的軟內核相比具有更高的性能和更低的功耗。但現在我們又說(shuō)如果在硬內核處理器上運行的軟件功能是個(gè)瓶頸,我們可以用可編程構造來(lái)實(shí)現,這樣它就能……你理解的沒(méi)錯,提供更高的性能和更低的功耗。

第五節:編程方式
FPGA是由存放在片內的RAM來(lái)設置其工作狀態(tài)的,因此工作室需要對片內RAM進(jìn)行編程。用戶(hù)可根據不同的配置模式,采用不同的編程方式。FPGA有如下幾種配置模式:
1、并行模式:并行PROM、Flash配置FPGA;
2、主從模式:一片PROM配置多片FPGA;
3、串行模式:串行PROM配置FPGA;
4、外設模式:將FPGA作為微處理器的外設,由微處理器對其編程。
目前,FPGA市場(chǎng)占有率最高的兩大公司Xlinx和Altera生產(chǎn)的FPGA都是基于SRAM工藝的,需要在使用時(shí)外接一個(gè)片外存儲器以保存程序。上電時(shí),FPGA將外部存儲其中的數據讀入片內RAM,完成配置后,進(jìn)入工作狀態(tài);掉電后FPGA恢復為白片,內部邏輯消失。這樣FPGA不僅能反復使用,還無(wú)需專(zhuān)門(mén)的FPGA編程器,只需通用的EPROM、PROM編程器即可。


本文地址:http://selenalain.com/thread-549319-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页