您好,登錄后才能下訂單哦!
這篇文章給大家介紹FPGA基礎中的FPGA芯片是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在介紹FPGA芯片之前,首先介紹一下等效電路。
先解釋一下“等效”。
等效是指效用相同。通俗的解釋就是不關心過程,結果是相同的。
圖1 :行走路徑圖
舉例說明:小明現在在A點,想要到C點去。從圖1中我們簡單分析出,可以是A點 —> B點 —> C點,也可以A點 —> D點 —> C點。如果小明不嫌棄累的話,也可以A點 —> B點 —> A點 —> D點 —> C點。在我們不考慮不過程的情況下,只考慮最后小明的位置,那么無論哪種方案,最終的結果都是相同的。
在做電路的設計和分析的時候,我們也經常引入等效的概念,來解決復雜的問題。例如:諾頓定理(Nortons theorem)和戴維南定理(Thevenin's theorem)。在這里這兩個定理不做過多介紹,有興趣的讀者可以自行查詢。
黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
黑盒測試是以用戶的角度,從輸入數據與輸出數據的對應關系出發進行測試的。很明顯,如果外部特性本身設計有問題或規格說明的規定有誤,用黑盒測試方法是發現不了的。
圖3 :功能表
根據對功能表的分析,可以認定圖2所示數字電路完成了二輸入與門的功能。那這個電路里面一定是一個二輸入與門嗎?答案是:不一定。
圖5 :利用三個與非門構成的或門
圖7 :二選一多路選擇器示意圖
當S=0時,Y=A;當S=1時,Y=B。根據已知功能,列出真值表(圖2-8)。
圖9 :存儲器模型
存儲器中被分為了很多“小格子”,每一個“小格子”里面都可以放下很多的二進制數碼。每個小格子都會有自己獨特的標識,就像我們的門牌號一樣,每個屋都是不同的。邏輯功能是當外部輸入一個“門牌號”,對應的“小格子”里面的二進制數碼就會輸出。
存儲器中的“小格子”的數量,在制造時,就已經確定。“小格子”的數量確定了,那么“門牌號”的形勢也就被確定了。例:我們有100個房間,我們只有兩個十進制的數碼就可以表示了,00至99。在存儲器中,“門牌號”也只能用二進制數來表示,例如:有4個“小格子”,那么“門牌號”就要用兩個二進制碼來表示,00~11。每個“小格子”里面存放的二進制數的個數,在制造時,也就確定好了。
通常我們把“門牌號”稱為地址,“小格子”稱為單個地址的存儲空間,每個“小格子”能放下的二進制數碼的個數稱為“存儲器的存儲位寬”。
制作一個擁有8個地址,單個地址空間為1個二進制數碼的存儲器。此時,地址碼應該有三位,每個地址對應的存儲二進制數碼 的個數為1個。要求:000地址中,放入0;001地址中,放入0;010地址中,放入1;011地址中,放入1;100地址中,放入0;101地址中,放入1;110地址中,放入0;111地址中,放入1;
圖11 :存儲器的功能表
將存儲器的功能表圖11和二選一多路選擇器的真值表圖8相對比,我們會發現,除了自定義的信號名稱不相同外,邏輯功能是相同的。那么也就是說,在黑盒設計時,我們可以將一個帶有預設值的存儲器放進去,它所對外的功能,也是可以實現二選一多路選擇器的。此時,我們可以帶有預設值的存儲器可以等效為二選一多路選擇器。
仔細觀察,我們發現,任意真值表都可以用存儲器來等效。那也就是說,存儲器電路可以等效為任意組合邏輯的電路。
存儲器電路的優勢:不用做任何邏輯化簡,不受基本邏輯門電路的樣式限制,可以很快的得出最終的電路功能。如果存儲器可以任意修改預設值的話,那么同一個存儲器就可以隨著不同的預設值等效為各類的電路。如果是基本門電路構成的話,就需要受到數量和樣式的限制。
存儲器電路的劣勢:對于簡單的門電路,用存儲器實現是一種浪費。存儲器電路也是一種相對復雜的電路。另外存儲器電路的延遲一般偏大,原因同上。
在做數字組合邏輯電路設計時,如果采用門電路的設計方式,需要更新電路功能時,就需要重新布置電路結構,更換基本電路元器件;如果采用存儲器等效的設計方式,只需要更改預設值即可。這種方法為我們做電路升級提供了一個很好的解決途徑。
FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
在介紹FPGA芯片結構之前,首先就FPGA和單片機做一個簡單的對比。
單片機是一種微處理器,類似于電腦CPU。它的電路是固定的,是通過軟件編程語言描述軟件指令控制微處理器進行工作;它的所有指令都是微處理器順序執行的;
圖13 :與門邏輯功能示意圖
要求實現兩路信號的與操作,將結果作為一路信號輸出。那么在單片機中和FPGA中都是如何實現此功能的呢?
在單片機中,假設我們已經將對應的變量和引腳已經分配結束。我們會編寫如下一段代碼:
圖14 :CYCLONE IV E 可編程最小單元示意圖
CYCLONE IV E是INTEL FPGA中CYCLONE系列的第四代。在上圖中,四輸入查找表(Four – Input LUT)其實就是一個有16存儲空間,每個存儲空間只有1個二進制數字的存儲器,LUT(Look Up Table)就是查找表。設置合理的預設值,就可以實現一定的數字組合邏輯電路功能。
那為什么要固定為16存儲器空間呢?如果我們要實現一個5輸入的與門,那16個存儲空間就不夠用了。那么此時我們應該怎么辦?
其實也很簡單,只需要將5輸入的與門分為一個四輸入的與門,然后把結果和另外一個輸入進行相與即可。對于存儲器電路也可以這樣做。
如果可以級聯的話,那么做成2輸入的是不是也可以的。原則上是可以的,但是如果我們實現的邏輯功能比較復雜的話,那么就會級聯特別長,延時就會很大。那做成1000輸入的話,是不是就好了,再復雜的話,都不用級聯。可是在設計時,我們做的不僅僅是復雜邏輯,還有很多的不復雜的,那么一個二輸入與門的設計也要占用一個1000輸入,那就得不償失了。所以經過衡量,最終設計者將輸入做成了4輸入的查找表。
經過不斷的發展,FPGA在各個場合的應用越來越多,所做的設計越來越復雜,要求的延遲越來越小。于是新出的FPGA系列擁有更多的輸入查找表。
在圖2-14中,后面還有一個時序邏輯器件。這個時序邏輯器件是FPGA廠商直接做到FPGA內部的,我們設計電路時,不需要設計,只需要調用出來即可。
由此,我們就可以實現組合邏輯和時序邏輯的一個小部分了。但是復雜的設計,往往是需要級聯的。
圖16 :CYCLONE IV的IO單元
在IO單元中,我們可以發現整個IO單元可以被配置為輸入、輸出、輸入出。并且其中可以是否配置上拉電阻,以及電路延遲等等功能。
FPGA的IO數量較多,在需要同時控制多個外設時,不需要級聯,一致性會比較好。
圖17 :CYCLONE IV E的某塊FPGA的IO供電bank
在FPGA中,內部邏輯運行是一種電壓。輸入輸出被分為了好多個塊(bank),每一個塊都可以有自己的電平標準,這就讓FPGA可以在不用轉換電路的情況下,驅動多個不同電壓標準的接口。
在圖17中可以看到FPGA的內部邏輯電壓相對較低,所以FPGA的功耗也相對較低。
通過上述的三種結構,一個簡單的FPGA芯片就可以實現了。
在FPGA應用時,我們發現經常用到一些緩存和特殊電路,并且對這些電路的要求比較高,用FPGA實現不太現實。那么FPGA就會將其集成到FPGA內部,用大量的互聯資源引出接口,供給內部邏輯進行控制或者通信。
設計者可以利用FPGA的資源實現CPU的功能,構成SOPC。
現在的很多FPGA將ARM的硬核放入到自己內部,構成SOC。
本文只是簡單介紹FPGA內部結構,后續在設計時,需要詳細了解結構時,會單獨列出來詳細講解。有興趣的同學可以自己查詢FPGA的介紹文檔。
FPGA是一種芯片,有很多的廠商都在生產和銷售,下面簡要介紹幾個廠家以及他們的芯片。
Intel FPGA Altera公司(阿爾特拉)自二十年前發明世界上第一個可編程邏輯器件開始,秉承了創新的傳統,是世界上“可編程芯片系統”(SOPC)解決方案倡導者。Altera結合帶有軟件工具的可編程邏輯技術、知識產權(IP)和技術服務,在世界范圍內為14,000多個客戶提供高質量的可編程解決方案。我們新產品系列將可編程邏輯的內在優勢——靈活性、產品及時面市——和更高級性能以及集成化結合在一起,專為滿足當今大范圍的系統需求而開發設計。
在2015年12月Intel斥資167億美元收購Altera公司。至此,我們將Altera FPGA更名為Intel FPGA。
Intel FPGA的主流FPGA分為兩大類,一種側重低成本應用,容量中等,性能可以滿足一般的邏輯設計要求,如Cyclone系列;還有一種側重于高性能應用,容量大,性能能滿足各類高端應用,如Startix、Arria系列等,用戶可以根據自己實際應用要求進行選擇。在性能可以滿足的情況下,優先選擇低成本器件。
Xilinx FPGA Xilinx(賽靈思)是全球領先的可編程邏輯完整解決方案的供應商。Xilinx研發、制造并銷售范圍廣泛的高級集成電路、軟件設計工具以及作為預定義系統級功能的IP(Intellectual Property)核。客戶使用Xilinx及其合作伙伴的自動化軟件工具和IP核對器件進行編程,從而完成特定的邏輯操作。
Xilinx的主流FPGA分為兩大類,一種側重低成本應用,容量中等,性能可以滿足一般的邏輯設計要求,如Spartan系列;還有一種側重于高性能應用,容量大,性能能滿足各類高端應用,如Virtex系列,用戶可以根據自己實際應用要求進行選擇。在性能可以滿足的情況下,優先選擇低成本器件。
繼Xilinx正式向外界發布其推出全球首顆28nm制程的Kintex-7后,該公司推出7系列四款芯片Artix-7、Kintex-7、Virtex-7和Zynq的FPGA芯片,以及圍繞7系列的開發資源。
Actel FPGA ACTEL公司成立于1985年,位于美國紐約。之前的20多年里,ACTEL一直效力于美國軍工和航空領域,并禁止對外出售。國內一些特殊領域的企業都是采用其它途徑購買軍工級型號。目前ACTEL開始逐漸轉向民用和商用,除了反熔絲系列外,還推出可重復擦除的ProASIC3系列(針對汽車、工業控制、軍事航空行業)。
Lattice FPGA 萊迪思(Lattice)半導體公司提供業界最廣范圍的現場可編程門陣列(FPGA)、可編程邏輯器件(PLD)及其相關軟件,包括現場可編程系統芯片(FPSC)、復雜的可編程邏輯器件(CPLD),可編程混合信號產品(ispPAC?)和可編程數字互連器件(ispGDX?)。
國產FPGA 京微齊力、西安智多晶微電子、紫光國微、高云等等,他們都擁有自己的FPGA系列芯片。
FPGA的廠商有很多,但是基本的內部結構和開發流程是比較接近了,只要掌握一種FPGA的開發方式,其他的FPGA開發就會容易上手很多。
目前學習FPGA設計,使用INTEL FPGA和Xilinx FPGA的居多,這兩家的FPGA芯片也是應用最多的。
系統設計師可以根據需要通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。
FPGA的特點有以下幾點:
采用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的芯片。
FPGA可做其它全定制或半定制ASIC電路的中試樣片。
FPGA內部有豐富的觸發器和I/O引腳。
FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。
FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。
FPGA的應用大可分為以下幾種:
數據采集領域:自然界的大部分信號是模擬信號,在高速采集時,信息無法直接傳入MCU或者DSP。此時,需要FPGA進行一定的轉換和速率匹配。
邏輯接口領域:CPU在于外界通信時,需要各種專門的接口,而接口電路所引入的接口電路很龐大。加入FPGA,就可以CPU與FPGA做單獨通信,由FPGA實現其他各種接口的擴展。
電平接口領域:不同的器件支持的電平不盡相同,如果需要連接各種接口時,就需要各種接口標準或者轉換電路。對于FPGA來說,FPGA分為不同的BANK,可以直接支持不同的電平標準。
數字信號處理領域:通信、圖像等領域近些年對計算量提出了更高的要求,FPGA支持并行計算,可以大大縮短計算的時間。
IC設計領域:IC在設計時,首先會使用FPGA設計出基礎的電路模型進行各種理論驗證,等驗證通過后,才會進行IC制造等等。
通過上述的敘述,了解FPGA內部都是使用等效電路實現功能,那么它的速度是不是趕不上ASIC?
既然要做對比,就要說明一部分情況。例:如果是同等工藝條件下,FPGA是沒有ASIC跑的快。各大FPGA廠商都是利用世界先進工藝做出的片子,如果某些應用類型公司嘗試利用的最先進工藝做片子,那么風險比較高,費用也比較昂貴,如果采用成熟工藝去做片子,那么asic的速度不一定會有FPGA速度快。
關于FPGA基礎中的FPGA芯片是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。