源:kellen.wang 的博客 http://kellen.wang/
(推薦閱讀:數字IC技能樹)
剛畢業的時候,我年少輕狂,以為自己已經可以獨當一面,廟堂之上所學已經足以應付業界需要。然而在后來的工作過程中,我認識了很多牛人,也從他們身上學到了很多,從中總結了一個IC設計工程師需要具備的知識架構,想跟大家分享一下。
作為一個真正合格的數字IC設計工程師,你永遠都需要去不斷學習更加先進的知識和技術。因此,這里列出來的技能永遠都不會是完整的。我盡量每年都對這個列表進行一次更新。如果你覺得這個清單不全面,可以在本文下留言,我會盡可能把它補充完整。
語言類
Verilog-2001/ VHDL
SystemVerilog/ SystemC
Makefile/ Perl/ Python/ Shell
Tcl
工具類
NCVerilog/ VCS/ ModelSim
SimVision/ DVE/ Verdi
Vim/ Emacs
SVN/ CVS/ Git
Microsoft Office
平臺類
Windows
Linux
OS X
其他加分項目
MATLAB
ISE/ Synplify/ Vivado/ Quartus
LEC/Formality
VMM/ UVM
ESL
ZeBu Server
JIRA/ Confluence
C/ Assembly Language
Computer Architecture/ ARM Architecture/ MIPS Architecture
這里之所以強調Verilog-2001而不是Verilog-1995,是因為在Verilog-2001中規定了很多新特性,因此可以產生更好的代碼風格。我曾經在什么是良好的Verilog代碼風格一文中對新版的接口語法進行過詳細的舉例說明。這種新的接口方式修改起來更加簡單,例化模塊的時候使用也更加方便,不像舊版的接口語法由于一個接口需要分3次描述,無端端增加了代碼行數而且閱讀和改動都很困難,尤其是當一個模塊的接口數目超過一個屏幕的顯示范圍時Verilog-2001的這種優勢更加突出。
學習Verilog最大的問題就是,很多國內的書寫得都很不好,書中的很多例子都是為了說明語法特征而存在的,沒有任何實用價值,甚至很多代碼都是錯誤的(這里錯誤的意思并不是說他語法錯誤,而是說他是不可綜合的,無法用數字電路來對等實現的)。所以,對于學習Verilog,我的建議是,隨便找一本類似語法手冊的書籍,匆匆把基本語法看過一遍,搞清楚模塊定義,接口定義,模塊例化,寄存器定義,線定義,always塊怎么寫這些基本內容后,就開始到OpenCores網站上去下載已經經過FPGA驗證的完整開源項目代碼進行學習。先做到看懂別人寫的代碼,然后再嘗試自己去模仿,有不懂的問題再有針對性地去網上搜索答案。
Verilog語言與軟件語言最大的區別就是,因為它是用于描述電路的,因此它的寫法是非常固定的,因為電路的變化是非常有限的。學習Verilog的時候,很多時候我們并不是在學習這門語言本身,而是學習其對應的電路特征,以及如何對這個電路進行描述。如果心中沒有電路,那么你是不可能寫好Verilog的。從基礎開始,一點點積累類似計時器,譯碼器這樣的小型電路描述方法是非常重要的。Verilog鼓勵在電路中進行創新,而不是在描述方法上進行創新。因此,即使是世界上最牛的Verilog高手,他寫出來的Verilog代碼語法也都是很普通的,而他的創意則在于如何去組合這些基本的小型電路。
舉個不太恰當的例子,每個醫生都會給你開藥打針檢查身體,但是高明的醫生并不在于他用了多高難度的動作去給你扎針,或者給你開出什么奇奇怪怪的藥吃,而是他如何快速準確的診斷出你的病情,用最合適的扎針吃藥組合去治療你。Verilog也是同樣,要學會用最規矩保守的語法,寫出運行速度最高性能最穩定的電路,而不是在語法上瞎費工夫。凡是你沒見到別人寫過的語法,都很可能是錯誤的。
VHDL雖然我并不是太了解,但是目前在歐洲很多國家,VHDL還是主流的RTL設計語言。VHDL語言的嚴謹性比Verilog要好,不像Verilog中一樣存在大量符合語法卻永遠無法綜合的語句,容易對新人造成誤導(仿真通過的代碼卻在FPGA綜合時報錯,或者FPGA實現結果與仿真不一致)。而VHDL和Verilog雖然可以相互轉化,但是轉化過程中仍然存在很多問題,無法做到完全的自動化。關于這一點我之前寫過一篇專題進行探討:如何將VHDL轉化為Verilog。有興趣的同學可以去看看。
這兩種語言都是為了驗證而存在的。作為IC設計工程師,驗證知識不是必須的,但是掌握基本的驗證方法學有助于提高自己的debug效率和結果。我曾經在如何快速搭建模塊驗證平臺一文中詳細介紹過一種我自己總結的驗證方法,這種方法就是基于SystemVerilog語法實現的。由于SystemVerilog對Verilog完全兼容,就像C++對C語言的兼容一樣,所以SystemVerilog(或SV)學起來其實并不算難。
SystemVerilog是一種面向對象的語言,其設計的本意是用于搭建驗證平臺,主流的VMM/UVM方法也都是基于SystemVerilog實現的,所以立志成為IC驗證工程師的同學,SystemVerilog的深入學習和流行方法論的學習都是必不可少的。
而對于那些只想做IC設計的同學而言,SystemVerilog同樣也是值得學習的。且不說本文前面提到的用于提高驗證效率的debug方法,即使只是為了做好設計,SystemVerilog也是大有用武之地。在歐美很多發達國家,很多世界頂級的IC設計公司內部都已經開始使用SystemVerilog進行RTL設計了。由于在SystemVerilog中加入了很多類似always_ff、always_comb等用于顯式表明綜合電路意圖的新語法,代碼的可讀性更高,綜合過程中也減少了歧義,盡可能地保證了綜合結果與設計意圖的一致性。從另一個角度來說,assertion的加入也極大地提高了代碼的debug效率,非常有助于在大規模的數據交互過程中定位到出錯的初始點,沒有掌握的同學可以多花一些時間研究一下。
以上四種都是IC設計工程師們常用的腳本語言,看起來似乎它們都跟IC設計的專業能力沒有絲毫關系,但是由于本行業的專業工具價格非常昂貴,項目需求差異極大,因此掌握一門得心應手的腳本語言將對你工作效率的提升幫助極大。如果你還沒有嘗試過編寫自己的腳本語言,那么問問你自己,有沒有曾經為了完成一批仿真用例熬到深夜?有沒有曾經因為要比對幾萬個數據搞到眼瞎?有沒有曾經因為要修改一個全局信號的比特位寬而無比抓狂?要把一個hex類型數據文件轉換為memory模型需要的特殊格式怎么辦?沒錯,如果你掌握了腳本語言,以上這些奇奇怪怪的需求都不是事兒,重復而細致的體力勞動就交給計算機來完成吧。我一向信奉的口號就是:但凡做過一次的事情,就沒有必要重復第二次。
如果你已經在工作中使用過其它工程師開發的平臺或者腳本,那么它很可能是用這4種語言寫成的。如果執行腳本的方式是make run,那么很可能你用到的是一個Makefile腳本;如果執行方式是source run,那么這應該是一個Shell語言寫成的腳本;如果是其它情況,那么就得看具體這個腳本首行是怎么寫的了。Makefile和Shell語言比Perl/Python要更容易上手,寫起來也更加簡單,比較適合滿足一些非常簡單的批量任務需求。Perl的強項則在于它強大的文本處理能力和無所不能的CPAN庫,隨時可以滿足你的各種任性需求。Python的優點則是較好的可維護性。
關于腳本語言的重要性,大家可以到這里看看相關討論:Perl等腳本語言在IC設計中有哪些用處?。
嚴格來說,Tcl是一門非常單純而簡單的語言,而它的學習難點在于,只是掌握它的語法是遠遠不夠的。這種情況有點類似javascript,如果你用js來開發網頁,那么你必須深入了解DOM和HTML;如果你用js來開發游戲,那么你必須深入了解Unity3D引擎的各種知識;如果你用js來開發Web App,那么你必須會用node.js的各種庫和常見的服務端框架。
語言永遠只是工具,這句話放在Tcl上再合適不過了。在IC設計這個領域中,Tcl是一門非常常見的語言。他可以用于描述時序和管腳約束文件,UPF信息,也可以用來搭建簡單的工作平臺。它既是很多IC領域EDA工具默認支持的腳本語言,也是這些工具配置和輸出的文件格式。因此,能夠讀懂Tcl,掌握Tcl語言的基本語法,就可以幫助你更好的使用EDA工具,真可謂是Tcl在手,天下我有!
但是,成也蕭何敗蕭何,正如前文一開始提到的,僅僅掌握了Tcl的語法還遠遠不是全部。不同的EDA工具對Tcl腳本提供的命令和參數支持都是不一樣的,每當你需要為一種新工具編寫Tcl腳本時,都必須要熟讀官方給出的用戶手冊,了解這種工具支持的Tcl命令結構,才能確保寫出的腳本是可以被正確執行的。
以上三種都是比較業界比較主流的仿真工具,其中NCVerilog和VCS都只支持Linux平臺,而ModelSim貌似是同時支持Linux平臺和Windows平臺的。但是不管哪一種,我都希望大家能意識到兩件事:第一,仿真器和波形查看器是兩回事,本條目介紹的只是仿真器,仿真器的工作原理跟波形查看器是有天差地別的,同時由于IEEE對標準波形文件*.vcd格式的規范,任意仿真器都是可以和任意波形查看器組合使用的。第二,仿真器通常是沒有圖形界面的,為了更好地使用仿真器,你要熟讀自己常用仿真器的用戶手冊,了解一些常見需求的命令行參數,至少要做到了解如下內容:如何指定編譯的文件類型,如何指定編譯文件清單,如何指定索引目錄,如何指定仿真精度,如何指定臨時的宏變量,如何指定語法檢查的嚴苛等級,如何混合編譯由多種語言寫成的工程,如何調用不同波形生成工具的pli接口,如何配合SDF反標進行后仿等等。
不同仿真器的功能其實都大同小異,但是是不是只掌握一種仿真器就可以打遍天下無敵手了呢?當然不是。在實際的工程中,我們經常用到第三方IP核,有時候出于保密的需要,第三方IP核會以加密二進制文件的方式提供,加密二進制文件長啥樣呢?它們一般以“*.vp”格式命名,文件的開頭部分就是標準的Verilog語法,但是在一行注釋之后就全部變成了亂碼。通常亂碼之前的那行注釋會指定該加密二進制文件支持的仿真器類型。所以你看,如果你是一個重度VCS使用者,而有一天項目經理突然塞給你一個只支持NCVerilog的加密文件,你內心一定會有千萬只草泥馬呼嘯而過。
如果你是一個開源工具的死忠粉,那么你可以考慮使用Icarus Verilog (iVerilog)進行仿真編譯。iVerilog編譯器和其自帶的vpp仿真器是基于C++開發的,支持Verilog全系列的IEEE標準,但遺憾的是,iVerilog目前對System Verilog的支持還相當有限。iVerilog是跨平臺的,無論你喜歡用Windows, Linux還是OS X, iVerilog都提供了非常便捷的安裝方式。
與上面的仿真器相對應,以上三種也是業界比較主流的波形查看工具。所有的波形查看器都必須支持標準波形文件*.vcd格式,但是由于*.vcd格式的存儲性能并不好,冗余信息過多,所以各家波形查看工具都紛紛推出了自己獨家支持的波形文件格式,如DVE的*.vpd,Verdi的*.fsdb,ModelSim的*.wlf, SimVision的*.shm等。通常波形查看工具獨家支持的文件格式都具有較高的壓縮率,舉例來說的話,通常1G左右的*.vcd格式波形轉換為*.vpd格式后只有40MB左右,而轉換為*.fsdb后通常會更小,因此將標準波形文件*.vcd轉換為其他壓縮格式更加有利于數據備份。
如果希望在仿真過程中不生產*.vcd,而是直接生成壓縮率更高的其他波形查看器專用格式,則需要調用對應工具提供的pli接口,同時配合測試平臺代碼中的系統函數調用(如$fsdbDumpOn等)來完成。
說了這么多,不要以為*.vcd格式就一無是處了,再怎么說這也是IEEE規定的標準格式,其他不同壓縮格式的波形文件之間如果需要相互轉換,一般都是要先轉換為*.vcd后再轉到目標壓縮格式去的。
對不起,上一段最后一句是錯的,近期負責量產方面的事情,對這一塊終于加深了了解,實際量產測試環節中ATE環境目前主要使用的激勵文件格式主要有兩種,分別是*.wgl和*.stil。這兩種文件格式與*.vcd及*.fsdb等是有本質不同的。*.wgl和*.stil格式是基于周期數和電平向量的波形文件,而*.vcd和*.fsdb是基于時間和變化的。換句話說,在*.wgl和*.stil里,你會看到類似“0101010100”這樣的信號描述,他完整記載了所有信號隨時鐘周期數(而非時間刻度)的變化過程,如果你以10MHz的時鐘頻率來播放這個波形,那么他產生的信號長度就是10個100ns,如果你以100MHz來播放則長度為10個10ns,這就是基于周期數記錄波形的含義。同時,在*.wgl和*.stil波形里,信號是以向量的形式完整記錄的,假如波形里有2個信號,“11”,“10”,“00”這三個向量就表示第一個信號在連續的三個周期里分別是“高高低”,而第二個信號則是“高低低”,這就是基于周期數和電平向量的完整含義。與此相對的,在類似*.vcd這樣的波形文件里,經常可以看到#1000 1signal這樣的表述(此處的signal通常會用類似#這樣的字符代表它的id號),它表示過了1000ns后signal變成了高電平。由此可見,*.vcd文件本質上是通過記錄時間增量和信號的變化沿來表示波形的。
那么問題來了,平時我們的仿真結果都是基于時間的類*.vcd格式,如果量產測試的激勵必須是基于周期數的類*.wgl格式,要怎么辦呢?目前市面上有一些可以將*.vcd轉換為*.wgl格式的軟件工具,但是授權收費不菲,建議有可能的話,設計人員最好在設計測試激勵時就考慮到這一點,通過腳本或者其它方式直接生成*.wgl文件進行交付,如果只能提供*.vcd格式,請確保激勵波形可以按統一的固定周期長度進行切割轉換,否則在進行波形格式轉換過程中可能會存在大量反復工作和溝通問題。
同樣的,如果你希望使用開源的波形查看器的話,gtkWave將是你的不二選擇。和iVerilog類似,gtkWave也是跨平臺的,而且簡單易用,支持*.vcd標準格式,同時獨家支持高性能壓縮格式*.lxt和*.fst(gtkWave自帶vcd轉fst的轉換器,只需在運行過程中加入參數調用即可)。
經常看到一些Verilog新人提出這樣一個讓人啼笑皆非的問題:“請問一般Verilog編程用什么樣的軟件?
首先,Verilog是一種電路描述語言,它本質上可能跟電路圖的血緣還更近一些,至少不應該把這個描述過程說成是“編程”。其次,寫Verilog其實并沒有什么專門的軟件,大部分業界的工程師都是用Vim或Emacs這樣原始粗獷的文本編輯器來寫Verilog代碼的,如果你愿意的話用Notepad或Texteditor來寫也未嘗不可,只是如果你有深入了解過Vim或Emacs的話,自然就會明白這么多人選擇它們的原因所在——提高效率。
你去問Vim或Emacs的使用者,為什么說這玩意能提高效率,多半對方回你的第一句就是:因為可以丟掉鼠標啊。顯然這樣一個結論并不能讓人信服,而實際上這也只是它們眾多優點中的一個而已。那么究竟為什么可以提高編程效率呢?核心原因當然是,因為借助它們,你可以用編程的方式來編程!聽起來優點拗口對不對,沒關系,請聽我解釋。
舉個例子:如果你設計的模塊需要對外輸出100個寄存器,每個寄存器的位寬等于他的編號,如果使用普通的文本編輯器,你需要手工寫下output reg reg_0到output reg[99:0] reg_99這100行代碼,即使用上復制粘貼,你也需要逐行手工修改每行代碼里的信號位寬和編號。但是,如果借助Vim編輯器的命令功能的話,你只需要寫下for ($i=0;$i<100;$i++) { print("output reg[$i:0] reg_$i\n");},然后在同一行按shift+v,輸入:!perl回車,然后就你能看到前面輸入的那些代碼被替換成了你本來想輸入的100行內容。 以上是一個稍微復雜的例子,可能大家平時不一定會遇到這種需求,但是以下情況呢? > 你是否曾經忘記在每行代碼末尾加上”,”或”;”符號,編譯失敗后才發現需要逐行補上?如果使用Vim編輯器的話,只需要用shift+v選中需要修改的行,按下:’<,'>s%$%;%g就可以了,熟練之后整個過程不超過5秒鐘。
> 你是否曾經在代碼寫完之后被老大臭罵一頓原因是你沒有把所有的reg和wire定義都放到文件的統一位置(如第38行)?如果使用Vim編輯器的話,只需要使用:g%^\s*reg\s*%m 38加上:g%^\s*wire\s*%m 38就可以了。
> 你是否曾經被要求刪除某個文件中所有的注釋?只需要:%s%//.*$%%g就可以了。
> 你是否曾經需要把一個模塊例化256次,然后因為每次例化的一點微小不同導致你不能直接使用for循環?沒關系,用qq錄像功能,你只需要操作一次,然后使用256@q就可以把你的動作自動重復256次啦。
> 你是否曾經遇到鍵盤壞掉了,“a”鍵經常失靈甚至沒有反應?沒關系,用:inoremap ‘ a把‘鍵重新映射為a鍵吧。
類似的例子簡直數都數不完,更多內容參見與Verilog有關的Vim實用技巧。
所以說,使用Vim或Emacs最大的好處就是,你會感覺到你的大腦比手更忙,因為從你想清楚到代碼寫好只需要花費極短的時間。你可以把全部精力投入到代碼的內容上,而不是代碼輸入這個機械的過程中,就好像用打字機代替毛筆的感覺一樣。只要是你能用編程描述清楚的事情,Vim就可以代替你快速完成,而前提就是你要先學會大量的Vim命令和正則表達式,以保證你的表述能被編輯器正確理解。
以上三種都是目前比較主流的“版本管理”工具。什么是版本管理?簡而言之,就是一種用于記錄和查詢文件版本改動的工具,通常都會被部署在公共服務器上,以保證數據的安全和可恢復。在項目的開始階段,首先需要創建好版本管理的根目錄,然后由不同的工程師逐一把自己的設計文件首次加入到版本管理的各級子目錄下。在項目執行的過程中,每當有人修改一個文件,都需要通過版本管理工具上傳代碼并注釋改動內容,版本管理工具會自動檢查改動內容與服務器上的最新版本是否沖突(沖突的意思即是說,在該工程師改動這個文件的過程中,有其它人也對該文件的同一行代碼進行了改動并上傳了新版本),如果沒有沖突,則會自動將新上傳的改動合并到當前最新版本,反之,則將沖突部分進行對比顯示,讓工程師手工判斷應當如何合并沖突行的內容,解決沖突后可以再次重新上傳。
SVN和Git都是跨平臺的版本管理工具,其中SVN是必須在線工作的,而Git是可以離線工作的。當你需要上傳代碼的時候,如果你使用的是SVN,則你必須保證從你的計算機到服務器端的通信是暢通的,而如果你使用的是Git的話,由于Git有本機倉庫的概念,在你沒有主動與服務器端同步之前,所有版本管理都是在本機倉庫上完成而不需要與服務器通信的,這樣即使是在離線環境下也可以最大限度地保證代碼版本的可恢復性,同時也節省了在移動環境下工作時的傳輸流量。Git是開源的,最早興起于互聯網行業,目前也有逐漸在其他行業里廣泛使用的趨勢,以之為基礎的開源社區GitHub更是為它的繁榮起到了重要的推動作用。
CVS是一款比較老的版本管理工具,只能在Linux平臺下運行,不支持目錄的遞歸添加和重命名,用起來略有些麻煩,不過因為目前還有很多公司在用,所以這里也順帶介紹一下,并不推薦。CVS和SVN的最大區別還是版本號的命名思想,在SVN中,任何一個文件的修改都會導致整個工程版本號的更新,而在CVS中,版本號是跟隨文件的。因此,在系統的某個時刻,SVN工程中所有文件的版本號都是相同的,而CVS工程下的每個文件都有一個自己的版本號。CVS的這種版本號設定會給工程管理帶來很多麻煩,主要是如果有一天你想把整個工程恢復到之前的某個狀態的話,要么是你曾經記錄下了當時所有文件各自對應的版本號,要么是你記下了當時的準確時間,要么是你當時給所有的文件打上了標簽,否則幾乎是不可能的。而對SVN來說,你只需要記住當時整個工程的版本號即可。
ISE和Vivado都是Xilinx旗下的FPGA工具,其中ISE比較老,官方已經停止更新了,目前最新的版本是14.7,而Vivado作為新一代的FPGA工具一直在繼續更新。Quartus則是Altera旗下的FPGA工具,功能和ISE/ Vivado大同小異。筆者平日里對FPGA工具的接觸并不多,但從有限的接觸體會而言,Quartus比ISE/ Vivado更適合用于學習,入門的門檻更低一些,操作界面也更加簡單易學(但千萬不要使用6.2版本以下Quartus中自帶的波形仿真工具,那是垃圾)。
學習FPGA有助于幫助大家理解“正確的設計 !=正確的RTL”,而是“正確的設計==正確的RTL + 正確的時序約束”這一重要理念(很多同學一直無法從軟件編程的思維中跳出來,也是因為一直沒能理解好這個理念)。正確的時序約束通常包括管腳約束和時鐘約束,任何一項約束出錯都會導致綜合出來的電路無法按照預設的頻率和時序進行工作。Quartus支持的約束文件格式是*.sdc。ISE和Vivado支持的約束文件格式有所不同,ISE支持的是*.ucf,Vivado支持的是*.xdc,但由于Xilinx家的工具中內置了約束文件互相轉換的腳本,因此只需一個命令就可以在兩個軟件的工程之間無縫切換。從時序約束的思想上來說,Quartus與ISE/ Vivado在很多細節上都有所不同,所以從一個平臺遷移到另一個平臺的過程中依然會有一個學習過程,例如說:Quartus在時鐘定義上不太區分管腳輸入時鐘和內部時鐘,但在ISE中則不允許使用管腳輸入時鐘直接驅動寄存器,而是必須首先經過BUFG/ PLL/ DCM等時鐘IP處理后輸出方可以使用。Quartus對于輸入輸出的同步數據信號偏移offset in/out和ISE的定義也正好相反,使用過程中需要尤其注意。最后一句話送給FPGA新手們,千萬記住,如果你在設計FPGA工程的時候沒有添加任何時序約束或時鐘約束,請不要問我為什么電路工作不正確,本段話的第一句已經回答你們了。
在學習FPGA的過程中,掌握信號探針工具(signal probe)的使用是非常必要的,有了它們,大家就可以像在仿真軟件里那樣,把真實FPGA硬件里的物理信號采樣抓取到波形查看工具中去進行debug。Xilinx家的信號探針工具叫ChipScope,而Quartus家的叫SignalTap。相對來說,SignalTap比ChipScope要好用很多,例如說,SignalTap抓取波形的時候,信號名稱可以自動識別,而ChipScope會把信號名稱自動命名為序號,需要用戶手動使用別名進行修改,而其中一旦有一個信號名稱寫錯,就得把該信號以后的全部信號名稱重新輸入一次。
相信大多數人的個人計算機使用的都是以上系統或類似以上系統的其他系統吧。以上3個系統,對于專業的數字IC前端設計人員而言,工作的方便程度(注意,是專業人員的方便程度,而非學習曲線的陡峭程度,這里是指均已達到熟練掌握的前提下對于工作效率的幫助)由方便到困難分別是:Linux > Windows > OS X。在Windows下,你可能需要的工具有Cygwin(模擬Linux shell,帶有大部分GNU工具),Modelsim,Debussy(更名Verdi后的版本沒有對應的Windows版本), Quartus, ISE等。在Linux下,你可能需要的工具包括Bash/Csh/Tcsh,Modelsim,Quartus,ISE,VCS,Simvision,DVE,NCVerilog,Formality,LEC,Synplify等。而在OS X下(筆者不幸就位于該平臺下),你可以使用的工具就只剩下Bash/Csh/Zsh,iVerilog,gtkWave這些選擇了。
從以上內容不難看出,在工具的多樣性角度而言,Linux完爆其它平臺,這也是為什么絕大多數IC開發公司的服務器都選擇部署在Linux下的主要原因之一。對于個人電腦而言,大部分同學會選擇使用虛擬機來兼顧不同平臺的工具選擇,個人建議大家最好在熟練掌握Linux平臺及其工具的前提下,同時也了解一下其它平臺的解決方案
推薦閱讀:
關注EETOP公眾號,后臺輸入 芯片合集,查看如下推薦文章
精品課程:先進制程工藝集成電路ESD電路如何設計?
精品課程:集成電路閂鎖效應與工程應用
7nm : 臺積電 VS 三星
格芯成都廠為何會停擺?
半導體的過去、現在和未來
芯片制造新模式--像搭積木一樣造芯片
大型IC設計中心的IT環境
芯片設計中電遷移和IR壓降的挑戰和技術
芯片面積太大了!三星 Exynos 9820 內核照片曝光
麒麟980內核照片:NPU在哪呢?
六家 5G 基帶芯片介紹及市場剖析
SoC與5G基帶分居了 原因是?
IC大牛10多年的設計分享:數字典型電路知識結構地圖及代碼實現
關于華為海思,這篇文章值得一看
俄國沒有高端芯片,為什么卻能造出一流武器?
別攔我,我要做芯片!
芯片春秋·ARM傳
中國芯酸往事
印度芯酸往事
國防軍工芯片行業深度報告
一位美國芯片公司華人高管對中國芯片行業的思考
學習、積累、交流-IC設計高手的成長之路
女生學微電子是一種什么體驗?
MIPS架構開放了,10天設計一款完全免費的MIPS處理器(附源碼)
性能之殤:從馮·諾依曼瓶頸談起
AI芯片設計與開發概覽
AI 芯片和傳統芯片有何區別?
一個資深工程師老王關于AI芯片的技術感悟
隔隔壁老王:AI芯片與她怎么選?
終于有人把云計算、大數據和人工智能講明白了!
尺寸減半、功率翻番!——氮化鎵技術的現在和未來
邏輯綜合 Design Compiler 資料大全
集成電路制造技術簡史
半導體科普:IC芯片設計及生產流程
晶圓代工爭霸戰四部曲(了解各晶圓廠的前世今生,非常詳細!)
非常詳細的半導體工藝流程講解
射頻半導體工藝介紹
版圖中Metal專題——線寬選擇
有哪些只有IC工程師才能get到的梗?
為什么7nm工藝制程這么難?從7nm看芯片行業的“貧富差距”
什么是臺積電的SoIC?
RISC-V打入主流市場的諸多問題
RISC-V架構有何優勢?
關于RISC-V 終于有人講明白了!
RISC-V軟核+FPGA 航天軍工產品設計新機遇
ASIC低功耗設計實例分析及書籍推薦
ASIC設計學習總結(包括:工具及書籍文檔推薦 、軟件環境搭建、RTL設計、驗證、工藝庫說明、形式驗證、綜合等共12部分)
ASIC設計學習總結之可測性設計及書籍推薦
ASIC設計學習總結之靜態時序分析概要及書籍推薦
ASIC設計學習總結之工具及書籍文檔
小芯片大價值 | ASIC工程師如此值錢到底為什么?
芯片面積估計方法簡介
自主研發通信芯片有多難?通信行業老兵告訴你,沒那么簡單!
RISC-V精簡到何種程度?能省的都省了!
多核CPU設計及RISC-V相關資料
時序設計與約束資料匯總
模擬版圖講義
GDSII轉DEF的flow簡介
機器學習將越來越依賴FPGA和SoC
Verilog基本功之:流水線設計Pipeline Design
先進封裝發展趨勢分析PPT
先進封裝發展現狀分析PPT
可測試性設計與ATPG
麒麟980是如何誕生的?敢于失敗,勇于嘗試!(附:華為早期型號處理器研發過程)
IC模擬版圖設計講義
Verilog CPU設計實例
CPU、GPU 和 TPU 都是如何工作的?有什么區別?TPU為什能碾壓GPU?
流行數十年的主流芯片架構正在悄然巨變
與IC設計產業相比,EDA產業發展的難處有哪些?
千兆以太網 TCP, UDP協議, FPGA實現
SoC功能仿真驗證技術分享
對驗證的一些理解
IC Layout 腳本分享
異構整合,半導體下一個關鍵
用Python編寫FPGA以太網MAC(附源碼下載方式)
用python進行機器學習
直接產生verilog的testbench的python腳本
干貨!ASIC牛人之經典總結
ASIC前后端設計經典的細節講解
資料分享|時序分析
Verilog基本電路設計(包括:時鐘域同步、無縫切換、異步FIFO、去抖濾波)
128點 FFT verilog代碼分享
硬核實現 ”春節快樂” 代碼分享
FPGA在人工智能時代的獨特優勢
什么是FPGA工程師的核心競爭力
從芯片到系統:FPGA加速卡的發展歷程與展望
基于FPGA的深度學習加速器的挑戰與機遇
FPGA正變成“瑞士軍刀”, 越來越像SoC
數字前端及FPGA設計相關書目泛讀及點評
數字IC設計學習流程
防止毛刺的時鐘切換電路的設計思想
函數發生器實現方法簡述
用FPGA實現簡單的UDP/IP通信(采用純硬件語言,非軟核)
數字集成電路設計入門 --從HDL到版圖
同步器的設計
數字IC工程師的技能樹
微電子樹
IC設計完整流程及工具簡述
IC芯片設計及生產流程
IC 芯片的成本從哪里來?
說說芯片設計這點事
關于IC設計的想法
數字IC設計的完整流程(非常詳細!)
數字IC Design技術全局觀(110頁PPT!)
ASIC設計中各個階段需要注意的問題
深入淺出談談Setup和Hold
大話setup time與hold time
靜態時序分析中的setup和hold存在負值的問題
關于靜態時序分析STA的切入點及方法
靜態時序分析(STA)基礎與應用
組合邏輯設計中的毛刺現象
數字IC設計工程師的發展前景如何?
一個合格數字IC設計工程師的知識結構
RS編解碼Verilog代碼RS(255,247)
RS(255,239)編解碼算法,verilog代碼以及詳細講解
非常詳細的Verilog講義教程,共472頁
一個簡單的8位處理器完整設計過程及verilog代碼
網友經驗分享: Verilog設計注意
關于同步與異步時序的Verilog一例
半導體、微電子專業英語詞匯匯總
以DAC為例介紹SpectreVerilog數模混合電路仿真方法
IC設計與驗證工程師友誼的小船說翻就翻
數字IC設計基本流程和所使用的工具
國外的數字IC面試題(非常詳細,有答案)
讀懂用好TimingReport
異步FIFO設計(非常詳細,圖文并茂,值得一看!)
平行宇宙的追逐--異步FIFO控制器的設計
異步FIFO為什么使用格雷碼
數字IC設計工程師筆試面試經典100題(1~50)
數字IC設計工程師筆試面試經典100題(51~100)
同步/異步設計及metastability
為什么越來越多的數據中心使用 FPGA ?
基于FPGA的數字識別的實現
FPGA設計中遇到的奇葩問題之“芯片也要看出身”
FPGA就像是一張精密的畫布 - DSP 專家給你一個選擇 FPGA 的理由
聊聊FPGA/CPU/PCIE/Cache-Coherency/CAPI
FPGA是如何實現30倍速度的云加速的?都加速了哪些東西?
一文了解 FPGA 發展之路
【干貨】騰訊云FPGA的深度學習算法
云中的機器學習:FPGA 上的深度神經網絡
網友吐槽:9年FPGA工作總結,苦海無涯,窮逼多
FPGA數字電路設計經驗分享(干貨!)
干貨!基于FPGA之低速協議設計實驗手稿及源碼
FPGA設計高級進階
CRC循環冗余校驗的原理與算法及FPGA實現
關于FPGA設計仿真和硬件實測不一致問題的討論
如何擴展FPGA的工作溫度范圍
如何用單個 Xilinx FPGA 芯片數字化數百個信號?
一個FPGA工程師的個人工作經歷總結
讓 FPGA 視覺功能大眾化
FPGA電源簡介
FPGA實現除法運算
利用基于FPGA的模糊控制器控制蔗糖提取
利用 Artix-7 FPGA 設計高性能 USB 器件
FPGA應用文章:采用 Zynq SoC 測試新型存儲器技術芯片
基于XILINX的FPGA的AES 128bit加解密算法
利用Xilinx FPGA實現高效并行實時上采樣
FPGA實戰演練邏輯篇(1)-FPGA與ASIC,FPGA與CPLD,VERILOG與VHDL
FPGA實戰演練邏輯篇(2)-FPGA應用領域及優勢,FPGA開發流程
FPGA實戰演練邏輯篇(3)FPGA板級電路設計五要素
基于ARM的CRC算法和基于FPGA的算法性能比較
如何防止基于FPGA的項目誤入歧途
Zynq片內XADC應用筆記
Zynq器件時鐘子系統介紹
建立及保持時間、建立及保持余量的理解
軟核MicroBlaze的C編程經驗及技巧
Tcl在Vivado中的應用
Vivado使用詳細介紹1:創建工程,編寫代碼,行為仿真,Testbench
Xilinx Vivado的使用詳細介紹(2):綜合、實現、管腳分配、時鐘設置、燒寫
Vivado的使用介紹3:使用IP核
Xilinx FPGA入門連載2:Modelsim SE 10.1安裝
Xilinx FPGA入門連載4:ISE中使用notepad++的關聯設置
Xilinx FPGA入門連載6:ISE與Modelsim聯合仿真之關聯設置
Xilinx FPGA入門連載7:新建工程
Xilinx FPGA入門連載8:Verilog源碼文件創建與編輯
Xilinx FPGA入門連載9:Verilog語法檢查
Xilinx FPGA入門連載10:Modelsim仿真驗證
Xilinx FPGA入門連載11:PWM蜂鳴器驅動之功能概述
Xilinx FPGA入門連載12:PWM蜂鳴器驅動之引腳分配
Xilinx FPGA入門連載13:PWM蜂鳴器驅動之綜合、實現與配置文件產生
跟著我從零開始入門FPGA(一周入門系列):第一天:Verilog語法
跟著我從零開始入門FPGA(一周入門系列):第二天:組合邏輯設計
跟著我從零開始入門FPGA(一周入門系列):第三天:時序邏輯設計
跟著我從零開始入門FPGA(一周入門系列):第四天:
跟著我從零開始入門FPGA(一周入門系列):第五天:阻塞和非阻塞
跟著我從零開始入門FPGA(一周入門系列)-第六天:有限狀態機
跟著我從零開始入門FPGA(一周入門系列):第七天:設計一個只有4條指令的CPU
FPGA入門連載一:0和1——精彩世界由此開始
FPGA入門連載二:Verilog/VHDL語法學習的經驗之談
FPGA入門連載三:表面現象揭秘——邏輯關系
FPGA入門連載四:內里本質探索——器件結構
FPGA入門連載五:第一個工程實例
Vivado使用詳細介紹2綜合實現管腳分配時鐘設置燒寫
基于FPGA的DDR3多端口讀寫存儲管理設計
在低成本FPGA開發板上實現Oberon系統
全可編程抽象化:你的編程你做主
XILINX FPGA FIFO使用技巧
智能視覺系統中如何處理多圖像傳感器?
FPGA時鐘和復位電路設計
FPGA設計,視時序為一切
在FPGA設計中,時序就是全部
利用FPGA對大規模MIMO信道進行特性描述
如何將PetaLinux移植到Xilinx FPGA上
關于FPGA設計仿真和硬件實測不一致問題的討論
FPGA適合用在哪兒?OpenCL,C,和C++語言對FPGA和全SoC有什么用?
入門貼:FPGA中的INOUT接口和高阻態
科普:關于處理器你所需要知道的一切
科普:海思CPU的設計制造過程,看了以后真覺得華為不容易
網友最愛看的處理器IC設計相關圖書
一文教你讀懂芯片后端報告(做前端的必看!)
干貨:數字IC后端設計全局觀--數字后端做什么從RTL到GDS(137頁PPT)
科普:海思CPU的設計制造過程,看了以后真覺得華為不容易
CPU DIE Photo 大全
普及貼:CPU的發展歷程(X86篇)
一個從剛入大學就勵志做CPU設計到畢業后如愿以償的故事!
終于講清楚了,看完這篇你也可以設計CPU了
科普:GPU是如何工作的?與CPU、DSP有什么區別?
在CPU IP授權上,ARM 是怎樣戰勝MIPS的?
從沙子到芯片,看看CPU是如何制造出來的
深度分析國產龍芯新架構CPU
CPU誕生鮮為人知的故事:首款8位CPU并不是Intel的,僅比4004晚了兩個月
基于RISC-V架構的開源處理器及SoC研究綜述
RISC-V與DSA!計算機架構宗師Patterson與Hennessy 演講實錄
RISC-V資料大全中文版!
科普:ARM與X86 CPU架構對比區別
從零到精通--處理器(CPU)的設計之路
說一說CPU與GPU的區別
自己動手設計專用處理器
勵志!他設計了先進的指令集,申請三項專利,并設計出了自己的CPU!
分享|開源GPU,RTL源代碼+驗證環境+文檔
Analog IC 難在哪里,結構?參數?版圖?系統?(最新更新)
從一篇Datasheet中能學到什么?
IEEE JSSC論文分享:30GHz low-flicker noiseOscillator
徹底厘清振蕩器中Flicker Noise問題--IEEE TCAS-II(2019)論文分享
全球頂尖芯片專家揭秘【低功耗芯片設計】真相
關于低功耗、低電壓的bandgap電路
Low power RTL 設計優化,同等工藝下讓你的設計功耗更低!
兩篇關于RF PA 的博士論文
PLL經典講義
神作:帶寬!
功率譜密度
SerDes概述
深入淺出聊抖動(Jitter)
動態失調消除的方法(模擬IC設計黑科技!)
先進制程工藝集成電路ESD電路如何設計?
ESD講義
成為一個資深Analog/RF IC Designer 需要怎樣的經歷?
功率半導體(VDMOS,IGBT,TVS)講義
相比CPU,高性能模擬器件更擔心被禁運,那么研發難點在哪兒?
RF PA 那些事
AACD 2017 Hybrid ADCs 資料大全
拉扎維16年寫的-TSPC Logic
功率半導體器件基礎(Baliga)(1085頁)
模擬電路&模擬IC設計
模擬數字產品開發流程
SPICE簡史
干貨分享:測量自己的心電圖(從理論到電路)
好的模擬IC工程師應該具有的素養
模擬IC設計領域的經典之作
是否需要模擬后仿真?
極點零點之我見
六本經典模擬IC書籍精彩評論及總結
模擬設計的100條圣經
模擬電路學習入門的建議
模擬IC流片經驗分享
模擬IC年薪幾十萬師兄的模電學習經歷
想成為一名模擬ic設計師在本科期間應該做哪些準備?
模擬電路設計的九重進階
AnalogIC難在哪里,結構?參數?版圖?系統?
模擬集成電路設計第二講:傳輸函數,零極點的形成及時域響應
我還要不要繼續學習模擬設計--一個跨行碩士的疑問
如何學習模擬IC設計
模擬大牛談模擬工程師身價及發展方向
模擬電路應知應會200問
模擬后仿真的幾種做法以及優缺點
關于模擬地與數字地很意思的解釋
干貨!深入淺出射頻模擬電路設計經典講義
伏模之路--模擬電路學習感悟
模擬IC設計真的很難學嗎?
模擬IC正向設計流程總結
模擬學習感悟與總結
模擬濾波設計講義
拉扎維模擬CMOS集成電路設計講義Part3
拉扎維模擬CMOS集成電路設計講義Part2
模擬學習感悟與總結
【全球總體規模】
根據統計以及預測,在2013年全球FPGA的市場規模在45.63億美元,至2018年全球FPGA的市場規模緩步增長至63.35億美元。但隨著目前5G時代的進展以及AI的推進速度,預計FPGA在2025年有望達到約125.21億美元。
2017年中國FPGA市場規模已達到100億元,得益于AI、5G、云計算等新興市場的興起與發展,預計未來10年FPGA市場規模將會持續快速增長。預計到2022年,中國市場規模將超過300億元,2017-2020六年間年復合增長率超25%
【應用占比】
對于全球FPGA的市場分布而言,FPGA的下游應用地區分布而言,目前最大的為亞太地區,占比39.15%,北美占比33.94%,歐洲占比19.42%;而至2025年,亞太地區的占比將會繼續的提高至43.94%,此間原因也主要因為下游應用市場在未來的主要增長大部分集中在亞太地區。
按照FPGA下游應用來分拆FPGA的市場規模的話,可以看到在2018年而言,通訊領域所用FPGA占據約40%,消費電子占據23%,為最大的應用下游;根據預測至2025年時最大的應用領域將是汽車,占比29%,而數據中心以及工業的占比也將直線上升至13%和19%。
【廠家分布】
在FPGA市場中,呈現Xilinx與英特爾(Altera)的雙寡頭壟斷。
目前FPGA的主要產業鏈供應商仍然集中在歐美地區,以Altera(被Intel收購),和Xilinx兩家為主。兩家合計額的市場份額占到72%。
Xilinx與英特爾(Altera)擁有FPGA相關專利達6000多項,這么多的技術專利構成了很高的技術壁壘。
目前FPGA的主要產業鏈供應商仍然集中在歐美地區。
【廠家詳解】
一、Xilinx 賽靈思
官網:http://www.xilinx.com
建立時間:1984
總部:加利福尼亞圣何塞市
介紹:Xilinx是全球領先的可編程邏輯完整解決方案的供應商,也是目前排名第一的FPGA解決方案提供商。
開發工具:Vivado,ISE(出了vivado之后,xilinx已經不考慮去升級ISE的版本了)
Xilinx發布了他的下一個平臺Vitis,也就是硬件和軟件分開了(即Vivado和IDE分開了),除了啟動方式和使用方法略有區別外,其他操作幾乎與上一代Vivado一模一樣。
其FPGA產品包括如下幾個部分:
1、Spartan系列:定位于低端市場,目前最新器件為Spartan7,為28nm工藝,Spartan6以前都是45nm工藝,該系列器件價格實惠,邏輯規模相對較小。Spartan7系列是7系列中擁有最低的價格、最低的功耗、最小的尺寸以及最低的設計難度,一些低端應用中極為合適。
2、Artix系列:Xilinx推出Artix系列產品,其目的應該是作為低端Spartan和高端Kintex的過渡產品,尤其在通信接口方面,相比Spartan有很大優勢,所以,如果設計不是僅僅需要邏輯資源,而是需要先進的高速接口,不妨考慮Aritix系列。Artix7系列是7系列中,相對Spartan7系列則增加了串行收發器等高級硬核模塊,其邏輯容量也更大,適合邏輯一些稍微復雜的中低端應用。
3、Kintex和Virtex系列為Xilinx的高端產品,包含有28nm的Kintex7和Virtex7系列,還有16nm的Kintex7 Ultrascale+ 和Virtex7 Ultrascale+系列。豐富的高速接口,主要用于通信,雷達,信號處理,IC驗證等高端領域。Kintex7系列是7系列中,在所有系列中擁有最佳的性價比,無論是硬核數量還是邏輯容量,都能滿足中低端、以及部分高端應用需求。Virtex7系列則是7系列中的大佬,只在高端應用中使用
4、全可編程 SoC 和 MPSoC系列,包括有Zynq-7000 和Zynq UltraScale+ MPSoC系列FPGA,可嵌入ARM Cortex系列CPU,逐漸成為目前SOPC熱門應用。
上圖為Spartan7 子系列所有FPGA的所有邏輯資源列表
上圖為Artix7子系列所有FPGA的所有邏輯資源列表,可以看到該系列相比于spartan7除了邏輯資源增加以外,還多了GTP和PCIe的硬核,這樣功能更豐富了。
上圖為Kintex7 子系列所有FPGA的所有邏輯資源列表,該系列相比于Artix7來說,邏輯資源更多了,并且不再支持GTP,而是支持性能更高的GTX串行收發器,并且其他硬核模塊也更多了,比如CMT、Block RAM等。
上圖為Virtex7 子系列所有FPGA的所有邏輯資源列表,不用多說,無論是邏輯資源還是專用硬核資源更多了,屬于該系列最高端的FPGA。
上圖為7系列FPGA的命名規則
上圖為所有7系列FPGA的DSP資源柱狀圖
上圖為所有7系列FPGA的Block RAM資源柱狀圖
上圖為所有7系列FPGA的高速串行收發器資源柱狀圖,性能從低到高分別為GTP、GTX、GTH、GTZ,分別對應不同系列的FPGA。
上圖為所有7系列FPGA的I/O資源柱狀圖
二、altera
官網: http://www.altera.com
建立時間:1983
總部:San Jose, California
介紹:業界與Xilinx齊名的FPGA供應商,于2015年被Intel以167億美元收購。目前稱作Intel FPGA,Altera化身為英特爾可編程事業部(PSG)。目前,Intel FPGA主要分為Agilex?、STRATIX、ARRIA、CYCLONE、MAX五大系列。
產品系列:
1、MAXII系列
MAXII 系列為CPLD, Altera一度以其CPLD聞名,如果選用CPLD,毫不猶豫用Altera的,至于CPLD和FPGA的區別,在此就不多說了。后面文章會有介紹。
2、Cyclone系列
最新為Cyclone10,定位與消費類產品,和Spartan為競爭對手,邏輯資源和接口資源都相對少,特點為性價比高。
3、Stratix系列
最新為Stratix10,為高端應用,和Xilinx的Virtex系列競爭。
4、Arria系列
為SOC系列FPGA, 內置ARM Cotex A9的核。最新技術為20nm工藝。
支持DDR4存儲器接口的FPGA。Altera的Arria 10 FPGA和SoC是業界先進的能夠支持這一速率DDR4存儲器的FPGA,存儲器性能比前一代FPGA提高了43%,比競爭20 nm FPGA高出10%。硬件設計人員現在可以使用最新的Quartus II 軟件,在Arria 10 FPGA和SoC設計中實現,666 Mbps DDR4存儲器數據速率。
5、英特爾? Agilex? FPGA 家族采用異構 3D 系統級封裝 (SiP) 技術,集成了英特爾首款基于 10 納米制程技術的 FPGA 架構和第二代英特爾? Hyperflex? FPGA 架構,可將性能提升多達 40%,將數據中心、網絡和邊緣計算應用的功耗降低多達 40%。
5.1 Compute Express Link
英特爾? Agilex? FPGA 和 SoC 家族通過 Compute Express Link 提供了業界首個面向英特爾? 至強? 處理器的緩存和內存一致性互連技術。這項革命性的 FPGA 互連技術將為具有大量數據處理需求的內存密集型應用提供低延遲和性能優勢。
5.2 領先的收發器
英特爾? Agilex? FPGA 和 SoC 家族支持高達 112Gbps 的數據速率和第五代 PCI Express*,可加速收發器創新。英特爾? Agilex? FPGA 和 SoC 家族為客戶提供了全面的收發器產品組合,包括 28.3Gbps、58Gbps 和 112Gbps 收發器塊。將收發器開發分離開來可加速產品創新。
5.3 DSP 創新
英特爾? Agilex? FPGA 和 SoC 家族提供了一個可配置的 DSP 引擎,可提供對單精度 FP32、半精度 FP16、BFLOTA16 和 INT8 計算的增強型支持。英特爾? Agilex? FPGA 和 SoC 家族還支持從 INT7 到 INT2 的低精度配置,以實現最大的靈活性。英特爾? Agilex? FPGA 可編程性與 DSP 模塊創新相結合,非常適合用于不斷變化的人工智能工作負載。
5.4 異構 3D SiP 技術
憑借成熟的嵌入式多芯片互連橋接 (EMIB) 技術,英特爾? Agilex? FPGA 和 SoC 家族可提供面向異構芯片的高密度芯片到芯片互連,并以低成本提供高性能。由收發器、自定義 IO、自定義計算和英特爾? eASIC? 設備塊組成的大型設備塊庫提供了各種應用所需的敏捷性、靈活性和自定義功能。
5.5 強化協議支持
通過集成許多常用功能的強化協議(包括 100/200/400G 以太網、PCIe* Gen 4/5 接口、Interlaken、CPRI 和 JESD204B/C 等),英特爾? Agilex? FPGA 和 SoC 家族可提供最佳的功耗、性能和邏輯利用效率。
5.6 內存集成
英特爾? Agilex? FPGA 和 SoC 家族提供業內首個面向英特爾? 傲騰? DC 持久內存的 FPGA 支持。除此之外,HBM 集成允許在封裝內提供高達 16GB 的外部內存,提供高達 512 GB/s 的峰值內存帶寬。專用的 DDR5/4 硬核內存控制器支持進一步擴展板載 DRAM 內存。
5.7 第二代英特爾? Hyperflex? 架構
與英特爾? Stratix? 10 設備設計相比,對備受贊譽的英特爾? Hyperflex? 架構的持續改進可提供更高的性能。第二代英特爾? Hyperflex? 架構將擴展到英特爾? Agilex? FPGA 和 SoC 家族的所有密度和變體,從而大大提高客戶的生產力并縮短產品上市時間。
5.8 安全設備管理器
安全設備管理器將作為整個 FPGA 的中央命令中心,控制配置、設備安全性、單事件翻轉 (SEU) 響應和電源管理等關鍵操作。安全設備管理器為整個設備建立了統一的安全管理系統,包括 FPGA 架構、 SoC 中的硬核處理器系統 (HPS)、嵌入式硬核 IP 模塊,以及 I/O 模塊。
三、Lattice
官網:http://www.latticesemi.com
建立時間:1983
總部:Hillsboro, Oregon
介紹:著名的可編程邏輯解決方案供應商,僅次于Xilinx和Altera。
產品介紹:
1、ECP系列,為Lattice自己的開發的FPGA系列,提供低成本,高密度的FPGA解決方案,而且還有高速Serdes等接口,適用于民品解決方案居多。
2、ICE系列,為收購SilioncBlue的超低功耗FPGA,也曾用在iPhone7里面,實現了FPGA首次在消費類產品中應用,可見其功耗有多低。
3、Mach系列,替代CPLD,實現粘合邏輯的最佳選擇。作為CPLD的發明者,Lattice在CPLD領域依然表現卓越。
Lattice被使用在iPhone7上。
這款FPGA提供了SPI和I2C接口,可作為master控制其它傳感器及slave被CPU控制;RGB drv可用于控制三色屏幕背光LED,IR drv可用于控制紅外線LED;NVCM片上非易失性存儲器,可代替部分flash功能;額外的普通可編程PIN腳;內含DSP資源可用于數據處理,以及一些RAM和CLB資源,可用于實現邏輯功能。
四、Actel被MicroSemi收購
官網: http://www.actel.com
建立時間:1985
總部:Irvine, California
介紹:專注于美國軍工和航空領域,產品為反熔絲結構FPGA和基于Flash的FPGA為主,具有抗輻照和可靠性高的優勢。
Microsemi于2010年收購了Actel,因此,Microsemi的FPGA有三十年歷史。Actel主要提供非易失性FPGA,產品主要基于反熔絲工藝和FLASH工藝,其產品主要用于軍用和宇航。Actel是美國軍方的合作伙伴,占據了美國90%以上航天航空的FPGA市場,在過去的十多年中,Actel反熔絲的FPGA已經成功地應用于 300多個太空計劃,這些應用足以證明Actel的FPGA在可靠性方面是毋庸置疑的。
反熔絲器件以軍用市場為主,未對民用市場開放,所以一直以來大家對Actel的印象都是若隱若現,直到2002年,其創新的基于Flash架構的FPGA的出現,從此揭開了Actel神秘的面紗,從此Actel逐漸走向了民用市場,被大家所認知。第一款Flash架構的FPGA是ProASIC,其等同于CPLD的單芯片特點以及超越于CPLD的低功耗和大容量特點贏得了開發工程師的好評,越來越多的人使用Flash架構的FPGA去替換原有的CPLD和SRAM的FPGA。
隨著社會需求的不斷改變,Actel也在不斷地改進FPGA的技術,不斷完善和豐富FPGA的功能和內部資源,在2005年Actel推出了第三代Flash架構的FPGA——ProASIC3/E,ProASIC3/E的成功推出預言著新的一場FPGA之間的“戰斗”即將拉開,ProASIC3/E系列是因應市場對全功能、低成本FPGA的強勁需求而設計的,主要面向消費、汽車及其它成本敏感的應用領域。以下是Actel的產品:
Fusion:業界首個帶有模擬功能的FPGA,集成了12位AD、Flash Memory、RTC等部件,使SoC成為了現實;
IGLOO:超低功耗的FPGA,具有獨特的Flash *Freeze的睡眠模式,在該模式下最低功耗可達5μW,并能保存RAM和寄存器的狀態;
IGLOO2:在IGLOO的基礎上對I/O進行了優化,提供超多的I/O口、支持斯密特觸發器輸入、熱插拔等特點;
ProASIC3L:不僅具有ProASIC3的高性能,而且具有低功耗的特性;
Nano:業界最低功耗的FPGA,最低靜態功耗可達2μW,具有3mm*3mm的超小封裝,0.46美金的超低起定價。
這些系列都屬于Actel第三代技術的Flash架構的FPGA,其不同的特點完全能夠滿足各種不同市場的需求,而且給用戶帶來了眾多的選擇和為提升用戶產品的競爭力帶來了意想不到的效果,進而Actel主推第三代的Flash器件自然而然地成為了令人矚目的新星。
產品介紹:
1、基于FLASH的通用FPGA系列,包括有PolarFire、IGLOO2,IGLOO2三個高、中、低端系列。
2、特殊領域應用系列,如基于SOC的 ProASIC3和數模混合的Fusion。內置有ARM,AD等。
3、反熔絲FPGA,主要用于航天,有抗輻照功能,不可重復擦寫,燒寫一次有問題,片子就報廢了。所以,充分的仿真是非常有必要的。
五、Achronix
官網: http://www.achronix.com
總部:Santa Clara, California
介紹:Achronix是一家提供高性能,高密度FPGA方案的美國高科技公司。致力于最先進的22nm 3D FinFET 技術發展新一代FPGA器件。
產品介紹:
其Speedster22i為世界上最快的FPGA,擁有豐富接口,如100G Ethernet, 100G Interlaken, PCI Express 和 DDR3。
其特點是:規模大,功耗低和性價比高。
面向市場:通信,測量,CPU加速和軍工等領域。
Achronix的Speedster7t FPGA集成了8個GDDR6的硬核,如圖所示。
Speedster7t FPGA架構
國產FPGA廠商
一、京微齊力
京微齊力(北京)科技有限公司注冊在北京經濟技術開發區,總部設于亦莊,在中關村設有研發中心。
京微齊力是除美國外最早進入自主研發、規模生產、批量銷售通用FPGA芯片及新一代異構可編程計算芯片的企業之一。
公司團隊申請了近200件專利和專有技術(含近50件PCT/美國專利),具備獨立完整的自主知識產權。其產品將FPGA與CPU、MCU、Memory、ASIC、AI等多種異構單元集成在同一芯片上,實現了可編程、自重構、易擴展、廣適用、多集成、高可靠、強算力、長周期等特點。
公司技術與產品將涵蓋可編程FPGA內核,異構計算與存儲架構、芯片設計、軟件開發、系統IP應用等相關技術領域。
研發新一代面向人工智能/智能制造等應用領域的AiPGA芯片(AI in FPGA)、異構計算HPA芯片(Heterogeneous Programmable Accelerator)、嵌入式可編程eFPGA IP核(embedded FPGA)三大系列產品。
京微齊力脫胎于2005年成立的京微雅格,由于FPGA是一項資金消耗量巨大、研發時間久、回報周期長的產品,2016年時,京微雅格出現資金鏈斷裂,隨后陷入經營困境。
據當時媒體報道,在其核心管理層堅守18月后,只剩下8位員工,后再征求到原公司股東同意的前提下,時任副總裁的王海力與其他8位同事最終決定二次創業,在2017年6月成立了“京微齊力(齊力科技)”,王海力出資200萬元,任董事長兼總經理。原公司以存續的狀態繼續維持著,同時將其所有產品、技術等全部獨家授權給現公司使用。
據悉,京微齊力獲得了“京微雅格”上百件FPGA專利和專有技術(含國際專利)的授權及二次開發權,在原“京微雅格”產品基礎上推出了包括HME-R(河)系列、HME-M(山)系、HME-C(云)系列和HME-P(星)系列產品,同時還推出了HME-H(大力神)系列、HME-A(阿凡達)和HME-E(悟空)系列產品。同時,還有配套的FX-伏羲軟件。
R(河)系列的產品定位于可穿戴設備和便攜式移動終端(如LTE及未來的5G智能電話、移動智能終端(Tablets)如iPAD/eBook、銷售服務POS終端)、物聯網終端、智能安防監控設備、個人醫療監控設備、太陽能光伏設備以及北斗產業相關的各類終端等領域。
該系列產品采用40納米工藝成功量產2顆“河”系列微功耗FPGA芯片,可用于智能手機、物聯網、AR/VR等多個應用領域。該系列產品有768到3072個4輸入查找表(LUT),采用先進的邏輯結構,精確映射設計;具有128位AES配置文件密鑰及用戶自定義安全ID;支持用戶可配置IO,最多可提供80對LVDS IO。
C(云)系列產品定位于高性能的網絡交換、通信系統、信息安全、電力運營、大數據和云計算等高端應用領域。針對這類市場特點,C系列產品將在設計的獨特性、定制化、高性價比以及軟件靈活性等方面體現出優勢。iSuppli市場分析數據表明,上述重點領域占據FPGA 40%以上的市場份額。全球最大FPGA客戶華為公司及中興等國內其他大客戶每年各自采購FPGA器件的金額高達數億美元。公司研制的第一顆千萬門級C系列芯片C1開始提供工程樣片,為國產FPGA芯片進入通信電力等核心領域奠定基礎。該系列產品采用的是40nm CMOS工藝,以及全新的LUT6架構,可等價于60K 4輸入LUT邏輯單元;具有高達6.5G bps Serdes高速I/O。其他幾類產品基本上還都處于研發中。
二、復旦微電子
復旦微電子是1998年7月,由復旦大學“專用集成電路與系統國家重點實驗室”、上海商業投資公司和一批夢想創建中國最好的集成電路設計公司(芯片設計)的創業者聯合發起創建的。該公司已于2000年8月4日在香港上市(股票編號:1385),成為國內集成電路設計行業第一家上市企業。主營業務包括金融IC卡,NFC芯片,FPGA芯片等。
8月4日芯片設計公司上海復旦微電子集團股份有限公司以發行價6.23元/股正式科創板上市。
本次上市募資 6 億元投入可編程片上系統芯片的研發及發展與科技儲備資金(用于新一代嵌入式可編程器件研發及產業化項目、 高性能人工智能加速引擎項目、高級別安全芯片項目)
先進的技術和深厚的背景讓復旦微電開盤就收到市場的歡迎,其股價較發行價最高上漲到達834%,截至收盤復旦微電最新股價55.90元,總市值為455億元。
據悉,從上世紀90年代至今,復旦微電子已開發了6代FPGA產品,承接了多項FPGA重大專項項目,形成了技術精湛的FPGA研發團隊,突破了大規模FPGA產品的軟硬件關鍵技術。
該公司在2018年5月推出的FPGA產品JFM7K325T,對標Xilinx同型號的產品XC7K325T,突破了在傳統集成電路設計基礎上的高可靠性設計,采用了全新的億門級FPGA創新架構,并集成了專用超高速串并轉換模塊、高靈活可配置模塊、專用數字信號處理模塊、高速內部存儲模塊、可配置時鐘模塊等適用億門級FPGA應用的模塊電路。據說,上海復旦微電子的器件直接可以用Xilinx的Vivado套件直接編譯。
三、紫光同創
背靠紫光集團的深圳市紫光同創電子有限公司是一家專業從事可編程邏輯器件(FPGA、CPLD等)研發與生產銷售,是紫光集團“芯云戰略”中“芯”的重要組成之一。也是深圳市國微電子有限公司成立了全資子公司。其產品覆蓋通信網絡、信息安全、人工智能、數據中心、工業物聯網等領域。
據其官網介紹,紫光同創注冊資本3億元,總投資超過10億元,產品市場覆蓋通信網絡、工業控制、視頻監控、消費電子等領域。其總部設在深圳,擁有上海、北京等分公司,公司人數超過300人,研發人員占比超過80%,擁有專利近200項。
紫光同創的主要FPGA產品有Titan系列、Logos系列和Compact系列。
其中,Titan系列產品是其推出的全新的高性能千萬門級FPGA產品,采用了自主知識產權的體系結構和40nm工藝;具有高達174K等效LUT4邏輯單元;系統最高頻率為500MHz,塊存儲器資源高達9Mbit;支持多種高速IO接口:SERDES速率6.25Gbps,DDR3速率1066Mbps,LVDS速率1.25Gbps,PCIE Gen 2.0 X1/X4 及1000M/10G以太網等;支持SPI/JTAG/并行/串行等多種編程加載方式,支持遠程加載。主要適用于通信網絡、信息安全、數據中心、工業控制等領域。
Logos系列產品是其推出的高性價比FPGA產品,采用了全新LUT5結構的40nm工藝,具有靈活可編程的CLM,每個CLM包含4個LUT5和6個寄存器;集成了DSP處理單元、256bit AES加密算法,帶有高速MIPI接口和DDR3接口,此系列為各類成本敏感型、有加密設計需求和高速DDR3帶寬的應用提供最大價值,廣泛應用于工業控制、通信、消費類等領域。
Compact系列則屬于超低功耗的CPLD產品,采用了基于55nm的eFlash工藝,具有1K~7K LUT4邏輯單元,支持3.3/2.5V內核或低電壓1.2V內核器件可選;支持MIPI、LVDS、I2C、SPI、OSC、RAM、PLL等;封裝可低至2.5mm×2.5mm,用戶IO可高達336個。專門為了滿足低功耗、低成本設計需求而設計。可應用于通信、消費電子、無人機和工業等領域。
該系列芯片的首款產品PGC2400G已經完成研發并已流片,預計今年第三季度向市場提供工程樣品。此外,該公司還在繼續推進新一代Titan2系列可編程芯片的研發,據說已經取得了大部分關鍵技術的突破。
軟件方面,Pango Design Suite是紫光同創基于多年FPGA開發軟件技術攻關與工程實踐經驗而研發的一款擁有國產自主知識產權的大規模FPGA開發軟件,可以支持千萬門級FPGA器件的設計開發。該軟件支持工業界標準的開發流程,可實現從RTL綜合到配置數據流生成下載的全套操作。
四、高云半導體
高云半導體成立于2014年,是一家專業從事國產現場可編程邏輯器件(FPGA)研發與產業化為核心,旨在推出具有核心自主知識產權的民族品牌FPGA芯片,提供集設計軟件、IP核、參考設計、開發板、定制服務等一體化完整解決方案的高科技企業。
目前該公司研發團隊有100余人,在硅谷、上海、濟南建立了研發中心。公司的技術骨干均有國際著名FPGA公司15年以上的工作經驗,參與了數代FPGA芯片的硬件開發、相關EDA軟件開發、軟硬件的測試流程,積累了豐富的技術和管理經驗。團隊磨合后,于2015年一季度量產出國內第一塊產業化的55nm工藝400萬門的中密度FPGA芯片,并開放開發軟件下載。2016年第一季度又順利推出國內首顆55nm嵌入式Flash SRAM的非易失性FPGA芯片。
該公司目前主要聚焦在中低密度的FPGA市場,面向通訊、LED顯示、工業控制、汽車電子、消費電子、醫療和數據中心等領域推動了晨曦和小蜜蜂兩個家族4個系列11顆芯片的量產,產品也獲得了不錯的成績。據高云公布的信息,截止到2019年1月份,他們的芯片出貨量突破了1000萬片。
其中晨曦家族產品具有高性能、低功耗、內部資源豐富等特點,主要面向通信和工業領域。GW2A系列FPGA產品是高云半導體晨熙家族第一代產品,內部資源豐富,具有高性能的DSP資源,高速LVDS接口,以及豐富的BSRAM存儲器資源,這些內嵌的資源搭配精簡的 FPGA架構以及55nm工藝使GW2A系列FPGA產品適用于高速低成本的應用場合。
小蜜蜂家族則是高云半導體針對消費類市場推出的產品。GW1N系列FPGA產品是高云半導體小蜜蜂(LittleBee)家族第一代產品,具有低功耗、瞬時啟動、低成本、非易失性、高安全性、封裝類型豐富、使用方便靈活等特點。
GW1NR系列FPGA產品則是一款系統級封裝芯片,在GW1N基礎上集成了豐富容量的SDRAM存儲芯片,同時具有低功耗、瞬時啟動、低成本、非易失性、高安全性、封裝類型豐富、使用方便靈活等特點。
GW1NS系列包括SoC FPGA產品(封裝前帶“C”的器件)和非SoC FPGA產品(封裝前不帶“C”的器件)。SoC FPGA內嵌Arm Cortex-M3硬核處理器,而非SoC FPGA內部沒有Arm Cortex-M3硬核處理器。此外,GW1NS系列FPGA產品內嵌USB2.0 PHY、用戶閃存以及 ADC轉換器。以Arm Cortex-M3硬核處理器為核心,具備了實現系統功能所需要的最小內存;內嵌的FPGA邏輯模塊單元方便靈活,可實現多種外設控制功能,能提供出色的計算功能和異常系統響應中斷,具有高性能、低功耗、管腳數量少、使用靈活、瞬時啟動、低成本、非易失性、高安全性、封裝類型豐富等特點。GW1NS系列SoC FPGA產品實現了可編程邏輯器件和嵌入式處理器的無縫連接,兼容多種外圍器件標準,可大幅降低用戶成本,可廣泛應用于工業控制、通信、物聯網、伺服驅動、消費等多個領域。
五、安路科技
安路科技在上海證券交易所科創板上市,公司證券代碼為688107,發行價格26元/股。
安路科技的主營業務為FPGA芯片和專用EDA軟件的研發、設計和銷售。自成立以來,公司密切跟蹤行業發展趨勢及下游需求變化,建立了完善的產品體系。
目前國內FPGA廠商有不少,不過同國際領先廠商相比,國產FPGA產品不論從產品性能、功耗、功能上都有較大差距。