《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > 入門:FPGA基礎知識

入門:FPGA基礎知識

2022-10-24
來源:硬件筆記本
關鍵詞: 單片機 CPU FPGA

  FPGA全稱是Field-Programmable Gate Array,即現(xiàn)場可編程門陣列。

  1,、跟單片機相比

  結構不同:

  1.1,、單片機的引腳,、資源以及內部乘法器的數(shù)量是確定的,,也就是說它的硬件是確定的。只要通過軟件編程就可以實現(xiàn)其功能,。

  1.2 ,、FPGA內部電路是不確定的,它可以通過編程來改變芯片的內部結構,。內部乘法器,、除法器和寄存器的數(shù)量都可以通過編程來改變。

  小結:

  A,、單片機不改變硬件結構,,而是通過改變它的指令執(zhí)行的先后順序來實現(xiàn)我們所需要的功能。(指令包括讀,、寫或跳轉指令),。

  B、FPGA的編程和設計就是為了改變芯片內部的硬件電路結構來實現(xiàn)我們需要的功能,。

  考慮點不同:

  1.3,、在做單片機或電腦編程的時候,是不需要考慮時序的,,只要有個函數(shù),,然后有個編程代碼實現(xiàn)就好了,。寫一個函數(shù),,反復調用就可以實現(xiàn)很多的功能。

  比如一個功能,,單片機只需一個小時,,但FPGA可能花一天甚至幾個月的時間。因為FPGA不僅要想到功能,,還要想到電路和時序,。它是需要一個一個時鐘慢慢去摳的細節(jié)化的一種設計方法。

  所以,,F(xiàn)PGA開發(fā)難度遠遠比單片機高,。

  難度系數(shù)比較從高到低:ASIC集成電路>FPGA>單片機

  FPGA是專做底層的開發(fā)和設計,專做底層優(yōu)化的工作,,F(xiàn)PGA非常難,,這是它的一個特點。

  2,、FPGA應用場景

  2.1,、FPGA功能強大,試驗難度大,,一般用在通信接口的設計以及數(shù)字信號處理等比較高端(數(shù)據(jù)量大,、數(shù)據(jù)傳輸快,、精度要求高)的場合。

  日常應用中,,要求不是特別高的場合廣泛使用單片機來實現(xiàn),。

  2.2、FPGA還有一個特殊的應用場合,,即ASIC的原型驗證,。

  怎么理解?集成電路開發(fā)流程長,,風險高,,當做一個集成電路開發(fā)的時候,從代碼編寫到仿真驗證,,到PCB的布局布線,,再到最后的生產(chǎn)都需要經(jīng)過很長的時間周期。

  為了保證成功率,,希望一次通過,,在生產(chǎn)之前可以在FPGA上跑一跑,驗證一下功能是否正常,。

  2.3,、FPGA的非標場合(用量少的場合,常用于軍工領域),。

  例如,,USB等接口標準是固定的。但有一些特殊場合,,它的市場需求本身不大,,它本身也是某種特殊定義的接口,這種接口在市場上很難找到對應的芯片去實現(xiàn)這種接口,,這時FPGA就可以派上用場,,可以自己設計內部結構電路跟這種接口進行對接。

  2.4,、新科技的新型運用,。

  當一個新科技不明朗是否有市場前景的時候,肯定不會大批量的生產(chǎn)某一款芯片,,可以先用FPGA來試驗,,待市場需大量的需求時再大量的生產(chǎn)。

  小結:

  相較于專用的ASIC,,F(xiàn)PGA工具在開發(fā)難度上降低了許多,,并大大縮短了開發(fā)周期,而且由于FPGA是可重復編程的,其研發(fā)成本與風險要比ASIC減少許多,,更適用于復雜多變的數(shù)據(jù)應用,。

  3、FPGA的缺點

  FPGA的缺點是成本高,,為什么這么說呢,?專用的電路一定是把所有的電路都用上了,來實現(xiàn)我們所需要的功能,。FPGA要同時滿足A,、B、C的功能,。但滿足A的某些功能在B或C上肯定是用不上的,,所以它的利用率比較低,也可以理解為它的成本高,。

  所以,,F(xiàn)PGA只能做一些高端的少批量的運用。當發(fā)現(xiàn)市場前景非常好,,想要降成本的時候,,可以把FPGA的代碼變成集成電路去生產(chǎn)。

  4,、FPGA的基本結構

  FPGA不像專用的ASIC那樣通過固定的邏輯門電路來完成,,而只能采用一種可重復配置的結構來實現(xiàn),查找表(LUT)可以很好的滿足這一要求,。

  查找表(Look-Up-Table)是什么,?其本質上是一個RAM存儲器。

  舉例說明,,以數(shù)字邏輯Y=A&B&C為例,。在專用ASIC中,,為實現(xiàn)該邏輯,,邏輯門都已經(jīng)事先確定好,如下圖所示:

 021.JPG

  Y=A&B&C的實現(xiàn)結構

  在FPGA中就不一樣,。A,、B、C通過編程可以是任意關系,。設計過程如下:

  先用代碼寫出Y=A&B&C,,然后用EDA工具(QUARTUS或其他開發(fā)工具)分析這一行代碼,得出A,、B,、C在不同輸入組合下(共8種),Y的值分別是多少,其真值表如下圖所示:

 020.JPG

  然后,,軟件工具將所有結果寫到查找表(LUT)上,,從而實現(xiàn)該代碼的功能。

