【FPGA研發崗位職責|FPGA研發是做什么的】-看準網

[全行業]

81條工資| 26條面試| 24條招聘

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網簡介

糾錯

崗位職責

背景
以硬件描述語言(Verilog或VHDL)所完成的電路設計,可以經過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現代 IC設計驗證的技術主流。這些可編輯元件可以被用來實現一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數學方程式。在大多數的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發器(Flip-flop)或者其他更加完整的記憶塊。
系統設計師可以根據需要通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。
FPGA一般來說比ASIC(專用集成電路)的速度要慢,實現同樣的功能比ASIC電路面積要大。但是他們也有很多的優點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然后將設計轉移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)。
開發
FPGA的開發相對于傳統PC、單片機的開發有很大不同。FPGA以并行運算為主,以硬件描述語言來實現;相比于PC或單片機(無論是馮諾依曼結構還是哈佛結構)的順序操作有很大區別,也造成了FPGA開發入門較難。目前國內有專業的FPGA外協開發廠家,如[北京中科鼎橋ZKDQ-TECH]等。FPGA開發需要從頂層設計、模塊分層、邏輯實現、軟硬件調試等多方面著手。
產品比較
早在198年代中期,FPGA已經在PLD設備中扎根。CPLD和FPGA包括了一些相對大數量的可編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。
CPLD和FPGA的主要區別是他們的系統結構。CPLD是一個有點限制性的結構。這個結構由一個或者多個可編輯的結果之和的邏輯組列和一些相對少量的鎖定的寄存器組成。這樣的結果是缺乏編輯靈活性,但是卻有可以預計的延遲時間和邏輯單元對連接單元高比率的優點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結構卻復雜的多。
CPLD和FPGA另外一個區別是大多數的FPGA含有高層次的內置模塊(比如加法器和乘法器)和內置的記憶體。因此一個有關的重要區別是很多新的FPGA支持完全的或者部分的系統內重新配置。允許他們的設計隨著系統升級或者動態重新配置而改變。一些FPGA可以讓設備的一部分重新編輯而其他部分繼續正常運行。
CPLD和FPGA還有一個區別:CPLD下電之后,原有燒入的邏輯結構不會消失;而FPGA下電之后,再次上電時,需要重新加載FLASH里面的邏輯代碼,需要一定的加載時間。
發展歷程
每一個最后看來很成功的新事物,從誕生到發展壯大都不可避免地經歷過艱難的歷程,并可能成為被研究的案例,FPGA也不例外。
1985年,當全球首款FPGA產品——XC264誕生時,注定要使用大量芯片的PC機剛剛走出硅谷的實驗室進入商業市場,因特網只是科學家和政府機構通信的神秘鏈路,無線電話笨重得像磚頭,日后大紅大紫的Bill Gates正在為生計而奮斗,創新的可編程產品似乎并沒有什么用武之地。
事實也的確如此。最初,FPGA只是用于膠合邏輯(Glue Logic),從膠合邏輯到算法邏輯再到數字信號處理、高速串行收發器和嵌入式處理器,FPGA真正地從配角變成了主角。在以閃電般速度發展的半導體產業里,22年足夠改變一切。“在未來十年內每一個電子設備都將有一個可編程邏輯芯片”的理想正成為現實。
1985年,Xilinx公司推出的全球第一款FPGA產品XC264怎么看都像是一只“丑小鴨”——采用2μm工藝,包含64個邏輯模塊和85個晶體管,門數量不超過1個。22年后的27年,FPGA業界雙雄Xilinx和Altera公司紛紛推出了采用最新65nm工藝的FPGA產品,其門數量已經達到千萬級,晶體管個數更是超過1億個。一路走來,FPGA在不斷地緊跟并推動著半導體工藝的進步——21年采用15nm工藝、22年采用13nm工藝,23年采用9nm工藝,26年采用65nm工藝。
在上世紀8年代中期,可編程器件從任何意義上來講都不是當時的主流,雖然其并不是一個新的概念。可編程邏輯陣列(PLA)在197年左右就出現了,但是一直被認為速度慢,難以使用。198年之后,可配置可編程邏輯陣列(PLA)開始出現,可以使用原始的軟件工具提供有限的觸發器和查找表實現能力。PAL被視為小規模/中等規模集成膠合邏輯的替代選擇被逐步接受,但是當時可編程能力對于大多數人來說仍然是陌生和具有風險的。2世紀8年代在“megaPAL”方面的嘗試使這一情況更加嚴重,因為“megaPAL”在功耗和工藝擴展方面有嚴重的缺陷,限制了它的廣泛應用。
然而,Xilinx公司創始人之一——FPGA的發明者Ross Freeman認為,對于許多應用來說,如果實施得當的話,靈活性和可定制能力都是具有吸引力的特性。也許最初只能用于原型設計,但是未來可能代替更廣泛意義上的定制芯片。事實上,正如Xilinx公司亞太區營銷董事鄭馨南所言,隨著技術的不斷發展,FPGA由配角到主角,很多系統設計都是以FPGA為中心來設計的。FPGA走過了從初期開發應用到限量生產應用再到大批量生產應用的發展歷程。從技術上來說,最初只是邏輯器件,現在強調平臺概念,加入數字信號處理、嵌入式處理、高速串行和其他高端技術,從而被應用到更多的領域。“9年代以來的2年間,PLD產品的終極目標一直瞄準速度、成本和密度三個指標,即構建容量更大、速度更快和價格更低的FPGA,讓客戶能直接享用。”Actel司總裁兼首席執行官JohnEast如此總結可編程邏輯產業的發展脈絡。
當1991年Xilinx公司推出其第三代FPGA產品——XC4系列時,人們開始認真考慮可編程技術了。XC43包含44萬個晶體管,采用.7μm工藝,FPGA開始被制造商認為是可以用于制造工藝開發測試過程的良好工具。事實證明,FPGA可為制造工業提供優異的測試能力,FPGA開始用來代替原先存儲器所扮演的用來驗證每一代新工藝的角色。也許從那時起,向最新制程半導體工藝的轉變就已經不可阻擋了。最新工藝的采用為FPGA產業的發展提供了機遇。
Actel公司相信,Flash將繼續成為FPGA產業中重要的一個增長領域。Flash技術有其獨特之處,能將非易失性和可重編程性集于單芯片解決方案中,因此能提供高成本效益,而且處于有利的位置以搶占龐大的市場份額。Actel以Flash技術為基礎的低功耗IGLOO系列、低成本的ProASIC3系列和混合信號Fusion FPGA將因具備Flash的固有優勢而繼續引起全球廣泛的興趣和注意。
Altera公司估計可編程邏輯器件市場在26年的規模大概為37億美元,Xilinx公司的估計更為樂觀一些,為5億美元。雖然兩家公司合計占據該市場9%的市場份額,但是作為業界老大的Xilinx公司在26年的營收不過18.4億美元,Altera公司則為12.9億美元。PLD市場在2年達到41億美元,其后兩年出現了下滑,22年大約為23億美元。雖然從22年到26年,PLD市場每年都在增長,復合平均增長率接近13%,但是PLD終究是一個規模較小的市場。而Xilinx公司也敏銳地意識到,FPGA產業在經歷了過去幾年的快速成長后將放慢前進的腳步,那么,未來FPGA產業的出路在哪里?
Altera公司總裁兼首席執行官John Daane認為,FPGA及PLD產業發展的最大機遇是替代ASIC和專用標準產品(ASSP),主要由ASIC和ASSP構成的數字邏輯市場規模大約為35億美元。由于用戶可以迅速對PLD進行編程,按照需求實現特殊功能,與ASIC和ASSP相比,PLD在靈活性、開發成本以及產品及時面市方面更具優勢。然而,PLD通常比這些替代方案有更高的成本結構。因此,PLD更適合對產品及時面市有較大需求的應用,以及產量較低的最終應用。PLD技術和半導體制造技術的進步,從總體上縮小了PLD和固定芯片方案的相對成本差,在以前由ASIC和ASSP占據的市場上,Altera公司已經成功地提高了PLD的銷售份額,并且今后將繼續這一趨勢。“FPGA和PLD供應商的關鍵目標不是簡單地增加更多的原型客戶,而是向大批量應用最終市場和客戶滲透。”John Daane為FPGA產業指明了方向。
理念成熟
Xilinx公司認為,ASIC SoC設計周期平均是14個月到24個月,用FPGA進行開發時間可以平均降低55%。而產品晚上市六個月5年內將少33%的利潤,每晚四周等于損失14%的市場份額。因此,鄭馨南雄心勃勃地預言:“FPGA應用將不斷加快,從面向5億美元的市場擴展到面向41億美元的市場。”其中,ASIC和ASSP市場各15億美元,嵌入式處理和高性能DSP市場各3億美元。
雖然沒有像蒸汽機車發明之初備受嘲笑被譏諷為“怪物”,但是FPGA在誕生之初受到懷疑是毫無疑問的。當時,晶體管邏輯門資源極為珍貴,每個人都希望用到的晶體管越少越好。不過,Ross Freeman挑戰了這一觀念,他大膽預言:“在未來,晶體管將變得極為豐富從而可以‘免費’使用。”如今,這一預言成為現實。
“FPGA非常適用于原型設計,但對于批量DSP系統應用來說,成本太高,功耗太大。”這是業界此前的普遍觀點,很長時間以來也為FPGA進入DSP領域設置了觀念上的障礙。而如今,隨著Xilinx公司和Altera公司相關產品的推出,DSP領域已經不再是FPGA的禁區,相反卻成了FPGA未來的希望所在。
FPGA對半導體產業最大的貢獻莫過于創立了無生產線(Fabless)模式。如今采用這種模式司空見慣,但是在2多年前,制造廠被認為是半導體芯片企業必須認真考慮的主要競爭優勢。然而,基于過去和關系和直接、清晰的業務模式,Xilinx創始人之一Bernie Vonderschmitt成功地使日本精工公司(Seiko)確信利用該公司的制造設施來生產Xilinx公司設計的芯片對雙方都是有利的,于是,無生產線模式誕生了。
未來,相信FPGA還將在更多方面改變半導體產業!
工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。 現場可編程門陣列(FPGA)是可編程器件,與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構。FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內部靜態存儲單元加載編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯接方式,并最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。
電源類型
FPGA電源要求輸出電壓范圍從1.2V到5V,輸出電流范圍從數十毫安到數安培。可用三種電源:低壓差(LDO)線性穩壓器、開關式DC-DC穩壓器和開關式電源模塊。最終選擇何種電源取決于系統、系統預算和上市時間要求。
如果電路板空間是首要考慮因素,低輸出噪聲十分重要,或者系統要求對輸入電壓變化和負載瞬變做出快速響應,則應使用LDO穩壓器。LDO功效比較低(因為是線性穩壓器),只能提供中低輸出電流。輸入電容通常可以降低LDO輸入端的電感和噪聲。LDO輸出端也需要電容,用來處理系統瞬變,并保持系統穩定性。也可以使用雙輸出LDO,同時為VCCINT和VCCO供電。
如果在設計中效率至關重要,并且系統要求高輸出電流,則開關式穩壓器占優勢。開關電源的功效比高于LDO,但其開關電路會增加輸出噪聲。與LDO不同,開關式穩壓器需利用電感來實現DC-DC轉換。
要求
為確保正確上電,內核電壓VCCINT的緩升時間必須在制造商規定的范圍內。對于一些FPGA,由于VCCINT會在晶體管閾值導通前停留更多時間,因此過長的緩升時間可能會導致啟動電流持續較長時間。如果電源向FPGA提供大電流,則較長的上電緩升時間會引起熱應力。ADI公司的DC-DC穩壓器提供可調軟啟動,緩升時間可以通過外部電容進行控制。緩升時間典型值在2ms至1ms范圍內。
許多FPGA沒有時序控制要求,因此VCCINT、VCCO和VCCAUX可以同時上電。如果這一點無法實現,上電電流可以稍高。時序要求依具體FPGA而異。對于一些FPGA,必須同時給VCCINT和VCCO供電。對于另一些FPGA,這些電源可按任何順序接通。多數情況下,先給VCCINT后給VCCO供電是一種較好的做法。
當VCCINT在.6V至.8V范圍內時,某些FPGA系列會產生上電涌入電流。在此期間,電源轉換器持續供電。這種應用中,因為器件需通過降低輸出電壓來限制電流,所以不推薦使用返送電流限制。但在限流電源解決方案中,一旦限流電源所供電的電路電流超過設定的額定電流,電源就會將該電流限制在額定值以下。
配電結構
集中式電源結構
對于高速、高密度FPGA器件,保持良好的信號完整性對于實現可靠、可重復的設計十分關鍵。適當的電源旁路和去耦可以改善整體信號完整性。如果去耦不充分,邏輯轉換將會影響電源和地電壓,導致器件工作不正常。此外,采用分布式電源結構也是一種主要解決方案,給FPGA供電時可以將電源電壓偏移降至最低。
在傳統電源結構中,AC/DC或DC/DC轉換器位于一個地方,并提供多 個輸出電壓,在整個系統內分配。這種設計稱為集中式電源結構(CPA),見左圖。以高電流分配低電壓時,銅線或PCB軌道會產生嚴重的電阻損耗,CPA就會發生問題。
分布式電源結構
CPA的替代方案是分布式電源結構(DPA),見左圖。采用DPA時,整個系統內僅分配一個半穩壓的DC電壓,各DC/DC轉換器(線性或開關式)與各負載相鄰。DPA中,DC/DC轉換器與負載(例如FPGA)之間的距離近得多,因而線路電阻和配線電感引起的電壓下降得以減小。這種為負載提供本地電源的方法稱為負載點(POL)。
芯片結構
主流的FPGA仍是基于查找表技術的,已經遠遠超出了先前版本的基本性能,并且整合了常用功能(如RAM、時鐘管理和DSP)的硬核(ASIC型)模塊。如圖1-1所示(注:圖1-1只是一個示意圖,實際上每一個系列的FPGA都有其相應的內部結構),FPGA芯片主 要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的布線資源、內嵌的底層功能單元和內嵌專用硬件模塊。
圖1-1 FPGA芯片的內部結構
FPGA芯片的內部結構
每個模塊的功能如下:
1. 可編程輸入輸出單元(IOB)
可編程輸入/輸出單元簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求,其示意結構如圖1-2所示。FPGA內的I/O按組分類,每組都能夠獨立地支持不同的I/O標準。通過軟件的靈活配置,可適配不同的電氣標準與I/O物理特性,可以調整驅動電流的大小,可以改變上、下拉電阻。I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術可以支持高達2Gbps的數據速率。
圖1-2 典型的IOB內部結構示意圖
典型的IOB內部結構示意圖
外部輸入信號可以通過IOB模塊的存儲單元輸入到FPGA的內部,也可以直接輸入FPGA 內部。當外部輸入信號經過IOB模塊的存儲單元輸入到FPGA內部時,其保持時間(Hold Time)的要求可以降低,通常默認為。
為了便于管理和適應多種電器標準,FPGA的IOB被劃分為若干個組(bank),每個bank的接口標準由其接口電壓VCCO決定,一個bank只能有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標準的端口才能連接在一起,VCCO電壓相同是接口標準的基本條件。
2. 可配置邏輯塊(CLB)
CLB是FPGA內的基本邏輯單元。CLB的實際數量和特性會依器件的不同而不同,但是每個CLB都包含一個可配置開關矩陣,此矩陣由4或6個輸入、一些選型電路(多路復用器等)和觸發器組成。開關矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(一般為4個或2個)相同的Slice和附加邏輯構成,如圖1-3所示。每個CLB模塊不僅可以用于實現組合邏輯、時序邏輯,還可以配置為分布式RAM和分布式ROM。
圖1-3 典型的CLB結構示意圖
典型的CLB結構示意圖
Slice是Xilinx公司定義的基本邏輯單位,其內部結構如圖1-4所示,一個Slice由兩個4輸入的函數、進位邏輯、算術邏輯、存儲邏輯和函數復用器組成。算術邏輯包括一個異或門(XORG)和一個專用與門(MULTAND),一個異或門可以使一個Slice實現 2bit全加操作,專用與門用于提高乘法器的效率;進位邏輯由專用進位信號和函數復用器(MUXC)組成,用于實現快速的算術加減法操作;4輸入函數發生 器用于實現4輸入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的兩個輸入函數為6輸入,可以實現6輸入LUT或 64比特移位寄存器);進位邏輯包括兩條快速進位鏈,用于提高CLB模塊的處理速度。
圖1-4 典型的4輸入Slice結構示意圖
典型的4輸入Slice結構示意圖
3. 數字時鐘管理模塊(DCM)
業內大多數FPGA均提供數字時鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出最先進的FPGA提供數字時鐘管理和相位環路鎖定。相位環路鎖定能夠提供精確的時鐘綜合,且能夠降低抖動,并實現過濾功能。
4.嵌入式塊RAM(BRAM)
大多數FPGA都具有內嵌的塊RAM,這大大拓展了FPGA的應用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內容地址存儲器 (CAM)以及FIFO等常用存儲結構。RAM、FIFO是比較普及的概念,在此就不冗述。CAM存儲器在其內部的每個存儲單元中都有一個比較邏輯,寫入 CAM中的數據會和內部的每一個數據進行比較,并返回與端口數據相同的所有數據的地址,因而在路由的地址交換器中有廣泛的應用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結構。在實際應用中,芯片內部塊RAM的數量也是選擇芯片的一個重要因素。
單片塊RAM的容量為18k比特,即位寬為18比特、深度為124,可以根據需要改變其位寬和深度,但要滿足兩個原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位寬最大不能超過36比特。當然,可以將多片塊RAM級聯起來形成更大的RAM,此時只受限于芯片內塊RAM的數量,而不再受上面兩條原則約束。
5. 豐富的布線資源
布線資源連通FPGA內部的所有單元,而連線的長度和工藝決定著信號在連線上的驅動能力和傳輸速度。FPGA芯片內部有著豐富的布線資源,根據工藝、長度、寬度和分布位置的不同而劃分為4類不同的類別。第一類是全局布線資源,用于芯片內部全局時鐘和全局復位/置位的布線;第二類是長線資源,用以完成芯片 Bank間的高速信號和第二全局時鐘信號的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時鐘、復位等控制信號線。
在實際中設計者不需要直接選擇布線資源,布局布線器可自動地根據輸入邏輯網表的拓撲結構和約束條件選擇布線資源來連通各個模塊單元。從本質上講,布線資源的使用方法和設計的結果有密切、直接的關系。
6. 底層內嵌功能單元
內嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核(SoftCore)。越來越豐富的內嵌功能單元,使得單片FPGA成為了系統級的設計工具,使其具備了軟硬件聯合設計的能力,逐步向SOC平臺過渡。
DLL和PLL具有類似的功能,可以完成時鐘高精度、低抖動的倍頻和分頻,以及占空比調整和移相等功能。Xilinx公司生產的芯片上集成了 DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時集成了PLL和DLL。PLL 和DLL可以通過IP核生成的工具方便地進行管理和配置。DLL的結構如圖1-5所示。
圖1-5 典型的DLL模塊示意圖
典型的DLL模塊示意圖
7. 內嵌專用硬核
內嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產商在芯片內部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標準,很多高端的FPGA內部都集成了串并收發器(SERDES),可以達到數十Gbps的收發速度。
Xilinx公司的高端產品不僅集成了Power PC系列CPU,還內嵌了DSP Core模塊,其相應的系統級設計工具是EDK和Platform Studio,并依此提出了片上系統(System on Chip)的概念。通過PowerPC、Microblaze、Picoblaze等平臺,能夠開發標準的DSP處理器及其相關應用,達到SOC的開發目的。
基本特點
1)采用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3)FPGA內部有豐富的觸發器和I/O引腳。
4)FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。
5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。
FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。
加電時,FPGA芯片將EPROM中數據讀入片內編程RAM中,配置完成后,FPGA進入工作狀態。掉電后,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。
注意事項
基礎問題
FPGA的基礎就是數字電路和VHDL語言,想學好FPGA的人,建議床頭都有一本數字電路的書,不管是哪個版本的,這個是基礎,多了解也有助于形成硬件設計的思想。在語言方面,建議初學者學習Verilog語言,VHDL語言語法規范嚴格,調試起來很慢,Verilog語言容易上手,而且,一般大型企業都是用Verilog語言,VHDL語言規范,易讀性強,所以一般軍工都用VHDL。
工具問題
熟悉幾個常用的就可以的,開發環境Quartus II ,或ISE 就可以了,這兩個基本是相通的,會了哪一個,另外的那個也就很Easy了。功能仿真建議使用Modelsim ,如果你是做芯片的,就可以學學別的仿真工具,做FPGA的,Modelsim就足夠了。綜合工具一般用Synplify,初學先不用太關心這個,用Quartus綜合就OK了。
思想問題
對于初學者,特別是從軟件轉過來的,設計的程序既費資源又速度慢,而且很有可能綜合不了,這就要求我們熟悉一些固定模塊的寫法,可綜合的模塊很多書上都有,語言介紹上都有,不要想當然的用軟件的思想去寫硬件。在學習FPGA開發過程,首先要對電路設計熟悉,明白電路的工作過程:電路是并行執行。
習慣問題
FPGA學習要多練習,多仿真,signaltapII是很好的工具,可以看到每個信號的真實值,建議初學者一定要自己多動手,光看書是沒用的。關于英文文檔問題,如果要學會Quartus II的所有功能,只要看它的handbook就可以了,很詳細,對于IT行業的人,大部分知識來源都是英文文檔,一定要耐心看,會從中收獲很多的。
算法問題
做FPGA的工程師,最后一般都是專攻算法了,這些基礎知識都是順手捏來的,如果你沒有做好搞理論的準備,學FPGA始終只能停留在初級階段上。對于初學者,數字信號處理是基礎,應該好好理解,往更深的方向,不用什么都學,根據你以后從事的方向,比如說通信、圖像處理,雷達、聲納、導航定位等。
配置模式
FPGA有多種配置模式:并行主模式為一片FPGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片FPGA;串行模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。
如何實現快速的時序收斂、降低功耗和成本、優化時鐘管理并降低FPGA與PCB并行設計的復雜性等問題,一直是采用FPGA的系統設計工程師需要考慮的關鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發展,系統設計工程師在從這些優異性能獲益的同時,不得不面對由于FPGA前所未有的性能和能力水平而帶來的新的設計挑戰。
例如,領先FPGA廠商Xilinx推出的Virtex-5系列采用65nm工藝,可提供高達33萬個邏輯單元、1,2個I/O和大量硬IP塊。超大容量和密度使復雜的布線變得更加不可預測,由此帶來更嚴重的時序收斂問題。此外,針對不同應用而集成的更多數量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時鐘管理和電壓分配問題變得更加困難。
幸運地是,FPGA廠商、EDA工具供應商正在通力合作解決65nm FPGA獨特的設計挑戰。不久以前,Synplicity與Xilinx宣布成立超大容量時序收斂聯合工作小組,旨在最大程度地幫助系統設計工程師以更快、更高效的方式應用65nm FPGA器件。設計軟件供應商Magma推出的綜合工具Blast FPGA能幫助建立優化的布局,加快時序的收斂。
FPGA的配置方式已經多元化!
主要生產
全球知名的FPGA生產廠商有:
1.Altera,開發平臺是Quartus II
2.Xilinx 開發平臺是ISE
3.Actel ,開發平臺是Libero
4.Lattice,開發平臺是 ISPLEVER
5.Atmel
其中Altera作為世界老牌可編程邏輯器件的廠家,是可編程邏輯器件的發明者,開發軟件MAX+PLUSII和QuartusII。Xilinx是FPGA的發明者,擁有世界一半以上的市場,提供9%的高端65nmFPGA產品,開發軟件為ISE,其產品主要用于軍用和宇航。
Altera和Xilinx主要生產一般用途FPGA,其主要產品采用RAM工藝。Actel主要提供非易失性FPGA,產品主要基于反熔絲工藝和FLASH工藝。
設計注意
不管你是一名邏輯設計師、硬件工程師或系統工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協議的復雜系統中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關鍵設計問題。不過,你不必獨自面對這些挑戰,因為在當前業內領先的FPGA公司里工作的應用工程師每天都會面對這些問題,而且他們已經提出了一些將令你的設計工作變得更輕松的設計指導原則和解決方案。
三大法則
面積與速度的互換
這里的面積指的是FPGA的芯片資源,包括邏輯資源和I/O資源等;這里的速度指的是FPGA工作的最高頻率(和DSP或者ARM不同,FPGA設計的工 作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實際設計中,使用最小的面積設計出最高的速度是每一個開發者追求的目標,但是“魚和熊掌不可兼得”,取舍之間展示了一個開發者的智慧。    1.速度換面積  速度優勢可以換取面積的節約。面積越小,就意味著可以用更低的成本來實現產品的功 能。速度換面積的原則在一些較復雜的算法設計中常常會用到。在這些算法設計中,流水線設計常常是必須用到的技術。在流水線的設計中,這些被重復使用但是使 用次數不同的模塊將會占用大量的FPGA資源。對FPGA的設計技術進行改造,將被重復使用的算法模塊提煉出最小的復用單元,并利用這個最小的高速代替原 設計中被重復使用但次數不同的模塊。當然,在改造的過程中必然會增加一些其他的資源來實現這個代替的過程。但是只要速度具有優勢,那么增加的這部分邏輯依 然能夠實現降低面積提高速度的目的。  可以看到,速度換面積的關鍵是高速基本單元的復用。    2.面積換速度  在這種方法中面積的復制可以換取速度的提高。支持的速度越高,就意味著可以實現更高的產品性能。一些注重產品性能的應用領域可以采用并行處理技術,實現面積換速度。
硬件可實現原則
FPGA設計通常會使用HDL語言,比如Verilog HDL或者VHDL。當采用HDL語言來描述一個硬件電路功能的時候,一定要確保代碼描述的電路是硬件可實現的。  Verilog HDL語言的語法與C語言很相似,但是它們之間有著本質的區別。C語言是基于過程的高級語言,編譯后可以在CPU上運行。而Verilog HDL語言描述的本身就是硬件結構,編譯后是硬件電路。因此,有些語句在C語言的環境中應用是沒有問題的,但是在HDL語言環境下就會導致結果不正確或者 不理想。如:    for(i=;i<16;i++)  DoSomething();    在C語言中運行沒有任何問題,但是在Verilog HDL的環境下編譯就會導致綜合后的資源嚴重浪費。
同步設計原則
同步電路和異步電路是FPGA設計的兩種基本電路結構形式。  異步電路的最大缺點是會產生毛刺。同步設計的核心電路是由各種觸發器構成的。這類電路的任何輸出都是在某個時鐘的邊沿驅動觸發器產生的。所以,同步設計可以很好地避免毛刺的產生。?
信號分配
可提供最多的多功能引腳、I/O標準、端接方案和差分對的FPGA在信號分配方面也具有最復雜的設計指導原則。盡管Altera的FPGA器件沒有設計指導原則(因為它實現起來比較容易),但賽靈思的FPGA設計指導原則卻很復雜。但不管是哪一種情況,在為I/O引腳分配信號時,都有一些需要牢記的共同步驟:
1. 使用一個電子數據表列出所有計劃的信號分配,以及它們的重要屬性,例如I/O標準、電壓、需要的端接方法和相關的時鐘。
2. 檢查制造商的塊/區域兼容性準則。
3. 考慮使用第二個電子數據表制訂FPGA的布局,以確定哪些管腳是通用的、哪些是專用的、哪些支持差分信號對和全局及局部時鐘、哪些需要參考電壓。
4. 利用以上兩個電子數據表的信息和區域兼容性準則,先分配受限制程度最大的信號到引腳上,最后分配受限制最小的。例如,你可能需要先分配串行總線和時鐘信號,因為它們通常只分配到一些特定引腳。
5. 按照受限制程度重新分配信號總線。在這個階段,可能需要仔細權衡同時開關輸出(SSO)和不兼容I/O標準等設計問題,尤其是當你具有很多個高速輸出或使用了好幾個不同的I/O標準時。如果你的設計需要局部/區域時鐘,你將可能需要使用高速總線附近的管腳,最好提前記住這個要求,以免最后無法為其安排最合適的引腳。如果某個特定塊所選擇的I/O標準需要參考電壓信號,記住先不要分配這些引腳。差分信號的分配始終要先于單端信號。如果某個FPGA提供了片內端接,那么它也可能適用于其他兼容性規則。
6. 在合適的地方分配剩余的信號。
在這個階段,考慮寫一個只包含端口分配的HDL文件。然后通過使用供應商提供的工具或使用一個文本編輯器手動創建一個限制文件,為I/O標準和SSO等增加必要的支持信息。準備好這些基本文件后,你可以運行布局布線工具來確認是否忽視了一些準則或者做了一個錯誤的分配。
這將使你在設計的初始階段就和布局工程師一起工作,共同規劃PCB的走線、冗余規劃、散熱問題和信號完整性。FPGA工具可能可以在這些方面提供幫助,并協助你解決這些問題,因此你必須確保了解你的工具包的功能。
你咨詢一位布局專家的時間越晚,你就越有可能需要去處理一些復雜的問題和設計反復,而這些可能可以通過一些前期分析加以避免。一旦你實現了滿意的信號分配,你就要用限制文件鎖定它們。
基于CMOS的設計主要消耗三類功率:內部的(短路)、漏電的(靜態的)以及開關的(電容)。當門電路瞬變時,VDD與地之間短路連接消耗內部功率。漏電功耗是CMOS工藝普遍存在的寄生效應引起的。而開關功耗則是自負載電容,放電造成的。開關功耗與短路功耗合在一起稱為動態功耗。下面介紹降低靜態功耗和動態功耗的設計技巧。
靜態功耗
簡介
雖然靜態電流與動態電流相比可以忽略不計,然而對電池供電的手持設備就顯得十分重要,在設備通電而不工作時更是如此。靜態電流的因素眾多,包括處于沒有完全關斷或接通的狀態下的I/O以及內部晶體管的工作電流、內部連線的電阻、輸入與三態電驅動器的上拉或下拉電阻。在易失性技術中,保持編程信息也需一定的靜態功率。抗熔斷是一種非易失性技術,因此信息存儲不消耗靜態電流。
功耗的方法
·驅動輸入應有充分的電壓電平,因而所有晶體管都是完全通導或關閉的。
·由于I/O線上的上拉或下拉電阻要消耗一定的電流,因此盡量避免使用這些電阻。
·少用驅動電阻或雙極晶體管,這些器件需維持一個恒定電流,從而增加了靜態電流。
·將時鐘引腳按參數表推薦條件連接至低電平。懸空的時鐘輸入會大大增加靜態電流。
·在將設計劃分為多個器件時,減少器件間I/O的使用。
eX器件LP方式引腳的使用
Actel的EX系列設計了特殊的低功率“休眠”模式。在該引腳驅動至高電平8ns后,器件進入極低功率待機模式,待機電流小于1μA。在低功率模式下,所有I/O(除時鐘輸入外)都處于三態,而內核全部斷電。由于內核被斷電,觸發器中存儲的信息會丟失,在進入工作模式(在引腳驅動至低平2ms后)時,用戶需再次對器件初始化。同樣,用戶也應關閉所有通過CLKA、CLKB以及HCLK輸入的時鐘。然而這些時鐘并不處于三態,時鐘就可進入器件,從而增加功耗,因此在低功率模式下,時鐘輸入必須處于邏輯或邏輯1。
有時用戶很難阻止時鐘進入器件。在此場合,用戶可使用與CLKA或CLKA相鄰的正常輸入引腳并在設計中加進CLKINT。這樣,時鐘將通過靠近時鐘引腳的正常輸入進入器件,再通過CLKINT向器件提供時鐘資源。
采用這種輸入電路后,由于常規I/O是三態的,因此用戶不必擔心時鐘進入器件。當然,增加一級門電路會產生.6ns的較大時鐘延時,幸好這在多數低功率設計中是可以接受的。注意應將與CLKINT緩沖器相關的CLKA或CLKB引腳接地。
此外還要注意,CLKINT只可用作連線時鐘,HCLK并不具備將內部走線網連接到HCLK的能力,因而HCLK資源不能被常規輸入驅動。換句話說,如果使用LP引腳就不能使用HCLK;使用HCLK時就應在外部截斷時鐘信號。
降低動態功耗
動態功耗是在時鐘工作且輸入正在開關時的功耗。對CMOS電路,動態功耗基本上確定了總功耗。動態功耗包括幾個成分,主要是電容負載充電與放電(內部與I/O)以及短路電流。多數動態功率是內部或外部電容向器件充、放電消耗的。如果器件驅動多個I/O負載,大量的動態電流構成總功耗的主要部分。
對設計中給定的驅動器,動態功耗由下式計算
p=CL×V 2 DD×f
式中,CL是電容負載,VDD是電源電壓,f則是開關頻率。總功耗是每個驅動器功耗之總和。
由于VDD是固定的,降低內部功耗就要降低平均邏輯開關頻率,減少每個時鐘沿處的邏輯開關總數、減少連線網絡,特別是高頻信號連線網絡中的電容值。對低功率設計,需要從系統至工藝的每個設計級別中采取相應預防措施,級別越高,效果越好。
比較分類
FPGA與CPLD的辨別和分類主要是根據其結構特點和工作原理。通常的分類方法是:
將以乘積項結構方式構成邏輯行為的器件稱為CPLD,如Lattice的ispLSI系列、Xilinx的XC95系列、Altera的MAX7S系列和Lattice(原Vantis)的Mach系列等。
將以查表法結構方式構成邏輯行為的器件稱為FPGA,如Xilinx的SPARTAN系列、Altera的FLEX1K或ACEX1K系列等。
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結構上的差異,具有各自的特點:
①CPLD更適合完成各種算法和組合邏輯,FP GA更適合于完成時序邏輯。換句話說,FPGA更適合于觸發器豐富的結構,而CPLD更適合于觸發器有限而乘積項豐富的結構。
②CPLD的連續式布線結構決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式布線結構決定了其延遲的不可預測性。
③在編程上FPGA比CPLD具有更大的靈活性。CPLD通過修改具有固定內連電路的邏輯功能來編程,FPGA主要通過改變內部連線的布線來編程;FPGA可在邏輯門下編程,而CPLD是在邏輯塊下編程。
④FPGA的集成度比CPLD高,具有更復雜的布線結構和邏輯實現。
⑤CPLD比FPGA使用起來更方便。CPLD的編程采用E2PROM或FASTFLASH技術,無需外部存儲器芯片,使用簡單。而FPGA的編程信息需存放在外部存儲器上,使用方法復雜。
⑥CPLD的速度比FPGA快,并且具有較大的時間可預測性。這是由于FPGA是門級編程,并且CLB之間采用分布式互聯,而CPLD是邏輯塊級編程,并且其邏輯塊之間的互聯是集總式的。
⑦在編程方式上,CPLD主要是基于E2PROM或FLASH存儲器編程,編程次數可達1萬次,優點是系統斷電時編程信息也不丟失。CPLD又可分為在編程器上編程和在系統編程兩類。FPGA大部分是基于SRAM編程,編程信息在系統斷電時丟失,每次上電時,需從器件外部將編程數據重新寫入SRAM中。其優點是可以編程任意次,可在工作中快速編程,從而實現板級和系統級的動態配置。
⑧CPLD保密性好,FPGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
應用
電路設計
連接邏輯,控制邏輯是FPGA早期發揮作用比較大的領域也是FPGA應用的基石.事實上在電路設計中應用FPGA的難度還是比較大的這要求開發者要具備相應的硬件知識(電路知識)和軟件應用能力(開發工具)這方面的人才總是緊缺的,往往都從事新技術,新產品的開發成功的產品將變成市場主流基礎產品供產品設計者應用在不遠的將來,通用和專用IP的設計將成為一個熱門行業!搞電路設計的前提是必須要具備一定的硬件知識.在這個層面,干重于學,當然,快速入門是很重要的,越好的位子越不等人電路開發是黃金飯碗.
產品設計
把相對成熟的技術應用到某些特定領域如通訊,視頻,信息處理等等開發出滿足行業需要并能被行業客戶接受的產品這方面主要是FPGA技術和專業技術的結合問題,另外還有就是與專業客戶的界面問題產品設計還包括專業工具類產品及民用產品,前者重點在性能,后者對價格敏感產品設計以實現產品功能為主要目的,FPGA技術是一個實現手段在這個領域,FPGA因為具備接口,控制,功能IP,內嵌CPU等特點有條件實現一個構造簡單,固化程度高,功能全面的系統產品設計將是FPGA技術應用最廣大的市場,具有極大的爆發性的需求空間產品設計對技術人員的要求比較高,路途也比較漫長不過現在整個行業正處在組建首發團隊的狀態,只要加入,前途光明產品設計是一種職業發展方向定位,不是簡單的愛好就能做到的!產品設計領域會造就大量的企業和企業家,是一個發展熱點和機遇。?
系統級
系統級的應用是FPGA與傳統的計算機技術結合,實現一種FPGA版的計算機系統如用Xilinx V-4
...[展開]

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網工資

所有工資由公司員工匿名提交+ 我來發條工資

各公司【FPGA研發崗位職責|FPGA研發是做什么的】-看準網工資 最后更新  2017-12-11
職位 平均工資/月

最低最高

上海恒為信息科技有限公司 fpga研發工程師(2條) ¥8500

¥7000 ¥10000

  • 最高工資 ¥10,000
  • 最低工資 ¥7,000
  • 靠譜 11
杭州炫視科技 fpga研發工程師(2條) ¥26500

¥18000 ¥35000

  • 最高工資 ¥35,000
  • 最低工資 ¥18,000
  • 靠譜 10
四川云合創智科技有限公司 fpga研發工程師(2條) ¥10250

¥8000 ¥12500

  • 最高工資 ¥12,500
  • 最低工資 ¥8,000
  • 靠譜 14
武漢理工大學 fpga研發工程師(2條) ¥2175

¥1450 ¥2900

  • 最高工資 ¥2,900
  • 最低工資 ¥1,450
  • 靠譜 18
北京米波通信技術有限公司 fpga研發工程師(2條) ¥9666

¥7830 ¥11502

  • 最高工資 ¥11,502
  • 最低工資 ¥7,830
  • 靠譜 9

查看全部工資(共81條,72個公司)

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網面試

所有面試經歷由面試過該職位的用戶匿名提交+ 我來寫條面經

匿名用戶

面試攀克的【FPGA研發崗位職責|FPGA研發是做什么的】-看準網工程師

 -  北京

"說實話,體驗極差,不尊重人"

面試未通過   面試感受:不好   面試難度:很容易

面試經歷:

說實話,感受極差,本來我是不想去面試的,是HR主動打電話叫我去面試的,在電話里他說的很誠懇,我覺得HR很有誠意就去了。我應聘的是FPGA工程師,一開始我給了他我的紙質簡歷,他看都不看一下,面試也不考我技術,一上來就問我適不適合做技術!我明顯不爽啊,我不適合做技術我干嘛跑來面試?我都工作兩年了!然后又說我年齡小了怎么這么的,我網上發過一次簡歷給他,難道他沒看我簡歷上的信息?寫的清清楚楚!如果覺得我年紀小了或是懷疑我的技術,那完全可以給我出幾道題做做。之后有說是要考我的腦洞大不大怎么這么樣?腦洞大他怎么不招個相聲演員?做技術不是應該謙虛謹慎?全問些令我很無語的問題!一來什么都沒做,就這樣?考試也沒有!我簡直了!面試環節沒有筆試,沒有考技術,公司環境要去面試的你們自己去看吧,整個過程就是如此,HR。。。

查看更多

問題:
什么也沒問!
回答:
很無語。

有用(24|評論(0)|

 
匿名用戶

面試合肥博焱智能科技有限公司的【FPGA研發崗位職責|FPGA研發是做什么的】-看準網工程師

 -  合肥

"問問做過的項目和經驗,遇到的困難"

面試通過   面試感受:一般   面試難度:有難度

面試經歷:

問問做過的項目和經驗,遇到的困難,其他的沒啥要問的,如果你來面試,首先在你的基礎上要過關,不然到時很尷尬。做fpga的話首先問問你為啥在上一家辭職,貌似每家都喜歡問。然后呢,問我呢你做的項目中遇到的困難,怎么解決的。

查看更多

問題:
項目的原理圖。
回答:
畫出你做的項目的大概原理圖,并加以講解。

有用(419|評論(2)|

 

查看全部面試(共26條,21個公司)

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網就業趨勢

查看完整

熱搜職位

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網熱門公司工資

 

【FPGA研發崗位職責|FPGA研發是做什么的】-看準網熱門公司面試

 

APP
看準官方APP

下載看準官方APP

返回頂部
老鳥

輸入手機號,下載看準APP

二維碼

掃碼下載看準APP
或各大應用商店搜索:看準

想知道你的同行每個月都拿多少薪水嗎?登錄/注冊