隨著半導體和嵌入式系統應用技術的高速發展,FPGA已經被廣泛地應用于各行各業,無論是家用電器、智能玩具、數碼產品,還是通信行業、工業自動化、汽車電子、醫療器械等領域無處不在。從1985年第一顆FPGA誕生至今,FPGA已經過去了20多個年頭,從當初集成幾百個門電路到現在的幾百萬門、幾千萬門……,從原來的上千元的天價到現在幾元的超低價,發生了翻天覆地的變化,所以當前正是學習FPGA的最好時機。無論是社會的需求也好,還是技術的成熟度也好,已經達到了前所未有的高度,初學者可以花更少的成本,并以最快的速度掌握一種處于前沿的新技術,無論是對就業還是對未來的發展具有極其重要的意義和價值。
本書從初學者的立場出發,為廣大初學者提供了一個FPGS入門學習平臺,以深入淺出的方式介紹FPGA的基本原理、Verilog語言和應用設計。但作為一個FPGA的初學者必須先了解以下幾個問題:何為FPGA?為什么要學習FPGA?如何學習FPGA?
1.何為FPGA?
FPGA是Field Programmable Gate Array的縮寫,即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
FPGA是Ross Freema于1985年發明的,當時第一個FPGA采用2μm工藝,包含64個邏輯模塊和85000個晶體管,門數量不超過1000個,當時他所創造的 FPGA被認為是一項不切實際的技術,他的同事Bill Carter曾說:“這種理念需要很多晶體管,但那時晶體管是非常珍貴的東西。”所以人們認為Ross的想法過于脫離現實。但是Ross預計:根據摩爾定律(每18個月晶體管密度翻一翻),晶體管肯定會越來越便宜,因此它必將成為未來不可或缺的技術。在短短的幾年時間內,正如Ross所預言的,出現了數十億美元的現場可編程門陣列(FPGA)市場。但可惜的是,他已經無法享受這一派欣欣向榮的景象,Ross Freeman在1989年已經與世長辭了,但是它的發明卻持續不斷地促進電子行業的進步與發展。
我們知道構成數字邏輯系統最基本的單元是與門、或門、非門等,而門電路是由用二極管、三極管和電阻等元件構成的,然后與門、或門、非門又構成了各種觸發器實現狀態記憶。FPGA同樣也屬于數字邏輯電路的一種,也是由最基本的元件構成的。一片FPGA可以在內部集成上億個門電路,打破了以往使用數量繁多分立器件實現電子裝置的歷史,不僅電路面積、成本大大減小,而且可靠性得到了大幅度的提升。
一般來說,FPGA內部是由最小的物理邏輯單位LE、布線網絡、輸入輸出模塊與片內外設組成的,而最小物理邏輯單元是指用戶無法修改的、固定的最小單元,設計者只能將這些單元通過互聯線將其連接起來,然后實現特定的功能。一個LE是由觸發器、LUT與控制邏輯組成的,從而同樣可以實現組合邏輯和時序邏輯。
隨著FPGA集成度的不斷增加,其內部的片內外設也越來越多,可集成SRAM、Flash、AD、RTC等外設,真正用單芯片方案完成系統設計,所以我們所理解的FPGA最底層是一些實實在在的門電路構成的,然后由門電路構成最小的物理邏輯單元,然后再通過布線層將這些最小物理邏輯單元連接成用戶需要的特定功能,我們所需要控制的僅僅是布線層之間的互連開關,這也是我們編程的對象,通過這些開關來改變功能。
FGPA按工藝分主要有SRAM工藝和Flash工藝(工藝是針對它們的編程開關來說的)兩類,基于SRAM工藝的FPGA最大的缺點是掉電數據會丟失無法保存,所以由FPGA構成的系統,外部還需要增加一個配置芯片用于保存編程數據,在系統每次上電時都需要從配置芯片中將配置數據流加載到FPGA 中,然后才能正常地運行,其優點是靈活性很強。而基于Flash架構的FPGA在掉電后不會丟失數據,無需配置芯片,上電即可運行,其特點非常類似 ASIC,但卻比ASIC更加靈活可以重復編程。由此可見如果用基于Flash架構的FPGA來取代ASIC的話,不僅風險大大降低,而且成本也會大幅度地下降。
2. 為什么要學習FPGA?
FPGA從誕生以來經歷了從配角到主角的轉變,FPGA主要用于取代復雜的邏輯電路,現在重點強調平臺概念,當集成數字信號處理器、嵌入式處理器、高速串行和其它高端技術后,從而被應用到更多的領域,正因為其飛速的發展,讓更多學FPGA的人看到了希望,其廣闊的前景正是我們選擇的原因之一。
(1)廣闊的發展前景
據市場調研公司Gartner Dataquest預測,2010年FPGA和其它可編程邏輯器件(PLD)市將從2005年的32億美元增長到67億美元,未來還將有不斷增長的趨勢。 FPGA及PLD產業發展的最大機遇是替代ASIC和專用標準產品(ASSP),由ASIC和ASSP構成的數字邏輯市場規模大約為350億美元。由于用戶可以迅速地對PLD進行編程,按照需求實現特殊功能,與ASIC和ASSP相比,PLD在靈活性、開發成本、產品快速上市方面更具優勢,所以未來 FPGA將會是一個非常有前景的行業。
由于FPGA結構的特殊性,可以重復編程,開發周期較短,越來越受到人們的青睞,它的特點也更接近ASIC,ASIC比FPGA最大的優勢是低成本,但是FPGA的價格現在也越來越低,例如,Actel的Nano系列更是打破了FPGA的價格屏障,提供超過50種低于1美金的FPGA,在一定程度上已經可以與ASIC相抗衡。
根據當前發展的趨勢,未來的FPGA勢必將會取代大部分ASIC的市場,雖然根據摩爾定律(Moore’s Law):每18至24個月能在相同的單位面積內多集成一倍的晶體管數目,也就意味著每18至24個月后芯片成本將減半,但這只是指裸晶(Die)的成本,并不表示整個芯片的成本減半,這是由于晶圓制造前端的掩膜(Mask)成本、晶圓制造后端的封裝(也稱為:構裝、包裝)成本、人力成本等都不會隨摩爾定律而變化,反而芯片的成本有上升的趨勢,所以過去許多中、小用量的芯片無法用先進的工藝來生產,對此不是持續使用舊工藝來制造,或是必須改用FPGA芯片來生產……
未來的趨勢告訴我們,FPGA將成為21世紀最重要的高科技產業之一,特別是國內的FPGA市場,更是一個“未完全開墾的處女地”,抓住現在的機遇也就意味著為我們的將來提供更強大的競爭力。
(2)更多的就業機會
雖然FPGA市場的廣闊,但是FPGA的技術人員卻極度地缺乏,很多高校仍然未重視FPGA技術的教學,導致學生畢業后連什么是FPGA,什么是 Verilog都不知道,失去了很多的就業機會。廣州周立功單片機發展有限公司三年來跑遍了全國22個城市,每次宣講會場里場外都站滿了人,每個學生都渴望尋找一份好工作的心情由此可見一斑,但通過考試發現懂FPGA和Verilog的學生卻寥寥無幾,盡管我們每年都對招聘FPGA人才寄予了很大的希望,但每次都失望而歸,深深地體會到招聘FPGA開發工程師困難重重。
由此可見在應屆畢業生中熟練掌握FPGA的學生已經屬于稀缺資源了,然而企業為培養FPGA開發工程師無不付出沉重的代價,所以對于在校電類專業的學生來說,這是打造個人差異化競爭力的大好機會,事實上只要掌握FPGA就能夠找到一份薪水更好的工作。我們公司每次在考核員工時,往往都會特別關注這些 “特殊員工”,一般來說這些員工的薪水都會比其它崗位高500元,這就是學習FPGA的就業優勢,但是很多人不曾完全意識到掌握FPGA技術的重要性。
當前受金融危機的影響,對學生的就業更是巨大的考驗,據教育部的統計,2008年全國普通高校畢業生達559萬人,比2007年增加64萬人,2009年高校畢業生規模達到611萬人,比2008年增加52萬人,如此多的大學生面臨著就業的問題,如果個人不具備一定的優勢,必將淹沒在人海茫茫的潮流中而找不到理想的工作,而學習FPGA則可以幫助學生多一技之長,大大提高就業的機會。
(3)更大的技術發展空間
我們知道半導體一直是國內比較薄弱的產業,與國外相比相差甚遠,大部分IC都來自歐美地區,國內擁有自主知識產權的IC技術不多,多半需要引進國外先進的 IC設計技術。但是自2000年以來,中國大陸的IC設計企業如雨后春筍般迅速涌現,企業數量5年增加了4倍多,2005年已經達到500多家,銷售收入過億元人民幣的設計企業達到17家,其中兩家超過5億元的銷售規模。概括地講,中國的IC設計公司可以分為4類,第一類是國有IC設計公司,一般是承擔政府研發任務的研究所轉制后成立的;第二類是由系統廠商的設計部門獨立出來的IC設計公司;第三類是民營IC設計公司,以海歸型為主;最后一類是外資IC設計公司。
由此可見IC設計也是未來發展的一個重點方向,將會是國家大力扶持的產業之一,而IC的設計人員必須掌握FPGA的技術,在芯片流片之前都是通過 FPGA來進行前期設計驗證的,與FPGA使用同樣的設計語言,只是在后端的設計中才用到IC設計方面的特定技術,而IC設計人員必定是懂得FPGA設計的人,因此掌握FPGA技術是通往IC設計殿堂的必經之路,學習FPGA有助于我們擴大的技術發展空間。
3.如何學習FPGA?
既然FPGA對我們如此地重要,那么對于初學者來說,到底該如何學習呢?學習一門技術最好有合適的指導老師,這樣對掌握FPGA技術更容易,可惜的是大部分的學校還未開設相關的課程,也缺少具有實踐經驗的老師,那么如何才能找到一種捷徑幫助初學者快速學會如此具有競爭力的技術呢?我們公司從原來僅有1人,到目前為止已經發展成為了一支擁有30多人的FPGA團隊,其中有一些成長的經歷,在此希望能與大家一起分享。
(1)掌握FPGA的編程語言
在學習一門技術之前我們往往從它的編程語言開始,如同學習單片機一樣,我們從C語言開始入門,當掌握了C語言之后,開發單片機應用程序也就不是什么難事了。學習FPGA也是如此,FPGA的編程語言有兩種:VHDL和Verilog,這兩種語言都適合用于FPGA的編程,VHDL是由美國軍方組織開發的,在1987年就成為了IEEE的標準;而Verilog則是由一家明間企業的私有財產轉移過來的,由于其優越性特別突出,于是在1995年也成為了 IEEE標準。VHDL在歐洲的應用較為廣泛,而Verilog在中國、美國、日本、***等地應用較為廣泛,作者比較推崇是Verilog,因為它非常易于學習,很類似于C語言,如果具有C語言基礎的人,只需要花很少的時間便能迅速掌握Verilog,而VHDL則較為抽象,學習的時間較長。
作為在校大學生,學習Verilog的最好時期是在大學二年級開設《電子技術基礎(數字部分)》時同步學習,不僅能夠理解數字電路實現的方式,更能通過FPGA將數字電路得以實現。作者發現華中科技大學康華光教授主編的《電子技術基礎(數字部分)》非常好,可以說是一本與時俱進的教材,在本書的第二章最后一節專門介紹了Verilog語言與FPGA,并且在每一章的最后一節都介紹了如何使用Verilog建模實現相關數字電路的內容,因此本書非常適合大二學習FPGA的學生參考。本書是以《電子技術基礎(數字部分)》為背景,并與該書同步配套學習FPGA,并在它的基礎上作了改進,源于它而又高于它。
大三、大四的學生還可以進一步強化學習Verilog,建議以北京航天航空大學出版社出版的由夏宇聞教授編寫的《Verilog數字系統設計教程(第二版)》作為藍本,本書比較全面地、詳細地介紹了Verilog的基本語法。如果是其他初學者,可以直接借助《Verilog數字系統設計教程(第二版)》和本書即能全面掌握Verilog的語法,這是學習FPGA的第一步,也是必不可少的一步。
(2)一個易學易用的硬件平臺是成功的一半
除了學習編程語言以外,更重要的是實踐,將自己設計的程序能夠在真正的FPGA里運行起來,這時我們需要一個硬件平臺作為支撐,然而很多FPGA硬件平臺的價格卻讓初學者望而卻步,上千元的價格并不是一般的初學者(特別是學生)能夠承受的,關鍵是缺乏詳細的配套資料,學習起來非常吃力。針對這種狀況,廣州周立功單片機發展有限公司開發了一套不以盈利為目的、售價僅99元的FPGA開發學習板,即使是學生也完全能夠承受得起,希望幫助更多的大學生因此而提高動手實踐能力。
在過去的一年里,我們一共投入了4位開發工程師圍繞EasyFPGA030開展工作,翻譯了全部開發工具軟件使用指南和相關技術資料,先自己吃透然后再根據自己的理解、實踐和多次討論,將技術資料通俗化,并且錄制了第一個“Actel FPGA快速入門視頻教程”供初學者免費下載。為了便于初學者快速入門,當第一版做出來銷售1000套之后,才發現初學者的焊接經驗不足,于是又開始設計第二版硬件電路,這就是目前大家在網站上見到的一體化EasyFPGA030開發學習板。
為了能夠帶給大家最充分、最權威的知識,我們還邀請了國內第一家大學EDA實驗室創始人之一的夏宇聞教授給我們進行Veirlog的培訓,之后我們制作了一系列Veirlog視頻教程和PPT供初學者學習,同樣免費提供給大家。同時,我們和夏老師一起共同合作編寫了本書,目的是希望能夠以最快的速度幫助初學者入門,另外我們還有一個30多人的團隊為用戶提供全面的FPGA技術支持和售后服務,解決用戶的后顧之憂。
由此可見通過EasyFPGA030的平臺學習,不僅可以幫助用戶節約前期的學習成本,而且該套件詳細的資料使得初學者少走很多彎路,對于初學者來說,EasyFPGA030是一個不可多得的FPGA開發學習平臺。
(3)技術的鞏固和升華
對于初學者來說,當有了一定的基礎后,應該將技術繼續鞏固和升華,作者認為參加競賽是學生驗證所學知識的一個最好的舞臺,不僅能夠鍛煉學生的動手能力,而且能夠發揮學生的創造力和想象力。
廣州周立功單片機發展有限公司已經成功地舉辦了兩屆“Actel杯中國大學生FPGA電子設計競賽”,參加的隊伍分別是100隊和300隊,每支隊伍都將免費獲得一套價值1480元的FPGA開發套件作為競賽的平臺,競賽完后該套件無需退回,而且設置了最高5000元的獎金,這樣的舉措對公司來說投入非常巨大,也很難立即看到產出,但是我們還堅持去做了,主要是想給學生提供施展才華的舞臺,讓更多的人了解FPGA,對FPGA產生興趣。2009年我們將繼續啟動第三屆競賽,計劃將隊伍擴大到1000支,我們的目標就是要將創新教育實踐活動進行到底,培養出一批又一批適合企業發展需要的人才。
(3)更大的技術發展空間
我們知道半導體一直是國內比較薄弱的產業,與國外相比相差甚遠,大部分IC都來自歐美地區,國內擁有自主知識產權的IC技術不多,多半需要引進國外先進的 IC設計技術。但是自2000年以來,中國大陸的IC設計企業如雨后春筍般迅速涌現,企業數量5年增加了4倍多,2005年已經達到500多家,銷售收入過億元人民幣的設計企業達到17家,其中兩家超過5億元的銷售規模。概括地講,中國的IC設計公司可以分為4類,第一類是國有IC設計公司,一般是承擔政府研發任務的研究所轉制后成立的;第二類是由系統廠商的設計部門獨立出來的IC設計公司;第三類是民營IC設計公司,以海歸型為主;最后一類是外資IC設計公司。
由此可見IC設計也是未來發展的一個重點方向,將會是國家大力扶持的產業之一,而IC的設計人員必須掌握FPGA的技術,在芯片流片之前都是通過 FPGA來進行前期設計驗證的,與FPGA使用同樣的設計語言,只是在后端的設計中才用到IC設計方面的特定技術,而IC設計人員必定是懂得FPGA設計的人,因此掌握FPGA技術是通往IC設計殿堂的必經之路,學習FPGA有助于我們擴大的技術發展空間。
評論