019.JPG

  Y=A&B&C的FPGA實現(xiàn)基本結構

  這就是FPGA實現(xiàn)的原理,。

  5,、知識補充

  5.1、在FPGA內部有著軟內核和硬內核之分,。

  軟內核:可以通過門電路隨意搭起來實現(xiàn)某種功能的電路,。比如在芯片內部實現(xiàn)了一個計數(shù)器邏輯,那么在構造計數(shù)器邏輯過程中使用到的功能可以被稱為“軟功能”,。

  硬內核:實現(xiàn)固定功能的芯片,。電路是固定好的,通過硬件去實現(xiàn)的,。比如:PLL時鐘單元,,它的電路是固定的,因為時鐘通過外部晶振起振后,,通過內部PLL時鐘倍頻,,它不是數(shù)字電路可實現(xiàn)的,需要模擬電路倍頻實現(xiàn),。AD芯片和DA芯片也是模擬芯片,,也是需要固定的資源在里面。

  5.2,、一種新的SOC FPGA(帶嵌入式處理器的FPGA)

  在FPGA內部有存儲單元片內RAM塊,,數(shù)據(jù)存放在RAM中,并由其設置工作狀態(tài),,若想要FPGA進行工作,,就要對RAM進行編程,而如果外部有大量數(shù)據(jù)進行交互時,,就要通過增加外設對數(shù)據(jù)進行暫時性的存儲,,如SDRAM存儲器或DDR3存儲器,暫存在外設中的數(shù)據(jù)最終也是要通過FPGA內部的RAM進行存儲和處理,。

  目前,,主流的FPGA都是基于SRAM工藝,在大部分開發(fā)板上都是串行配置模式,。由于SRAM掉電就會丟失內部數(shù)據(jù),,因此往往都會外接一個能夠掉電保存數(shù)據(jù)的片外存儲器來保存程序。這樣一來,,上電時FPGA便將外部存儲器種的數(shù)據(jù)讀入片內RAM以完成配置,,對FPGA編程完成后便進入工作狀態(tài),。

  目前FPGA內部已經(jīng)有一些芯片電路,不僅僅有接口,,門電路,,還有ARM及其它CPU等等已經(jīng)帶入嵌入式處理器的功能。

  我們會發(fā)現(xiàn)電路板上功能有ARM+FPGA或DSP+FPGA協(xié)同合作,,一個芯片上實現(xiàn)處理器+FPGA功能,,這就是我們更強大的嵌入式處理器的功能。

  優(yōu)點:

  1,、更有利于PCB布局,,面積更小,功能更強大,。

  2,、ARM嵌入在芯片內部,ARM和FPGA之間有更多的總線和通信方式,,速度可以更快,。

  5.3、數(shù)據(jù)的存儲及配置方式

  當在EDA工具上將程序設計完成之后,,便需要將軟件上的程序燒錄進FPGA內部,。通過不同的配置模式,F(xiàn)PGA便有不同的編程方式,,以下為幾種常見的配置模式:

  1,、并行模式:通過并行PROM、Flash配置FPGA,。也就是說,,把FPGA的程序先寫到PROM或Flash里面,上電的時候就會自動讀取里面的值,,配置FPGA,。

  022.JPG

  2、主從模式:使用一片PROM配置多片F(xiàn)PGA,。

  3,、串行模式:串行PROM配置FPGA。

  4,、外設模式:將FPGA作為微處理器CPU的外設,,由微處理器對其編程。

 017.JPG

  一個是FPGA,,一個是CPU,CPU通過接口寫FPGA,,然后再通過FPGA實現(xiàn)需要的功能,。那么CPU配置FPGA參數(shù)的數(shù)據(jù)從哪里來?

  可以增加一個RAM或FLASH,CPU讀取里面的內容,,然后寫到FPGA內部,,F(xiàn)PGA工作就能實現(xiàn)需要的功能。這是比較常見的一種方式,。

  這種方式跟CPU直接控制FPGA有什么不同嗎,?也就是上電后FPGA直接讀取PROM的數(shù)據(jù)不就好了,為什么要多一個CPU呢,?

 016.JPG

  其中一個原因是:FPGA的有些程序是加密的,,CPU讀取數(shù)據(jù)并解密后再發(fā)給FPGA,F(xiàn)PGA再來實現(xiàn)功能,。



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]