尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
對當今的硬件工程師來講,FPGA的應用是同PCB設計一樣必須掌握的技能,因此在過去三年里我們摩爾吧的硬禾實戰營最重要的技能培訓就是融合了PCB設計的FPGA編程和系統應用,因為在數字化邏輯支撐整個現代科技的今天,不會用FPGA也就意味著無法用數字邏輯的思維方式來解決問題,也就很難成為一個優秀的系統工程師,也會錯失掉蓬勃發展的物聯網、工業4.0、人工智能等浪潮。
我們先來看看FPGA的重要性:
FPGA的技術已經已經發展了30多年了,到了今天它和CPU架構一樣,玩家越來越少、技術越來越高端,應用越來越深入到各個領域,成了支撐當今各項高科技領域(物聯網、大數據、雲計算、無人駕駛、智能製造、人工智能)的基礎。
這張圖看得出FPGA和CPU並駕齊驅,不斷刷新性能指標,由於FPGA的可並行利用資源的特點,其計算能力要遠超已經採用多核技術的CPU架構。
經過30年的發展,FPGA已經不再是當初簡單的「可編程邏輯器件(PLD)」了,在器件內部集成了更多需要靈活配置的可半定制化的功能,在兩個大佬Xilinx和Altera/Intel內部集成了硬核化的CPU之後,現在的FPGA更像是晶片領域的「變形金剛」 – 五臟俱全並可變化萬千。
CPU屆的老大Intel嗅覺靈敏,3年前果斷出手將FPGA的兩巨頭之一的Altera收入囊中,高度整合CPU/FPGA,為大數據、雲計算以及人工智能大時代做足了準備。
一路高歌猛進的Xilinx,在兄弟Altera被招安以後,獨步江湖成為了數字世界的「擎天柱」。
如果是說Xilinx和Altera是飛機、高鐵的話,還有兩位低調的小兄弟「Lattice」和「Actel」(先被Microsemi收編,又到了MCU大佬Microchip的麾下),他們不放棄、不拋棄,就像滴滴、摩拜一樣用自己精雕細琢的服務支撐著從簡單的邏輯變換、協議接口到圖像處理、深度學習等幾乎所有的領域。
FPGA無處不在 – 這張圖可以看出來,幾乎你能想像到的所有技術領域都會用到FPGA。
最簡單的是做接口/協議連接的功能,通過各種邏輯組合,以靈活、高速、資源豐富的優勢幫助ASIC(專用集成電路)做到系統所需要的一切功能,也就是說在數字域,凡是你選用的ASIC不能做到的功能,都可以用FPGA來協助。
在人工智能時代,雖然GPU炙手可熱,但在靈活性和高性能之間最佳的平衡絕對離不開FPGA。這就是為什麼Xilinx的股票持續上漲、美國總統親自否決中國對Lattice的收購的原因,因為這玩意兒太重要了,未來會越來越重要 – 具有高度殺傷力的核心技術。
這張圖簡單地展示了FPGA在人工智能領域應用的優勢所在。
微軟的雲服務當然缺少不了FPGA了,無數顆的CPU、GPU,仍舊離不開FPGA,從這個圖上隱約覺得FPGA就是雲中的帶頭大哥「擎天柱」。
是不是「不明覺歷」?我們不能只是停留在「不明」的階段,對這麼厲害的技術一定要「明」,一定要知道它是什麼?它應該怎麼用?先通過一張圖簡單看一下FPGA是如何構成的。
以Xilinx的Virtex II為例的FPGA內部結構
FPGA是一種可編程的數字邏輯晶片,我們可以通過對其編程做到幾乎任何的數字功能,最簡單的如:
-
豐富的可編程邏輯資源(CLB) – 各種組合邏輯、時序邏輯,門「陣列」
-
豐富的內部存儲資源(Block RAM) – 可以組成ROM、雙口RAM、FIFO等等各種需要的存儲結構
-
可編程的IO – 每一個輸入輸出管腳都可以單獨定義、配置,支持同其它器件的靈活連接
看到這里是不是就覺得它很強大了?這只是FPGA冰山的一個小角而已,即便掌握了這些基本功能的使用,就足以讓我們硬件工程師的技能得到大大的提升,在產品設計中上一個大的台階,哪些提升呢?
-
FPGA在數字世界里它無所不能,就像樂高的積木一樣可以搭建各種不同的功能模塊,做到你所希望的各種功能,這是你產品中非常重要的一塊,可以大大加速你產品的開發時間,可以大大降低系統的成本及設計風險,可以為你產品的升級、調整帶來大大的靈活性;
-
數字邏輯的思想 – 首先你必須掌握最基本的數字邏輯知識,學會一種用來構建各種功能的工具語言(在這里我們推薦廣受歡迎的Verilog),再次你要動腦(考驗的是你的邏輯思維是否清晰),一個優秀的建築師的作品是在腦子里勾畫出來的,而不是拿積木碰運氣拼湊出來的;
-
並行設計的理念 – 同CPU不同的是FPGA是並行處理的,如果要處理並行的多個任務,CPU必須經過非常複雜的任務調度,有時候不得不聯合多核一起,而多數情況下一顆小小的FPGA就能搞定所有的任務,從設計理念上這是孑然不同的;
-
資源的合理利用 – 各個廠商的各種型號的FPGA可供你選用,有什麼呢?就像你出行是選擇乘飛機、高鐵、出租還是騎自行車一樣,每種方式都要付出不同的成本,而根據需要選擇最適合的資源配置在使用FPGA的過程中能夠得到最充分的體驗;
-
哪怕你做一個小小的項目,你會驚奇地發現它很有趣,你任何天馬行空的想法都可以通過FPGA來快速做到,在樂趣中找到爆棚的自信感
所以,你有必要像對待PCB設計一樣也來學習FPGA,甚至投入更高的熱情。
很多人都會說,老師,我知道你說的這些,我也很想學,但是好像很難哦,好像我們學校的老師都不會哦,好像學習這個要花很多錢買開發板哦,好像要花很長時間也學不會哦。
我要說的是,這些學生是被嚴重誤導了,被一些唯利是圖的江湖郎中們給帶溝里去了,其實呢學習FPGA並不難,比學習PCB設計還要簡單的多:
-
一台電腦 – 能裝FPGA的編譯系統就可以了
-
一個FPGA學習板 – 只需不到200元就可以了(三兩個朋友搓一頓飯的錢而已了),隨時隨地可以編程學習
-
一個隨時給你指導的工程師團隊 – 通過摩爾吧平台或者我們的FPGA學習群
當然,如果你想更快地入門,讓師父領進門,只需要1天的時間就可以,你可以聯繫我們的小腳丫FPGA團隊,他們以自己的專業、負責,用自己的實力征服了全國50多所高校的教學實驗。
要了解更多關於FPGA的知識,交流FPGA的學習技能,你可以掃下面的二維碼加入我們的FPGA學習群,這里有培養了300多FPGA學員,擁有上萬FPGA用戶的小腳丫FPGA團隊的工程師為你提供貼心的支持。
分享是一種好習慣,如果您覺得我的文章對您有一定的參考價值,何不隨手轉PO一下,讓更多的朋友也了解呢?
本公眾號全部匯集與電路設計相關的技能點,您可以關注一下,會讓您不斷學到更多在其它地方學不到的信息,更感謝您將我們的公眾號推薦給您認識的行業朋友,讓大家共同成長。